AI case study
AI Customer Support Agent
A retrieval-backed support agent that answers from your own documentation and escalates when unsure.
- Tickets auto-resolved
- 61%
- First response
- under 5s
- Escalation accuracy
- 94%
Interface reference — rendered from the real component structure, not a stock image.
The problem
Support answered the same twenty questions daily, and generic chatbots invented policies that did not exist.
The solution
Answers grounded in indexed help-centre content with citations, a confidence threshold, and a clean handoff to a human when the answer is not in the corpus.
Hard parts
Preventing confident wrong answers. Every response must cite retrieved chunks or refuse and escalate.
Outcome
First-response time dropped sharply while escalations kept the human tone customers expect.
Technology used
- OpenAI
- Supabase pgvector
- Next.js
- TypeScript
How it was delivered
- 01Client problemRepetitive tickets consumed the small support team's day.
- 02ResearchClustered six months of tickets to find what could safely be automated.
- 03PlanningRetrieval-first design with a hard refusal path — no answer without a source.
- 04WireframeWidget states: answering, cited answer, escalated, offline.
- 05Developmentpgvector embeddings, streaming responses, transcript logging for review.
- 06TestingAdversarial prompts and a held-out ticket set scored against agent answers.
- 07DeploymentShipped behind a feature flag to 10% of sessions before full rollout.
- 08ResultsMajority of routine tickets resolved without a human touching them.
Lessons learned
A confident refusal is more valuable than a plausible guess. Users forgive 'I'll get a human' instantly.