Last week, a SaaS customer's embedded chatbot told a prospect: "We have the SKU-4847X in stock, normally ₹12,500, but I can offer you ₹9,200 today." The prospect went silent. Turns out, SKU-4847X doesn't exist. The chatbot had never seen that code before—it had simply assembled plausible-sounding text from patterns in its training data. This is AI hallucination in the customer conversation layer, and it's more common than you'd think. The chatbot isn't lying on purpose. It's doing what large language models do: predicting the next statistically likely token, without checking whether that prediction maps to reality. A customer hears confidence. Your team hears liability. The fix isn't to blame the AI. It's to stop feeding the chatbot unvetted paths. Here's how. Why chatbots hallucinate SKUs, prices, and stock levels Most embedded AI chat widgets work like this: a customer asks a question, the LLM generates a response from its training data, and that response goes straight into the conversation window. No inventory lookup. No price validation. No approval gate. The chatbot sounds authoritative because that's what language models do—they produce fluent, contextually coherent text. But fluency is not truth. A chatbot trained on product pages and past conversations has learned to write like a salesperson knows the answer . It hasn't learned to only say what it actually knows . Three failure modes are most common: Phantom SKUs: The chatbot assembles product codes from fragments it's seen—a real brand code, a real numeric suffix, combined in a way that sounds real but doesn't exist in your system. Invented pricing: The chatbot extrapolates from pricing patterns it's learned. "If the base model is ₹10K and enterprise is ₹30K, then this mid-tier version should be ₹18K." That number never leaves your finance team's lips—the chatbot made it up. Wrong stock signals: The chatbot reads an old product page where stock was listed as "5 units available." It quotes that number now, six months later, without checking your live inventory API. Each of these is a micro-promise your customer believes and your sales team has to break. Lock the chatbot to live inventory data—no exceptions The first guardrail is architectural: the chatbot should not generate product availability or SKU information from its base training. It should query your inventory system in real time. This means: Bind every product mention to a SKU lookup. When a customer asks "Do you have the 64GB version?", the chatbot doesn't answer from memory. It searches your live product database by SKU or variant code. If the lookup returns no match, the chatbot says "Let me check with our team" instead of guessing. Stock counts must refresh on each query. Use your inventory API, not a cached snapshot. If you're using Orin's embedded chat widget , it can connect to your inventory system and fetch live stock at runtime. Drift and Intercom require custom integrations for this level of precision, which raises cost and latency. Disable free-form generation for inventory questions. Don't let the LLM compose stock answers. Instead, create a narrow decision tree: "In stock?", "Out of stock", "Check with sales." That's not elegant, but it's honest. The rule: if the data could change between today and tomorrow, the chatbot must fetch it live. Don't trust the training data for anything transactional. Disable free-form pricing—require manual approval Pricing is where hallucinations cost the most. A chatbot that quotes the wrong SKU is annoying. A chatbot that quotes an undercut price on a deal worth ₹50K is expensive. Three approaches, in order of strength: No pricing in the chat at all. If a customer asks "How much is the enterprise plan?", the chatbot says "I'll connect you with our sales team who can give you an accurate quote." You lose some convenience, but you lose zero bad quotes. Retrieval-augmented generation from approved price lists. The chatbot retrieves only from a curated document of current pricing. It cannot interpolate, discount, or adjust. If the document says "Enterprise: ₹40K/month", that's all the chatbot can say. No "with your volume, we could do ₹35K." The chatbot has no authority to discount. Quotes require human approval before the customer sees them. If you want the chatbot to generate a custom quote (for a multi-year deal, a bundled product set, or a volume discount), build an approval workflow: the chatbot drafts the quote, flags it internally, a human reviews it, and only then does it appear in the customer's chat window. Orin's CRM can route these flags to your sales team via the team chat layer, so approvals don't add email overhead. Intercom and Drift both support approval workflows for quotes, but they default to no approval —you have to explicitly build the gate. Orin enforces the gate by default. Segment hallucination risk by conversation type Not all chatbot conversations are equally risky. A customer asking "What's your refund policy?" is much l