Your chatbot just told a prospect your enterprise plan costs ₹2,400/month. You've never offered an enterprise tier. A large language model (LLM) invented it on the spot, confident and wrong. By the time support noticed, the prospect had built a business case around fake pricing and a product feature that doesn't exist. This is not theoretical. Early adopters of AI chatbots—from Intercom users to custom LangChain builds—report the same pattern: LLMs generate plausible-sounding SKUs, price points, and contract terms that live nowhere in your system. The model is not lying; it is pattern-matching against training data and filling gaps with confabulation. The cost: broken trust, deal delays, and support teams firefighting false commitments. The fix is not to distrust AI. It is to build guardrails: hardcoded product catalogs, real-time pricing lookups from your database, and approval workflows for anything off-menu. This playbook maps three tiers of protection, shows what happens without them, and walks through implementation in Orin, Intercom, and open-source LangChain. The Hallucination Problem: Real Costs from Real Deployments Consider what happened to a mid-market SaaS company that launched a ChatGPT-powered website widget in February 2024. The model was trained on FAQ content, pricing pages, and help docs. Within 48 hours, it had quoted three distinct pricing tiers that did not exist: Startup plan: ₹8,000/month with 5 API calls/day (the company's actual starter was ₹12,000 with unlimited calls). Growth plan: ₹18,000/month with SSO (the company does not offer SSO as a standalone feature; it's bundled at ₹28,000+). Enterprise plan: ₹3,000/month on a 24-month commitment (invented entirely; the company's enterprise deals start at ₹50,000+ annually with custom terms). The damage was not immediate. But over two weeks, the support team fielded five inbound deals built entirely on these false terms. One prospect negotiated for three weeks before discovering the pricing did not match any real product offering. Another demanded the ₹3,000/month enterprise price, claiming the chatbot made a commitment. This is not an edge case. A survey of early-stage AI chatbot deployments found that 67% of firms reported at least one false pricing quote in the first month of operation. Most caught them before a deal closed. Some did not. The LLM is not trying to deceive. It is doing what it was trained to do: generate coherent, contextually plausible text. Without a guardrail, "What does your startup plan cost?" produces whatever price feels statistically likely, not what your billing system actually charges. Guardrail One: Hardcoded Product Catalog The first defense is the simplest: never ask the LLM to invent pricing. Instead, hand it a hardcoded product catalog and instruct it to reference only that catalog or refuse to answer. How it works: Create a JSON product catalog embedded in your chatbot prompt or stored in a vector database: { "products": [ { "id": "starter", "name": "Starter Plan", "price_monthly": 12000, "currency": "INR", "features": ["Up to 10,000 API calls/month", "Email support", "Basic analytics"], "billing_cycle": "monthly" }, { "id": "pro", "name": "Pro Plan", "price_monthly": 28000, "currency": "INR", "features": ["Unlimited API calls", "Priority support", "Advanced analytics", "SSO"], "billing_cycle": "monthly" } ] } In the system prompt, instruct the model: "You have access to a product catalog. Answer pricing questions only by referencing products in this catalog. If a user asks about a product not in the catalog, respond: 'I don't have information about that offering. Let me connect you with a sales person who can help.'" Test edge cases: "What's your cheapest option?", "Do you offer a ₹5,000/month plan?", "What if I pay annually?" Why this works: The LLM is not making up pricing; it is selecting from a fixed set of options. Hallucination becomes impossible if the only information available to the model is ground truth. Limitations: This works only for standard, published pricing. If you offer custom deals, volume discounts, or regional pricing, you need guardrail two. Guardrail Two: Real-Time Database Lookup If your pricing is dynamic—based on usage, region, customer tier, or contract terms—you need the chatbot to query your pricing engine in real time, not from memory. Implementation in Orin: Orin's embedded AI chat widget integrates natively with your CRM and billing data. When a user asks about pricing, the chat can trigger a lookup function that queries your actual pricing table, accounting for the prospect's region, company size, or usage tier. Implementation in Intercom: Use Intercom's custom bot actions to call your pricing API. The bot receives the live response and relays it to the user. Example flow: User: "How much for your Pro plan in Singapore?" Bot triggers: GET /api/pricing?plan=pro®ion=sg Your API returns: {"price": 2800, "currency": "SGD"} Bot responds: "Pro in Singapore is ₹190,000 (2,