Back to blogai chatbot

Anatomy of One Chatbot Conversation

LLumen Chat Team3 min read

It's easy to describe retrieval, grounding, and escalation as separate concepts. It's more useful to watch them happen in one real conversation, back to back, in the order a customer actually experiences them. So here's a single composite exchange — the kind that happens hundreds of times a day — annotated at every turn.

Visitor: hey, does the pro plan include unlimited messages?

What just happened: the question gets converted into an embedding and compared against the organization's indexed content. A pricing-page chunk mentioning "unlimited messages" on the Pro tier is the closest match by a wide margin — this is vector search doing its job on a clean, well-covered question.

Chatbot: Yes — the Pro plan ($29/month) includes unlimited chatbots, unlimited documents, and unlimited messages, along with Slack, Trello, and Google Calendar integrations, an analytics dashboard, and API access.

What just happened: the reply is generated only from the retrieved chunk, not from general knowledge about "typical" SaaS pricing — which is why the number is exact instead of a plausible-sounding guess.

Visitor: ok and if I go over on the free plan does it just stop working or does it charge me automatically?

What just happened: this is a sharper question than it looks. It's not directly answered anywhere in one sentence — it requires combining what the free plan's limit is with what happens at that limit, which may live in two different chunks (or none at all, if it was never explicitly documented).

Chatbot: On the Free plan, once you hit 500 messages in a month, the chatbot stops answering new messages until the next billing cycle — it won't automatically charge you or upgrade you. You'd need to manually switch to Pro if you want to keep going past the limit.

What just happened: this only works because the docs happened to spell out the specific behavior, not just the limit number. This is the kind of question that surfaces documentation gaps when it isn't covered — the difference between a confident, specific answer and a vague one usually traces back to exactly this kind of edge-case sentence existing somewhere in the source docs.

Visitor: can I get a refund if I upgrade and it turns out the integrations don't work with our setup

What just happened: this is where things get genuinely uncertain — refund eligibility for a specific, hypothetical compatibility issue isn't a factual lookup, it's closer to a judgment call. A well-grounded chatbot recognizes when a question needs a human, rather than confidently stretching a general refund policy to cover a case it doesn't clearly address.

Chatbot: I don't want to guess on that one since it depends on your specific setup — let me connect you with someone from our team who can look into it properly.

What just happened: this is the fallback and escalation path, not a failure state — the same behavior grounded chatbots are supposed to have when a question falls outside what the docs can confidently answer. The conversation gets flagged, and depending on configuration, a Slack alert goes out immediately so a human picks it up instead of the visitor waiting on an unclear answer.

The takeaway

Three questions, three different things happening under the hood — a clean retrieval, a harder synthesis across sources, and an honest handoff — and from the visitor's side, it all just looks like one normal conversation with a chatbot that happens to know what it doesn't know. That's the actual goal: not that every question gets a confident answer, but that every answer is either right or honest.

Ready to try Lumen Chat?

Connect your content and go live in minutes. Free to start, no credit card required.

Get started free