Stop Calling the AI Model on Every Message
The short answer
You do not need a language model to answer every chatbot message. Most incoming messages are predictable (greetings, contact details, common questions, a pricing enquiry) and can be handled with fixed logic that is instant and free to run. Reserve the model for the open-ended questions, and you get lower running costs, faster replies, and answers that stay on-script for the things that matter most.
By Timothy Indarsingh, Founder & CEO, Firelinkx
The simplest way to build a chatbot is to send every message the visitor types straight to a language model and show whatever comes back. It works, and it demos well. Then the bill arrives, the replies feel sluggish, and one day the bot confidently says something you never authorised it to say. All three problems come from the same decision: calling the model on every single turn. This is a short walk through why that design costs you, and the routing approach we use instead.
It is the same principle behind our own assistant. If you want the full picture of how a bot can qualify a lead without ever inventing a number, that is the flagship: the chatbot that qualifies leads without inventing prices. This article zooms in on one piece of it, the part that keeps it cheap and consistent.
What calling the model every time actually costs
A language model is a powerful, general tool, and you pay for that power on every request. When it answers every message, three costs stack up whether the message needed it or not.
- Money. You pay per message processed, so a bot that greets, collects a name, and answers three routine questions has already run five paid requests before the conversation gets interesting. Multiply that across every visitor, every day, and a chatty low-value channel becomes a line item you notice.
- Speed. A model call is a round trip to an outside service. It is usually fine, but it is never instant, and it is the slowest step in the reply. A visitor who types "hi" and waits two seconds for "hello" learns the bot is slow before it has done anything useful.
- Predictability. A model generates language, so on any given turn it can phrase things differently, add a detail you did not ask for, or drift off the point. That freedom is exactly what you want for open questions and exactly what you do not want when someone asks your opening hours.
None of this means the model is the problem. The problem is using an expensive, creative, general tool for jobs that are cheap, fixed, and specific.
Most messages are more predictable than they look
Read a week of real chatbot transcripts and a pattern jumps out. A large share of messages fall into a handful of buckets that repeat over and over.
- Greetings and small talk that just need a warm opener and a nudge toward the point.
- Contact capture, where the visitor is giving you a name, a phone number, or a WhatsApp so you can follow up.
- Frequently asked questions with stable answers: where you are based, what you do, how to reach a human.
- Pricing enquiries, which should be handed off in a controlled way rather than answered with a made-up figure.
You already know the right answer to every one of these before the visitor types it. There is nothing open-ended to reason about. That is the tell: if you can write the answer down in advance, you do not need a model to generate it on the spot.
The better design: route first, generate last
Instead of sending everything to the model, you put a routing layer in front of it. Each incoming message is first checked against the predictable intents. If it matches one, a fixed handler answers directly. Only when nothing fits does the message fall back to the model.
That is exactly how ours works. Common intents (greetings, contact capture, FAQs, the pricing hand-off) go through deterministic handlers, and the model is the fallback for the open-ended turns. In practice a large share of messages never reach the model at all. Those turns are instant, cost nothing per message to run, and say precisely what we wrote them to say, every time.
The mental model
Think of a good receptionist. They do not deliberate over "good morning" or "can I get your number for the callback." Those are reflexes, handled instantly. They save their real attention for the customer with an unusual request. A routing layer gives your chatbot the same instincts: reflexes for the routine, real thinking held in reserve for when it is needed.
What this buys you, in business terms
- Lower running cost. Every turn a fixed handler catches is a model call you did not pay for. On a busy bot that is the difference between a running cost you barely notice and one you keep an eye on.
- Faster replies. The routine answers come back instantly instead of waiting on an outside service, so the bot feels sharp, and a bot that feels sharp gets used.
- On-script answers where it counts. The questions with a right answer (hours, location, how pricing works, how to reach a person) get that exact answer every single time, with no room to wander.
- Safer pricing. Pricing is handled by a controlled hand-off, not by a model guessing a number. The flagship walkthrough covers why keeping the model away from figures matters so much.
The model still earns its keep. When a visitor asks something you did not anticipate, the fallback gives them a real, helpful answer instead of a dead end. You are not choosing between fixed logic and a language model. You are using each for the job it is actually good at.
How to tell if your bot is overusing the model
If you already run a chatbot, a few quick checks tell you whether it is spending on turns it should be handling for free.
- Does "hi" produce a slow, slightly different reply each time? That is a greeting going to the model.
- Does asking the same simple question twice give you two differently worded answers? Stable questions should give stable answers.
- Has it ever stated a price, a discount, or a promise you did not sign off on? That is the model answering a question that should have been routed to a controlled hand-off.
- Is your per-message cost roughly flat no matter what visitors ask? A well-routed bot costs less on routine traffic than on complex traffic, because most routine traffic never reaches the model.
If several of those ring true, the fix is not a bigger or cheaper model. It is a routing layer in front of the one you have, so the model is the last resort instead of the first response.
Frequently asked questions
Why is it a problem to call a language model on every chatbot message?
When should a chatbot use fixed logic instead of an AI model?
Does routing to fixed logic make the chatbot feel robotic?
How much money does this actually save?
Do I still need a language model at all if most messages are routed?
Can this routing approach be added to a chatbot I already have?
Want to turn this into a practical next step?
A chatbot should be cheap to run and predictable where it matters, and that comes down to how you decide when to call the model. It is the same design we run on our own assistant.
- A chatbot that routes greetings, contact capture, FAQs, and pricing enquiries through fixed logic, so most turns never touch the model
- A review of an existing bot to find where it is overusing the model and driving up cost
- A controlled pricing hand-off so the bot never invents a figure
- A straight conversation about whether a chatbot is worth it for your volume of enquiries