Smarter Chatbot Triggers: LLM Intent + Vector Fallback
How BusyChat decides what a user actually wants — pairing an LLM intent classifier with a vector fallback, and the off-by-one bug that crossed the wires.
A support bot has to do more than answer questions — it has to recognize intent, like "show me your location" or "talk to a human," and act on it. Getting that routing right is its own problem.
LLM intent first, vectors as backup
The primary path classifies the user's message with a fast LLM and maps it to an intent. When confidence is low, a vector similarity fallback compares the message against known trigger phrases. Together they're far more robust than keyword matching alone.
When the wires crossed
An off-by-one in how triggers were indexed meant a "location" intent could fire the "contact" response — right mechanism, wrong answer. And a coupled prompt let one intent's wording bleed into another. Both were small bugs with loud symptoms.
Test the routing, not just the model
The fix was to treat intent routing as real logic with its own tests, instead of trusting the model end-to-end. Hybrid systems need their seams checked.
The result is a bot that doesn't just talk — it does the right thing when a customer asks for it.