Connect
Back to selected work
Case 08 · Ansa · support copilot · RAG · Shipped Q1 2026
// Case 08 · 2026 · AI · RAG

Ansaanswers, grounded.

A customer-support chatbot that answers from your own help docs, not from thin air. Retrieval-augmented generation grounds every reply in real sources, cites them inline, and hands off to a human the moment it isn't sure.

EngagementAI build
StackRAG · pgvector
SurfaceWeb · chat widget
StatusLive
ansa.app/replies
Ansa — grounded support chat
Chapter 01 · The Brief

The bot answered fast.
It was also wrong.

The support queue was 70% the same dozen questions — refunds, setup, billing — and the team answered each one by hand. Off-the-shelf chatbots made it worse: they made up confident, wrong answers that created more tickets than they closed.

The brief: a chatbot that only speaks from the company's own documentation, shows its sources, and admits when it doesn't know — escalating to a human instead of guessing.

Brief at a glance
Product
Support copilot · RAG
Audience
Customers + the CX team
Grounding
Help docs · policies · macros
Engagement
AI build · fixed
Surface
Web · chat widget
ansa.support
Knowledge base.
Indexed
4,820
Chunks
312
Documents
6
Sources
Help Center · articlesindexed1,240
Product Docs · /docsindexed980
Zendesk · macrosindexed610
Policies · PDFindexed320
Live chat.
Grounded · RAG
How do I get a refund after the 30-day window?
After 30 days an order is outside the standard refund window, but unopened items still qualify for store credit within 60 days. Here's how to start that request —
refunds.mdpolicy/returnsfaq · #12
Does that apply to gift orders too?
Deflection & grounding.
Real-time
68%
Deflected
1.2s
p50 answer
94%
Grounded
Billing · refund windowresolved0.9s
Setup · API keysresolved1.1s
Bug · export failingescalatedhuman
Feature · 01

Ingest the docs,
index the meaning.

Help center, product docs, policies and macros are chunked, embedded, and stored in pgvector. A hybrid of keyword (BM25) and semantic search finds the right passages — even when the customer's words don't match the docs'.

IngestDocs · PDFs · macros
Storepgvector · embeddings
RetrieveHybrid BM25 + dense
Feature · 02

Answer only from
what it found.

For each question the top passages are retrieved, reranked, and handed to the model with a strict instruction: answer only from these sources, cite them, and refuse if they don't cover it. Every reply links the exact docs it used.

RerankTop-k · relevance
GroundCite or refuse
ModelClaude / GPT · guarded
Feature · 03

Deflect what it can,
escalate what it can't.

When confidence is low or no source fits, the chat hands off to a human with the full transcript. An analytics view tracks deflection, grounding rate, and the questions the docs don't yet answer.

HandoffLow confidence → human
Deflect68% no human
LearnSurfaces doc gaps
It answers the repetitive questions in our own words, with the link to prove it — and when it doesn't know, it passes the ticket to us instead of inventing an answer.
Daniel Okoye · Head of Support · early customer
Chapter 04 · By the numbers
68%
Deflection
Tickets resolved
without a human.

The repetitive majority — refunds, setup, billing — answered instantly and correctly, freeing the team for the cases that actually need them.

1.2s
Latency
From question
to grounded answer.

Retrieval, reranking, and a streamed response land a cited answer in about a second — faster than finding the article yourself.

0
Ungrounded
Answers given
without a source.

Every reply is backed by retrieved passages and cites them; with no supporting source, it refuses and escalates rather than guessing.

Chapter 05 · Inside the product

Ground it, answer it,
measure it.

RAG chat, knowledge base, and analytics — the full support copilot loop in one product.

// 01 · Replies
Ansa — Customer chat with inline citations

Every answer drawn from real docs with inline citations.

// 02 · Knowledge
Ansa — Knowledge base management

Help docs, policies, macros — chunked, embedded, and searchable.

// 03 · Analytics
Ansa — Deflection analytics dashboard

Deflection rate, grounding rate, and unanswered question gaps.

// 04 · Handoff
Ansa — Human handoff view

Flagged conversations routed to a human when confidence drops.

// Config
Ansa — Admin configuration panel

Tone, fallback behaviour, and escalation rules — all configurable.

click to expand · drag to explore
Closing

The
credits.

  • Engagement
    AI build · fixed bid
  • Technique
    Retrieval-augmented generation · RAG
  • Retrieval
    Hybrid BM25 + dense · reranked
  • Store
    PostgreSQL · pgvector embeddings
  • Generation
    Claude / GPT · cite-or-refuse guardrails
  • Ingest
    Python pipeline · chunk + embed docs, PDFs, macros
  • Surface
    Next.js · chat widget + admin console
  • Safety
    Citations enforced · human handoff on low confidence
  • Status
    Live · 68% deflection, grounded
  • Next case study

    Quillmeeting to proposal.

    Turns a client call recording into a ready-to-send proposal — export to PDF or Word