AI Chatbots That Invent Discount Codes
A chatbot that hallucinates a 20% code is not being helpful. It is writing a discount the store never offered, and the customer will expect the checkout to honour it.
A customer asks the store chatbot whether there is a discount for first orders. The bot, trained to be helpful, invents one: WELCOME20, twenty percent off, no minimum. The customer types it into the checkout, it fails, and she writes to support, angry at a promise nobody made. The store now has a choice between honouring a discount that does not exist and telling a customer the bot lied.
This is the most ordinary AI failure in ecommerce, and the most expensive in trust. A chatbot that does not know the answer should say so, not guess, and the store that lets it guess is paying for the guess.
Why chatbots invent codes
A language model predicts the most likely next words, and a discount code is a plausible next word in a conversation about discounts. The model has no access to the store's actual promotions unless it is connected to them, and most store chatbots are not. They are connected to a product catalogue and a help centre, and they fill the gaps with confident invention.
The failure is worse because the code looks real. WELCOME20 follows the exact pattern of a real code, and the customer has no reason to doubt it. The bot does not hedge, it does not say it is unsure, and the customer walks into checkout with a number she believes in. The first time it fails, she blames the store, not the bot.
What the guardrail looks like
The fix is not a better model. It is a narrower job. The chatbot should only answer discount questions from the store's live promotion list, retrieved at the time of the question, and it should say there is no current code when there is none. If the promotion system has no API the bot can read, the bot should not answer discount questions at all, and should hand the customer to a page that lists the real offers.
Test it the way a customer would. Ask the bot for a code for first orders, for students, for a holiday sale that ended last month, and for a product that has never been discounted. A bot that invents a code for any of those is a bot that needs its discount answers disabled until it is connected to the real promotion data.
The cost of honouring the invented code
Some stores honour the invented code once, to save the sale, and then discover the customer has posted it in a forum, where it becomes a code that hundreds of people try. Others refuse, and lose the customer and the review. Neither is a good outcome, and both are avoidable.
The honest position is the cheapest one. A chatbot that says there is no current discount, and offers the email signup for the next one, loses nothing. A chatbot that invents a discount loses the margin, the review, or both, and the store pays for a guess it never authorised.
Related reading: AI Commerce Watch, Answers, Glossary.
Frequently asked questions
Why do AI chatbots invent discount codes?
A language model predicts plausible next words, and a discount code is a plausible answer to a discount question. Unless the bot is connected to the store's live promotion list, it has no way to know the real codes, so it invents one that looks right.
How do I stop a chatbot inventing codes?
Connect its discount answers to the live promotion list, retrieved at the time of the question, and make it say there is no current code when there is none. If there is no promotion API it can read, disable discount answers entirely and point customers to the real offers page.
Should a store honour a code its bot invented?
Honouring it once saves the sale but teaches customers, and forums, that the code works. Refusing loses the customer. The cheaper position is prevention: a bot that says there is no current code costs nothing.
How do I test a chatbot for invented codes?
Ask it for a first-order code, a student code, a code for a sale that ended last month, and a code for a product that has never been discounted. A bot that invents a code for any of those needs its discount answers disabled.