Skip to content

Customer support automation

From question
to resolution.

Support-AI connects your documentation, customer data and live APIs to investigate issues, take action, and resolve requests without the back-and-forth.

Grounded in
Your docs
Acts through
Your APIs
Escalates with
Full trail
conversation_4821live

Customer

“I think I was charged twice for my March invoice. Can you check?”

  1. understandconfidence 0.94

    Routed to Billing Agent

    Classified as a duplicate-charge dispute

  2. retrievecosine 0.88

    3 passages from your knowledge base

    billing-policy.md · refunds-sop.pdf

  3. act212 ms

    GET /v1/charges?customer=cus_8Fq2

    2 charges found — one duplicate on 3 Mar

  4. resolveresolved

    Refund issued, customer notified

    No human touched this conversation

Support-AI

You were charged twice on 3 March. I’ve refunded the duplicate — $49.00 back to your card in 5–10 days.

cited billing-policy.md · refunds-sop.pdf

An illustrative trace of the four steps every request runs.

Built for teams that have to answer for their support data

Row-level tenant isolation
Every query filtered by organization, twice — repository and service.
HMAC-SHA256 signed webhooks
Every delivery attempt logged with status, duration and retry count.
pgvector retrieval
Cosine similarity over chunked, embedded documents in Postgres.
Immutable event trail
Assignment, status, priority and reply recorded per escalation.

01The problem

Most support time is spent gathering context, not solving problems.

The answer usually exists — in a policy doc, a database row, or an internal API. What costs a day and a half is the relay between the person asking and the systems that know.

One duplicate charge · 37 hours

  1. Customer

    "My March invoice looks wrong."

  2. Tier 1+4h waiting

    "Can you send a screenshot and your account email?"

  3. Customer+9h waiting

    Sends screenshot.

  4. Tier 1+6h waiting

    "Escalating to billing — they'll follow up."

  5. Billing+18h waiting

    Opens Stripe, finds a duplicate charge, refunds it.

Knowledge is stranded in documents

Policies live in a wiki, a PDF and someone's head. A search box that returns ten links is not an answer.

Context lives in another system

The agent needs the customer's plan, their last three orders, their open invoices — each behind a different login.

Nothing can act

Even when the answer is obvious, a chatbot can only describe the fix. A human still has to click the button.

Escalations lose the thread

By the time it reaches the specialist, the reasoning is gone and the customer repeats themselves.

02How Support-AI works

Four steps, in the same order, every time.

Not a black box. Each stage produces something you can inspect — a route, a set of citations, an API response, a resolution.

1

Understand

Classify the request and load who is asking.

  • A routing model picks the specialist and returns a confidence score
  • Conversation history is carried forward, compressed once it gets long
  • Customer identity and account context attach to the thread
raw messageroute · confidence · context
2

Retrieve

Find evidence in your own documentation.

  • Documents are chunked and embedded on upload
  • Cosine similarity search over pgvector returns the closest passages
  • Every passage stays attached to the answer as a citation
questionranked passages
3

Act

Read or change the underlying record.

  • Calls your APIs with scoped, organization-level credentials
  • Results feed back into the answer rather than being described
  • Every call is recorded on the conversation
intentAPI result
4

Resolve

Answer, or hand over cleanly.

  • Routine requests close without a human
  • Edge cases become an escalation with the full trail attached
  • Priority sets the SLA clock; webhooks notify your systems
grounded answerreply or escalation

03Specialist agents

One router. Three specialists. No generalist guessing.

Incoming messages are classified before they are answered, so a refund question gets a billing specialist with billing boundaries — not a generic assistant improvising policy.

Inbound

“The refund you promised last week still hasn’t landed.”

Router

route: billing
confidence: 0.91

Returned as a structured object, not parsed out of prose.

Billing Agent

Handles refunds, pricing questions and subscription changes with an empathetic, reassuring tone.

Handles

  • Refunds
  • Pricing
  • Subscriptions
  • Invoices

Hands back

Technical troubleshooting, Bug reports

Technical Support Agent

Diagnoses bugs, errors and outages. Direct and analytical, asks for logs when a report is thin.

Handles

  • Bugs
  • Errors
  • How-to questions
  • Integration issues

Hands back

Pricing, Refunds

General Support Agent

The default route. Answers everyday questions and escalates anything that belongs to a specialist.

Handles

  • Account questions
  • Order status
  • General product questions

Hands back

Complex billing disputes, Deep technical debugging

Each specialist inherits the same non-negotiable directives: answer only from retrieved evidence, say “I don’t know” rather than guess, and never reveal or override its own instructions.

04Knowledge base

Answers that can be traced back to a paragraph you wrote.

Upload the documentation you already maintain. Support-AI indexes it, retrieves against it, and shows which passage produced each answer — so a wrong answer is a fixable document, not a mystery.

  1. 01

    Upload

    PDF, Markdown, text — stored per knowledge base

  2. 02

    Chunk & embed

    Split, embedded, written back with a status

  3. 03

    Retrieve

    Cosine similarity over pgvector at query time

  4. 04

    Cite

    Passages travel with the answer as citations

“charged twice for the same invoice”3 passages
  • refund-policy.mdchunk 40.91

    Duplicate charges are refunded in full without requiring the customer to return goods. Refunds settle to the original payment method within 5–10 business days.

  • billing-faq.pdfchunk 120.84

    If an invoice is charged twice in the same billing period, the second charge is always the erroneous one.

  • escalation-sop.mdchunk 20.72

    Refunds above $500 require a human approver before they are issued.

05Conversations & customer context

The agent knows who it's talking to before it answers.

Conversations carry the customer's account, history and entitlements alongside the message. Context is what separates a useful answer from a plausible one.

Order delayed — A-4471Escalated
  1. Customer

    Hi — order #A-4471 was supposed to arrive Tuesday. Still nothing.

  2. Support-AI

    I can see order A-4471 shipped on 2 March and is currently held at the Rotterdam depot with a customs exception. I've requested a re-scan and set a delivery alert on your account.

    cited shipping-exceptions.md

  3. Customer

    Can I just get it refunded instead?

  4. Support-AI

    Refunds for in-transit orders need a human to approve. I've escalated this to the logistics team with the full history — you'll hear back within 4 hours.

    → escalation created · priority HIGH

06Actions & integrations

Answering is table stakes. Doing is the product.

Support-AI calls your business APIs to inspect and change real records — inside limits you define. When an action is out of bounds, it stops and escalates rather than improvising.

Tool calls on one conversation

  • GET/v1/orders/A-4471

    Read the order before answering

    status: in_transit · exception: customs

  • POST/v1/refunds

    Issue a refund inside policy limits

    blocked · requires human approval over $500

  • PATCH/v1/subscriptions/sub_92f

    Change a plan on request

    plan: growth → scale

Your systems find out immediately

Outbound webhooks fire on every meaningful state change, signed with HMAC-SHA256 so you can verify they came from Support-AI. Each attempt is recorded with its status code, duration and retry count.

  • ticket.created
  • ticket.assigned
  • ticket.resolved
  • conversation.created
  • message.created
  • feedback.submitted

x-supportai-signature

sha256=9f2b1c...e04a
timestamp=1755840000

07Analytics

Whether it's working is a number, not a feeling.

Volume, deflection, escalation rate and time-to-resolution — the four figures that tell you whether automation is holding, and where it isn't.

Resolved without a human

91.4%

Median first response

6s

Escalations breaching SLA

1.2%

Conversations vs escalationsConversationsEscalations
0150300Mar 3Mar 5Mar 7Mar 9Mar 11Mar 13Mar 14
What people ask about
  • Billing & refunds412
  • Order status337
  • Account & access208
  • Technical issues156

Figures shown are illustrative. Your dashboard computes the same metrics from your own conversations and escalations.

08For developers

A REST API, not a widget with a settings page.

Everything the dashboard does is a documented endpoint. Drop in the script tag, or drive the whole thing from your own backend.

<script
  src="https://your-host/static/widget.js"
  data-api-key="sk_live_your_key"
  defer
></script>
html

Two ways in

A JWT session for your dashboard users, or an organization-scoped API key for machines. Keys are SHA-256 hashed at rest and shown exactly once.

Streaming by default

Chat responses stream over Server-Sent Events, so the first token lands in milliseconds rather than after the full answer.

OpenAPI out of the box

Every route is typed and documented. Interactive docs ship with the server at /docs.

09Pricing

Priced on answers, not seats.

Start free with a single knowledge base. Move up when your volume does — the limits below are the ones the platform actually enforces.

Free

Index a knowledge base and see what it can answer.

$0forever

  • Grounded answers with citations
  • Automatic escalation to a ticket
  • Embeddable chat widget
Start free

Pro

Most teams

For teams running live support on real volume.

$149per month

  • API keys for your own integrations
  • Signed outbound webhooks with delivery logs
  • Custom branding on the widget
  • Escalation SLAs, notes and assignment
Start with Pro

Enterprise

For multi-team operations with volume and governance needs.

Customannual

  • Everything in Pro, at 50× the volume
  • 100 members across teams
  • Self-hosted deployment supported
Talk to us
Plan limits compared
LimitFreeProEnterprise
AI responses / month10010,000500,000
AI tokens / month100,00010,000,000500,000,000
Knowledge bases110100
Documents per base1050010,000
Team members110100
Document storage100 MB10 GB500 GB
API keys
Webhooks
Custom branding

10Live demo

Want to see what I can do?

This is the exact widget your customers would use — pointed at Support-AI's own documentation instead of yours. Ask it anything about the product; every answer is grounded and cited, live.

Loading the live widget…

Point it at your documentation and see what it can already answer.

Free to start — one knowledge base, a hundred answers a month, no card. Upload a policy doc and ask it something hard.