Skip to content
Faidhi Fahmi.
All selected works
AITechnical

Answering support before it becomes a ticket

Organisation
iLyF — Easy, Instant Insurances
Role
Led the build, the knowledge base behind it, and the escalation boundary
Period
Malaysia

An omnichannel AI assistant across WhatsApp, Telegram and web — built so that most of the effort went into deciding what it was allowed to say.

of routine tickets handled without a human
70–80%of routine tickets handled without a human
first response on every channel
24/7first response on every channel
support headcount as the user base grew
Flatsupport headcount as the user base grew

How the system actually worked

The escalation boundary, and the loop that closes itQuestions arrive on WhatsApp, Telegram and web. Retrieval runs over a curated knowledge base — not open generation. An escalation boundary then decides whether the assistant may answer at all. If there is a validated answer in scope, it answers, which covers seventy to eighty percent of routine tickets around the clock. If not, it escalates to a human with the full conversation attached, so the customer never restarts their story. Every escalation is logged as a knowledge-base gap and flows back into the curated content, which is what improved deflection — not prompt tuning.CHANNELSWhatsAppTelegramWebRetrieval overcurated KBnot open generation1Escalation boundary— may it answer?2Answers fromvalidated content70–80% of routine tickets, 24/7in scopeHuman, with the fullconversation attachedthe customer never restartsout of scope3logged as a knowledge-base gap → written into the KB4The curated knowledge basethe assistant's quality ceiling is set by the documentation, not the model

Scroll the figure sideways to read it, or turn your phone.

  1. Retrieval over curated content, not open generation. The assistant answers from validated material or it does not answer — which is what stops it saying something confident and wrong about a policy somebody paid for.
  2. The boundary is drawn explicitly: which classes of question it may attempt at all, decided in advance rather than discovered in production.
  3. An escalation carries the full conversation, so the customer never has to restart their story with a human.
  4. Every escalation is a knowledge-base gap, not a model failure. Closing those gaps moved deflection far more reliably than prompt tuning ever did.
Retrieve, then decide whether to answer at all. Everything the assistant could not answer became a knowledge-base gap — that backlog, not prompt tuning, is what drove the next improvement.

Context

Support volume grows with the user base, and most of it is the same twenty questions. At the rate iLyF was growing, the honest options were to hire linearly or to answer automatically.

What was actually needed

Instant answers on the channels people already used, without the failure mode that makes support bots hated: confidently saying something wrong about a policy somebody paid for.

How I used AI here

Retrieval over a curated knowledge base, not open generation. The assistant answers from validated content or it does not answer. I drew the escalation boundary explicitly — which classes of question it may attempt at all, and which go straight to a human with the full conversation attached so the customer never restarts their story. The larger share of the project was writing and structuring that knowledge base, not building the assistant.

Decisions that mattered

Treating unanswered questions as a content backlog rather than a model failure. Every escalation was a signal that the knowledge base had a gap, and closing those gaps improved deflection far more reliably than prompt tuning ever did.

What changed

Between seventy and eighty percent of routine tickets resolved without a human, around the clock. Support cost stayed roughly flat while the user base grew, and human agents spent their time on the complex cases that actually needed judgement.

The insight I kept

A support assistant’s quality ceiling is set by your documentation, not your model. Most of our gains came from writing better answers.

Stack & practices

  • OpenAI
  • Retrieval over curated KB
  • WhatsApp
  • Telegram
  • Web

Got a problem shaped like this one?

A short conversation is usually enough to see if there's a fit.