Flow · 7 steps · 7 known jams
One question arriving at an automated agent, and everything that has to hold for the reply to be something the company would have said itself.
Finished when
The customer has an answer traceable to your own material, or a refusal that reached a person with the conversation attached — and in neither case did the system invent a price, a date or an eligibility rule.
Done when The message is captured with its channel and its history, so the reply can take the previous three messages into account.
Where it stops
The agent answers the sentence and misses the conversation.
Each message is handled as an isolated request. It works in a demo, where questions arrive one at a time and complete, and fails on the second message of every real exchange.
Cost. The customer repeats themselves, concludes they are talking to a machine, and asks for a person — which is the escalation that costs most, because nothing has been resolved and goodwill has been spent.
Done when The question has been matched against your own material and the passages that came back are recorded against the conversation.
Where it stops
Answers are wrong in a way that sounds authoritative, and changing the model does not help.
Retrieval returned the wrong passages, so the model answered a different question correctly. Most disappointing deployments fail here rather than in generation, and it is invisible unless the retrieved passages are stored.
Cost. Undiagnosable without the record. Teams spend months tuning prompts against a search problem.
Done when Something decided whether what came back actually answers the question — and was allowed to decide that it does not.
Where it stops
The system never says it does not know.
Retrieval always returns its best three passages, whatever the score, so there is no state in which the system has nothing. The boundary was never built, which means it cannot be crossed and cannot be reported.
Cost. Every gap in the knowledge base is converted into a confident answer instead of a refusal. The failure becomes silent, and silent is worse than loud.
Done when Anything with a price, a date or an eligibility rule in it came from the rule layer rather than from the reply, and the layer can block the reply.
Where it stops
A customer quotes a price your system gave them that you have never charged.
The guardrail inspects the finished answer for patterns rather than owning the values it is built from, so a plausible-looking wrong number passes. If the system can emit a price the price list has never contained, the boundary is in the wrong place.
Cost. A statement about price or terms made to a consumer is the business speaking, and “the chatbot said it” has no standing. In the UAE that lands in consumer protection rather than in an apology.
Done when Either a reply whose claims trace to the retrieved passages, or a refusal that keeps the conversation alive.
Where it stops
Refusals end conversations.
The refusal path was built as an error message rather than as a route. It tells the customer the system cannot help and stops, instead of naming what it can do and offering the person.
Cost. The most recoverable moment in the exchange is spent. A refusal that hands over well is a saved conversation; a refusal that terminates is a lost one that also cost you the automation.
Done when If a person took it, they arrived with the history, the qualification state and the open question — not a fresh window.
Where it stops
The customer explains everything twice.
The handover passes a notification rather than a conversation, usually because the agent and the inbox are separate products that were never joined.
Cost. This is the moment most deployments lose the sale, and it is measured by nobody: the escalation rate is reported, the restart rate is not, and the restart rate is the one that predicts the outcome.
Done when What was asked, what was retrieved, what was answered, what was refused and what escalated — all queryable later by somebody who was not there.
Where it stops
Nobody can say what the system told a customer last month.
Transcripts are kept and retrievals are not, so the answer exists without the evidence it was built from and the deployment cannot be argued with in either direction.
Cost. No debugging, no defence, and no way to know whether a change made things better. A deployment nobody measures is a deployment nobody can improve.
The model is the visible, expensive-sounding part and it is the commodity — rented by the token, swappable in an afternoon. What decides whether any of this works is whether your prices, prerequisites, exclusions and edge cases exist in a form something can retrieve, and in most companies they exist in one senior person’s head and four years of chat history. Projects scoped as an integration discover the extraction in month two, having priced it as nothing.
InsteadPrice the extraction as the project. The first deliverable is the material — written down, decided, current — and the uncomfortable part is that writing the exclusions forces decisions the business has been avoiding. A system on top of settled material is a fortnight. A system on top of unsettled material is an argument with a chat interface.
Every process has a written form and an actual one, and the queue is always in the actual one. We map what happens, from the records rather than from the meeting.