Perspectives
Your billing questions are not a FAQ
The answer is in one account, not in a help page.
By Ehsan Gazar, 6 October 2026
You have seen the message a hundred times. "Why is my bill higher this month?"
It arrives on WhatsApp at nine in the evening, and the person who could answer it went home at five.
So somebody suggests a chatbot. It gets trained on the help pages, and it answers the question beautifully for a customer who is not the one asking.
That is the problem with billing. The question sounds general and the answer is specific. It lives in one account, on one bill, in one system your website cannot see.
Why a help-page bot gets billing wrong
A help page says how bills are calculated. It does not say why this bill went up.
The honest answer is usually one line of the account. A discount ended. A meter reading was estimated. A payment arrived after the bill was cut.
A bot that has only read the help pages has two choices. It can explain the general rule and leave the customer to work out which part applies to them. Or it can guess.
Guessing an amount on a bill is the one thing it must never do. A wrong figure in writing becomes a dispute, and the dispute lands on your team anyway.
So a billing agent is not a search over documents. It is a lookup, then an explanation of what the lookup returned.
Who is asking comes first
Before anything about an account is said, the agent has to know it is talking to the account holder.
A chat app tells you the sender's number or handle. It does not tell you that the person holding that phone is the customer on the account.
The way I build this is a one-time code. The agent finds the account from the message, and texts a code to the number your billing system holds for it. The conversation pauses until the customer types the code back.
Only then does the conversation go on. A wrong code gets a fixed number of tries. Too many wrong answers and the agent says plainly that it cannot discuss the account here.
The code is never stored as digits, only as a keyed hash, and it expires in minutes. Once it is confirmed, the same conversation is not asked again for a while.
Where customers already receive texts from you, the code can go by SMS through your own provider. Where they do not, it can be sent as its own message in the chat, which proves less and is sometimes enough.
This step is what makes the rest of the agent safe to build.
What the agent actually does
Once identity is settled, most billing conversations fall into a few kinds.
The customer wants a charge explained. The agent reads the account record from your billing system and explains it in plain words. It is told to use only that record, and to say so when the record does not answer the question.
The customer says they have paid. Often they send a photo of a receipt or a banking screenshot. The agent reads the photo, pulls out the amount, the date and the reference, and records it in your system as a proof of payment. Your team checks it there, in the place they already work.
The customer disputes the bill, or simply wants a person. The agent hands over. It tells the customer someone will reply, and the conversation moves to your team's queue with everything said so far.
Deciding which of these a message is takes a small decisions model, not a long prompt. The options are named, each with a line saying what puts a message there, and the conversation goes down that path.
The parts that are not the model
Most of the work in a billing agent is not language. It is plumbing, and the plumbing decides whether the agent can be trusted.
The lookup needs an address in your billing system and a credential. The proof of payment needs somewhere to be written, and that write has to land even when your system is slow or down for maintenance. So a write that fails is kept and tried again, under the same key, so it is never recorded twice.
Each conversation is tagged with how it ended: explained, proof received, handed over. That gives your team a count of what people actually message about.
And all of it has to be rehearsed before a real customer sees it. Every step that would reach your systems or a customer's phone can run in test mode, where it sends nothing and answers with a fake reply you write. You can walk the whole conversation, including the code, without texting anybody.
Where it runs
The same agent answers on WhatsApp and on Telegram. People already have both on their phones, and neither asks them to download anything or remember a password.
The conversation is the customer's own thread, so the next question picks up where the last one ended. If they come back the following week about the same bill, the agent can read what was said.
It is drawn as a workflow, so your team can read what it does block by block. When the billing system changes, the lookup block changes and nothing else does.
A billing agent earns its place by knowing which bill, and by saying nothing until it does.