Support that resolves.
Operations that answer.
Tandem is an AI support and internal operations workspace. Knowledge-powered agents resolve customer conversations, hand off cleanly to your human inbox, and turn plain-language questions into verified, repeatable reports.
Suncoast Support
Resolving · live
I've submitted a refund for the duplicate charge. It typically posts in 3–5 business days. You'll get a confirmation email today.
Resolved by AI · outcome written back to Chatwoot
Revenue by team
Weekdays · 09:00 ET
Net revenue
$184,290
+12.4%
Orders
1,284
+8.1%
Telegram · Discord · 41 recipients
Totals verified in SQL · cutoff 09:00 ET
Answers carry sources
A factual claim without an approved citation is blocked before send.
Numbers are verified in SQL
Totals are reconciled against the approved template, never estimated.
Humans stay in control
Takeover stops automated replies and leaves the canonical inbox intact.
Built to fit the stack you already run
One workspace
Two jobs that usually live in different tools.
Customer support and internal operations share the same knowledge, the same permissions, and the same standard of proof. Tandem puts them in one place without flattening either one.
Customer support
Public agents, human inbox
Answer from your help center, product docs, and past resolutions. Cite the source. Hand off with a summary when confidence drops.
Grounded answers with inline citations
Chatwoot-native assignment and labels
Confidence thresholds you control
Coverage gaps rolled up weekly
Internal operations
Private agents, verified reports
Ask about revenue, delayed orders, or fleet usage in plain language. Get a verified answer, then save the spec as a recurring report.
Approved query templates, no free-form SQL
Totals reconciled before narrative
Schedules to Telegram, Discord, or email
Full provenance on every run
Product tour
The same workspace, four different jobs.
Switch between the surfaces your team actually uses. Every screen shares one permission model, one audit trail, and one definition of a verified answer.
Suncoast Support
Public agent · website widget
Handoff readiness
Escalation
Handoff writes the transcript, citations, and reason into the mapped Chatwoot inbox. AI replies stop after takeover.
Customer chat · interactive preview with representative demo data
The product
Everything between the question and the answer.
Agent studio
Write instructions, bind sources, choose tools, and test against real conversations. Versions are immutable, so a rollback is a click — not a rewrite.
Instructions
2,140 chars
v12
Knowledge
4 sources
indexed
Tools
3 enabled
scoped
Test against conversation #4821
Passed · 2.1sKnowledge that shows its work
Website, help center, PDFs, Notion, and past resolutions. Every claim links back to a passage.
Chatwoot-native handoff
The human inbox remains canonical. Tandem writes back the summary, labels, and the reason for escalation.
Handoff summary
Duplicate charge confirmed. Refund submitted. Customer asked for a written confirmation — needs a human reply.
Reports with a spec
A report is not a screenshot. It stores the dataset, metrics, filters, comparison, and timezone — so it can run again.
dataset: billing.revenue_daily metrics: net, orders, aov compare: prior_period timezone: America/New_York
Delivery where work happens
Schedules run the saved spec, recheck destination permissions, and fail visibly if a channel or audience changed.
A quality loop, not a dashboard
Review sampled conversations, score with a rubric, and assign short coaching built from the actual miss.
Rubric score 86 · pass ≥ 85
How an answer is built
Retrieval is not the finish line. Verification is.
Every request follows the same bounded path. The model never gets unrestricted tools, and a failed check produces an honest refusal instead of a confident guess.
01Ingest with lineage
Websites, PDFs, help centers, text, and reviewed Q&A. Every chunk keeps its source version and visibility.
02Retrieve inside the tenant
Hybrid vector and keyword search filtered by workspace, agent binding, and source permission before ranking.
03Verify before composing
Approved templates only, read-only database roles, row limits, timeouts, and reconciled totals.
04Compose from evidence
The model explains returned rows and cites passages. Missing or conflicting evidence triggers abstention.
05Deliver with provenance
Website, Telegram, Discord, or scheduled reports. Each output carries its cutoff, spec version, and citations.
Response contract
Validated{
"text": "Orders increased 12.4% vs prior week.",
"citations": [
{ "sourceId": "report_revenue", "label": "Approved orders report" }
],
"blocks": [
{ "type": "metric", "label": "Orders", "value": 1284 },
{ "type": "chart", "chartType": "bar", "xKey": "day" },
{ "type": "table", "columns": ["team", "revenue"] }
],
"dataAsOf": "2026-11-11T12:00:00Z",
"requiresHuman": false
}Allowed blocks
metric · table · line · bar · pie · status
Rejected safely
invalid schema, unknown columns, unsafe URL
Model-generated JavaScript or HTML is never executed. Output renders through trusted components only.
How it works
From first source to first scheduled report.
Connect
Link Chatwoot, a help center, and a read-only database. Map inboxes and expose only the datasets you want.
Compose
Write the agent's instructions, choose sources, and approve query templates. Test against real conversations before publishing.
Delegate
Publish to customer channels. Save validated answers as reports, then schedule them to the rooms where decisions happen.
A typical pilot, week by week
Not a delivery commitment · scoped after discoveryWeek 1
Inventory & connect
Back up Chatwoot, map accounts and inboxes, connect a read-only replica, and approve the first sources.
Week 2
First public agent
Publish behind an allowlist, run the adversarial question set, verify citations and handoff.
Week 3
First verified report
Approve one query template, reconcile totals against the existing report, and schedule a private delivery.
Week 4
Pilot review
Review resolution quality, delivery failures, cost per resolved conversation, and source gaps.
76%
AI resolution rate
2m 48s
Median first response
1,182
Conversations reviewed
99.2%
Scheduled delivery
“We stopped choosing between a support bot and a reporting tool. The same workspace answers customers, hands off with context, and tells us what changed in revenue every weekday morning. No one has to retype a number into Slack again.”
MC Maya Chen
Head of Operations · Suncoast Servers
Results after 90 days
Security & governance
Built for data you cannot hand-wave.
Support conversations and business data share one workspace, so isolation and evidence are product requirements — not a page in a sales deck.
Tenant isolation
Workspace and resource permissions are checked on every request and background job. PostgreSQL row-level security adds defense in depth.
Read-only data access
Dedicated read replicas and restricted roles. Approved SELECT templates only, with schema allowlists, row limits, and statement timeouts.
Secret handling
Credentials are write-only references. Values are masked after creation, excluded from logs and analytics, and rotated on demand.
Human control
Takeover stops automated replies immediately. Consequential writes require approval, and every permission change is attributable.
Ingestion safety
MIME inspection, size and decompression limits, malware checks, controlled egress, SSRF protections, and OCR fallback for scanned files.
Recovery & residency
Encrypted off-host backups, regional storage choices, configurable retention, tenant export, and a documented restore drill.
SOC 2 Type II in progress GDPR DPA available Subprocessor list published Zero model training on your data
Claims describe design and current status — not a certification.
Integrations
Meets the stack you already run.
Chatwoot stays canonical. Add channels and data sources without a rip-and-replace migration.
Chatwoot
Canonical inbox, takeover, labels
Telegram
Bot chat and private report delivery
Discord
Guild channels, roles, slash commands
PostgreSQL
Read replica or restricted read-only user
MySQL
Reporting user with schema allowlist
REST API
Scoped endpoints and approved actions
CSV upload
One-off or refreshed private dataset
Webhooks
Signed events with replay protection
Outbound scheduled reports first
Slack
Workspace install and linked identities
Website widget
Versioned embed with domain allowlist
Analytics export
Authorized CSV, XLSX, and PDF
Business case
Put a number on the time you get back.
Start from your own conversation volume and cost per hour. Adjust the assumptions instead of trusting a marketing percentage.
Reporting time saved is additional. Verified reports replace manual spreadsheet pulls and copy-paste into Telegram or Discord.
Estimate the time you get back
Adjust four inputs. The model is illustrative, not a quote.
Support conversations per month
30,000Share resolved without a human
62%Human minutes saved per resolved conversation
6 minFully loaded support cost per hour
$32/hrAI-resolved / month
18,600
Support hours saved
1,860 / mo
≈ 429.6 hrs per week
Estimated monthly value
$59,520
$714,240 annualized
Illustrative only. Excludes model, hosting, and implementation costs, and assumes every AI-resolved conversation would otherwise take the same human time. Measure against your own baseline.
Reporting time saved is not included in this estimate.
Pricing
Start small. Keep the proof.
Starter
$99 /mo
One public agent and the essentials.
1 agent
10K messages / mo
5 seats
Knowledge + citations
Chatwoot handoff
Growth
Most popular$349 /mo
Support and internal ops together.
5 agents
60K messages / mo
20 seats
Reports + schedules
Quality reviews
API + webhooks
Scale
Custom
Multiple brands, strict controls.
Unlimited agents
150K+ messages
SSO + SCIM
Regional residency
Audit streaming
Dedicated support
Where it fits
Not another bot. Not another BI tool.
Tandem is deliberately narrower than a platform and wider than a chat widget. Here is the boundary in plain terms.
| Capability | Tandem | Generic chatbot | BI dashboard |
|---|---|---|---|
| Human inbox stays canonical | Yes | Partial | No |
| Answers cite approved sources | Yes | Partial | No |
| Verified SQL-backed reports | Yes | No | Yes |
| Delivery to Telegram / Discord | Yes | No | Partial |
| Takeover stops automated replies | Yes | Partial | No |
| Workspace isolation on every job | Yes | Partial | Partial |
| Immutable agent versions | Yes | No | No |
| Read-only database guardrails | Yes | No | Partial |
| Quality review + coaching loop | Yes | No | No |
Comparison describes product boundaries, not a hands-on audit of any named competitor.
One workspace, every seat
Different jobs. The same standard of proof.
Support agents
Work the inbox, not the bot config.
Grounded replies with citations
Context-rich handoffs
Internal notes kept separate
Takeover in one action
Ops & finance
Ask in plain language, keep the spec.
Any supported timeframe
Comparison periods
Saved recurring reports
Private chat delivery
Quality reviewers
Review the miss, not just the score.
Sampled conversations
Versioned rubrics
Evidence-linked decisions
Coaching assignments
Owners & admins
Control access without slowing the team.
Role-based permissions
Read-only data connections
Audit trail on changes
Usage and budget controls
FAQ
Questions worth asking.
Give every answer a source.
Start with one agent and one report. Keep the inbox you already have. See the proof before you scale it.
14-day trial · no card · cancel anytime