“Promo code not working” looks small until it starts eating the queue during a launch, flash sale or influencer campaign. The customer sees one thing: the discount did not apply. Your team has to check whether the code expired, the cart missed the threshold, the product was excluded, an automatic discount already applied, or the customer paid before asking.
This is a good AI-first workflow. Let AI inspect the knowledge base, campaign rules, cart details and order context before answering. But any action that changes money — price adjustment, compensation, refund or manual discount — must move to human approval.
Good support scripts do not promise more. They check the facts first, then make the boundary clear.
— YundaDesk Support Team
Start with three causes: expiry, threshold, stacking conflict
Split promo code issues into three common buckets:
Promo Code Not Working Scripts With Clear Compensation: turn timing into a measurable signal
| Cause | What the customer sees | What to check first |
|---|---|---|
| Expired or not started | The code shows invalid or expired | Campaign timezone, start/end time |
| Threshold not met | The code is accepted but no discount appears | Eligible subtotal, excluded products, shipping and tax rules |
| Stacking conflict | An automatic discount is already active | Cart discount, member price, bundle price |
Most misunderstandings come from threshold logic. The customer may think the final payment amount qualifies, while the campaign only counts eligible product subtotal. They may believe the offer is storewide, while clearance items, gift cards or subscriptions are excluded. AI should classify the issue first, so a human agent does not have to rebuild the whole campaign rule from scratch.
Expired code scripts: acknowledge the friction, then explain the time boundary
Expired-code disputes are common when customers sit across time zones. Do not open with a blunt “it expired.” Show that you checked.
Ready-to-use script:
I checked this promo code for you. The campaign linked to this code has already ended according to the campaign end time, so the system can no longer apply the discount automatically. Some regions may still see campaign content for a short period, and I am sorry for the confusion.
If the customer says they tried before the deadline, keep the handoff controlled:
If you tried to place the order before the campaign ended but could not complete checkout, please send us the screenshot or checkout time. I will pass it to a human teammate for review. Any price adjustment or compensation will follow the approval result.
The key word is “review,” not “promise.” YundaDesk’s AI answers first, humans back up model fits this case: AI explains the rule and collects screenshots, order IDs and timestamps; a person decides whether an exception is valid.
Threshold scripts: turn the gap into an action
Threshold issues are often not hostile. The customer may simply not understand why checkout did not change. Turn “you do not qualify” into “here is what is missing.”
Ready-to-use script:
I checked the promo code rules. This code applies after the eligible product subtotal reaches the required amount. Your current cart is still slightly below that eligible subtotal, so the system has not applied the discount yet. You can add an eligible item and try the code again.
If exclusions matter, name them clearly:
Shipping, taxes, gift cards and some clearance items do not count toward this campaign threshold. One item in your cart is outside the eligible range, so it is not included in the subtotal.
Do not paste the full campaign terms. Customers need to know which condition failed and what they can do next.
Stacking conflict scripts: avoid making the offer feel misleading
Stacking conflicts are sensitive. The customer thinks, “You gave me a code, then blocked me from using it.” A good script acknowledges the conflict, then explains that only one discount path can apply.
Ready-to-use script:
I can see that an automatic discount is already active in your cart. Under this campaign’s rules, automatic discounts and manual promo codes cannot be stacked, so entering the new code does not create an additional discount.
Then give the customer a choice:
You can keep the current automatic discount, or remove it and try the manual promo code instead. We recommend comparing the final checkout total and using the better option.
If checkout does not allow switching, say that directly and hand off with cart context. This is where an omnichannel inbox helps: the customer may ask in the website widget, then follow up on Instagram or WhatsApp. When every message lands in one workspace, the agent can see the full thread.
After checkout: explain the boundary and collect approval context
When the customer has already paid, the request usually becomes “refund the difference.” AI should not decide that on its own.
Recommended path:
- Confirm the order ID, checkout time, promo code and screenshots
- Classify the cause: expiry, threshold, stacking conflict or eligibility
- If the customer asks for a price adjustment or compensation, hand off for human approval
- Let the approver review order details, conversation history, customer record and campaign rules
Ready-to-use script:
I will first check the order and promo code rule for you. Because the payment has already been completed, any price adjustment, compensation coupon or manual price change needs human approval. I will submit the order ID, promo code, checkout time and your screenshots together, and the final handling will follow the approval result.
Knowledge base checklist: make the rule retrievable
Promo code scripts stay consistent only when the knowledge base stores rules in a way AI can retrieve and reason over. Prepare these fields:
- Promo code name, customer-facing campaign copy and internal campaign name
- Start and end time, including timezone
- Eligible countries or regions
- Minimum spend threshold, and whether it uses product subtotal
- Eligible categories, excluded products, gift card rules and subscription rules
- Whether the code can stack with automatic discounts, member prices or bundle prices
- Post-purchase boundary: verify only, no automatic price adjustment
- Human handoff triggers: refund, compensation, price adjustment, bad review, complaint
YundaDesk’s knowledge base can be maintained by uploading documents, crawling websites and adding manual Q&A. The important part is the “gets smarter over time” loop: when AI misses an answer, an agent fills the gap, or an agent corrects AI, the system creates a learning suggestion for review. It only takes effect after the owner approves it, then becomes a traceable, testable and revertible skill or knowledge item. See teaching AI that gets smarter for the full workflow.
FAQ: common follow-ups when a promo code fails
The customer says other people can use it. Why not me?
I can check that for you. Promo code eligibility can depend on region, product scope, order amount, campaign time and existing discounts. Please send your current cart screenshot or order ID, and I will check the exact reason first.
The customer demands an immediate refund of the difference.
I understand you want this handled quickly. Because this changes the paid amount, I cannot promise or process the difference directly. I will organize the order and promo code details, then send them for human approval.
The customer threatens a complaint or bad review.
I am sorry this checkout experience has been frustrating. I will prioritize this for a human teammate and include the order, promo code and checking result so you do not have to explain everything again.
Can AI proactively remind customers before a promo code expires?
Yes, with guardrails. Proactive outreach should start in “observe only” or “confirm every message” mode, and respect cooldowns, frequency caps, quiet hours, active-conversation rules, do-not-disturb lists and human approval for sensitive actions.
Promo code issues are not solved by saying, “Sorry, it does not work.” Classify the cause, explain it in plain language, and keep price adjustments and compensation inside human approval. Let AI check the rules and absorb repetitive questions; let people handle boundaries and exceptions.