Report delivery with provenance

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.

14-day trial No card required Chatwoot-native
app.tandem.app/w/suncoast

Suncoast Support

Resolving · live

Website
My invoice shows two charges this month. Can you refund the duplicate?
T
I can see the duplicate — invoice #4821 and #4822 both posted on Nov 4.

I've submitted a refund for the duplicate charge. It typically posts in 3–5 business days. You'll get a confirmation email today.
Billing policy · §4.2Refund API · success

Resolved by AI · outcome written back to Chatwoot

Revenue by team

Weekdays · 09:00 ET

Delivered

Net revenue

$184,290

+12.4%

Orders

1,284

+8.1%

Nov 3Nov 7Nov 11

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

Chatwoot Telegram Discord PostgreSQL Notion Webhooks
Tenant-scoped by default· Secrets never redisplayed· SOC 2 Type II in progress· GDPR DPA available

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

Explore support

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

Explore operations

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.

Open the full demo
app.tandem.app/w/suncoast/chat

Suncoast Support

Public agent · website widget

suncoastservers.com
Is migration included in the managed cloud plan?
T
Migrations are included up to 25 GB. Larger moves are quoted after a short review. We schedule the cutover with you and keep the old host reachable for 72 hours.
Pricing & plans 2026 · p.4Public source · 2h ago
Talk to a humanWhat about above 25 GB?Book a cutover window
Ask about setup, pricing, or support…

Handoff readiness

IdentityUnverified visitor
Sources3 public sources cited
Account dataBlocked until sign-in

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.

See all features

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.1s

Knowledge that shows its work

Website, help center, PDFs, Notion, and past resolutions. Every claim links back to a passage.

Help center · 312 articles
Product docs · 186 pages
Resolved threads · 1,204

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.

TelegramDiscordEmailWebhook

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

+3

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.

01

Connect

Link Chatwoot, a help center, and a read-only database. Map inboxes and expose only the datasets you want.

02

Compose

Write the agent's instructions, choose sources, and approve query templates. Test against real conversations before publishing.

03

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 discovery
1

Week 1

Inventory & connect

Back up Chatwoot, map accounts and inboxes, connect a read-only replica, and approve the first sources.

2

Week 2

First public agent

Publish behind an allowlist, run the adversarial question set, verify citations and handoff.

3

Week 3

First verified report

Approve one query template, reconcile totals against the existing report, and schedule a private delivery.

4

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

First response time−41%
Tier-1 resolution by AI74%
Reporting time saved6 hrs / wk
Knowledge gaps closed18

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.

Security docs
Enforced

Tenant isolation

Workspace and resource permissions are checked on every request and background job. PostgreSQL row-level security adds defense in depth.

Least privilege

Read-only data access

Dedicated read replicas and restricted roles. Approved SELECT templates only, with schema allowlists, row limits, and statement timeouts.

Encrypted

Secret handling

Credentials are write-only references. Values are masked after creation, excluded from logs and analytics, and rotated on demand.

Auditable

Human control

Takeover stops automated replies immediately. Consequential writes require approval, and every permission change is attributable.

Scanned

Ingestion safety

MIME inspection, size and decompression limits, malware checks, controlled egress, SSRF protections, and OCR fallback for scanned files.

Tested

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.

All integrations
Available

Chatwoot

Canonical inbox, takeover, labels

Available

Telegram

Bot chat and private report delivery

Available

Discord

Guild channels, roles, slash commands

Available

PostgreSQL

Read replica or restricted read-only user

Available

MySQL

Reporting user with schema allowlist

Available

REST API

Scoped endpoints and approved actions

Available

CSV upload

One-off or refreshed private dataset

Available

Webhooks

Signed events with replay protection

Expansion

Email

Outbound scheduled reports first

Expansion

Slack

Workspace install and linked identities

Available

Website widget

Versioned embed with domain allowlist

Available

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,000
5,000200,000

Share resolved without a human

62%
2090

Human minutes saved per resolved conversation

6 min
115

Fully loaded support cost per hour

$32/hr
1580

AI-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.

Full pricing

Starter

$99 /mo

One public agent and the essentials.

1 agent

10K messages / mo

5 seats

Knowledge + citations

Chatwoot handoff

Start free

Growth

Most popular

$349 /mo

Support and internal ops together.

5 agents

60K messages / mo

20 seats

Reports + schedules

Quality reviews

API + webhooks

Start free

Scale

Custom

Multiple brands, strict controls.

Unlimited agents

150K+ messages

SSO + SCIM

Regional residency

Audit streaming

Dedicated support

Talk to us

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.

CapabilityTandemGeneric chatbotBI 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