A WhatsApp chatbot that answers from your own documents
Most WhatsApp bots are decision trees wearing a hat, and the ones that use a language model tend to invent answers confidently. Retrieval is the difference between a bot that quotes your refund policy and one that imagines it.
Most WhatsApp bots are decision trees wearing a hat. Reply 1 for opening hours, 2 for delivery. They work, in the narrow sense that they do not say anything false, and customers hate them because the thing they wanted to ask was never options 1 to 4.
Bolting a language model on solves that and introduces a worse problem: a model with no access to your business will answer anyway, fluently and wrongly. A bot that invents a refund policy is more expensive than no bot at all, because somebody will hold you to what it said.
Retrieval is what sits between those two failures.
What retrieval actually means
Retrieval-augmented generation is a plain idea with an unhelpful name. Instead of asking a model to answer from memory, you first find the relevant passages in your own material, then ask it to answer using those passages.
Each question runs the same four steps:
- Split your material into chunks. A refund policy, a price list, a sizing guide — cut into passages small enough to be about one thing.
- Find the chunks that match the question. By meaning rather than keyword, so “can I send this back” finds a passage headed “Returns”.
- Put those passages in front of the model along with the question and an instruction to answer only from them.
- Let it decline. Nothing relevant found should produce a handover, not a guess.
The fourth step is the one people skip, and it is the one that determines whether you can leave the thing switched on. A bot that cannot say “let me get somebody” will say something else instead, and that something else is what you will be arguing about next week.
Why not just put everything in the prompt?
For a one-page FAQ, do. It is simpler and it works. Retrieval earns its complexity when:
- your material is larger than a prompt comfortably holds;
- it changes often, and you would rather edit a document than a prompt;
- you want to know which passage an answer came from, because at some point an answer will be wrong and you will need to find out why.
What a good one does differently
It hands over early
The measure is not how many questions it answers. It is how many it answers correctly without a person checking. A bot that handles the easy 60% and fetches a human for the rest is worth far more than one that attempts 95% and is wrong about a tenth of them.
Handover should fire on any of: low confidence, an explicit ask for a person, or anything touching money and refunds.
It stops when a person arrives
Once a colleague takes the conversation, the bot must go quiet permanently. Two voices answering one customer is worse than either alone, and it is the failure that makes people switch the whole thing off.
Your team sees what it said
Every answer should be visible to whoever is on duty, as it happens. Not for oversight theatre: because the first wrong answer is how you discover the sizing guide is out of date, and a bot answering privately means you find out from a complaint instead.
It sounds like the business
A model’s default register is corporate and slightly American. On WhatsApp, where everything else in the thread is short and human, that reads as a robot immediately. Worth writing the persona properly and reading the output aloud.
What to feed it
| Material | Worth it? |
|---|---|
| Refunds, delivery, warranty | Yes — the most-asked questions and the most costly to get wrong |
| Price list | Yes, if it is current. Stale prices are worse than none |
| Product specs and sizing | Yes — high volume, low judgement, exactly the easy 60% |
| Opening hours and locations | Yes |
| Past support conversations | Careful — full of one-off promises that should not become policy |
| Marketing copy | No. Written to persuade, not to answer |
Measuring it honestly
The vanity metric is deflection rate. The numbers that matter are narrower:
- Handover rate. Very low means it is guessing.
- Repeat questions after an answer. The customer did not get it.
- Corrections by staff. Each one is a gap in the material, not a model failure.
- Time to a person when it does hand over. The whole benefit is lost if that is an hour.
How this works in WaveSenda
An agent is attached to a number or a website widget, with documents behind it. It answers first, and the humans on the rota still receive every question it answers — so a wrong answer is something you correct rather than something you learn about later. It hands to the whole team when it is unsure, and the moment a person replies it stops for good.
The agent docs cover personas, knowledge and handover rules.
Common questions
What is RAG in plain terms?
Retrieval-augmented generation: find the relevant passages in your own documents first, then ask the model to answer using only those. It is the difference between a bot that quotes your refund policy and one that invents a plausible-sounding version of it.
Will it make things up?
Much less often, and the residual risk is managed by letting it decline. If nothing relevant is retrieved it should hand over rather than answer. A bot without that escape hatch will fill the gap with something, which is exactly the behaviour you are trying to avoid.
How much material do I need?
Less than people expect. Refunds, delivery, warranty, hours and a current price list cover the majority of what customers ask. Start there, then add whatever your team finds itself correcting.
Can it take payments or change an order?
It can be given tools to do things rather than only answer, but be deliberate about which. Anything involving money is usually better handed to a person — the cost of a mistake is asymmetric, and the time saved is small.
What happens when a human takes over?
The agent should stop for that conversation permanently, not pause. Two voices answering one customer is worse than either alone, and a bot that resumes after a colleague has replied is the single fastest way to lose your team’s trust in it.