Home / Blog / Promo protection
Promo protection

How do you keep customer service goodwill codes from becoming a permanent discount channel?

The apology code is the most forgivable discount in your store, which is exactly why it gets exploited. A system for goodwill that stays goodwill.

A customer support agent wearing a headset and speaking, seated at a desk in a small office with a notebook and coffee mug, monitor turned away from the camera, colleague in the background

How a kindness turns into a channel

Every store hands out apology discounts. A late package, a damaged box, a wrong size shipped. The agent wants to end the conversation well and reaches for a code. The trouble begins when that code is a shared string like SORRY15 that anyone can type. It gets written down, passed to a friend, posted in a forum thread about your brand, and used by people who never had a problem. The second failure is subtler: customers learn that complaining produces a code. A few will complain about every order, and some will invent problems, because the expected return on a two-line email is a real discount.

Neither pattern shows up in your discount reports as fraud. It shows up as a steady, growing line item of goodwill discounts that nobody approved as a promotion. Merchants we talk to are often surprised by the total when they finally add it up, because each individual code seemed small and justified. The question is not whether to give goodwill, since you should. It is how to give it in a way that cannot be forwarded, repeated, or farmed. Related: Repeat Abuse by the Same Accounts

Keep reading: How Coupon Abuse Eats Your Margin, Spotting a Leaked Discount Code, Coupon Stacking and How to Prevent It. See how CouponFence helps you discount and coupon abuse guard for shopify stores.

Make every goodwill code single-use and personal

Shopify lets you restrict a discount code to specific customers when you create it. Use that. A goodwill code issued to one customer record cannot be applied by anyone else, which ends the sharing problem instantly. Set a short expiration, typically a few weeks, so unused codes do not linger. Set a one-time usage limit. Give each code a unique string rather than a pattern like SORRY15-JANE that hints at how others might be constructed. Creating codes this way takes an agent an extra minute; an app that generates them from the support desk removes even that. Related: Spotting a Leaked Discount Code

Consider whether a discount code is the right instrument at all. For product problems, a replacement or a partial refund on the affected order fixes the actual issue and does not create a future incentive. For service problems, store credit issued as a gift card to the customer's account is tied to that person by design and encourages a return purchase without teaching them that complaints unlock percentages. Percentage codes make the most sense when you want to bring back a customer who is unlikely to buy again otherwise, and even then a fixed amount is easier to budget. Related: Promotions That Grow Without Leaking

Put guardrails on amounts and frequency

Write a short goodwill matrix for your team. Late delivery within a range gets one thing, damaged item gets another, a genuine store error gets a bit more. Give agents authority within the matrix and a manager escalation above it. This removes the negotiation that savvy customers use to push an apology from a small amount to a large one. Cap goodwill per customer per rolling year, and make the cap visible to agents in the customer's timeline so the third complaint in two months gets a different conversation.

Log every goodwill issuance with the reason, the agent, and the order. In Shopify, a note on the order and a customer tag are enough to start. Review the log monthly. You are looking for two things: agents who issue codes far more often than their peers, which is usually a training issue, and customers who receive them far more often than average, which is usually a farming issue. Both are easy to see once the data is in one place and nearly impossible to see when it lives in individual support tickets.

Handle the professional complainers without losing the genuine ones

A customer who has received goodwill on most of their orders is telling you something. Either your fulfillment is failing them specifically, which you should investigate, or they have learned the system. Pull their order history. Real fulfillment problems cluster by carrier, warehouse, or product; farmed complaints cluster by customer. For the latter, switch to replacements and refunds only, decline further discount codes politely, and if the pattern continues, treat the account as a returns and complaints risk rather than a VIP. Related: Balancing Generosity and Protection

Everyone else should notice nothing except that goodwill arrives faster and more consistently. That is the payoff of a system: agents resolve tickets without wondering how much to give, customers with real problems get a fair remedy every time, and the shared code that was quietly leaking margin disappears. Goodwill that is personal, capped, logged, and reviewed stays what it was meant to be.

Key takeaways
  • Shared apology codes leak and teach customers that complaining is a discount strategy.
  • Restrict each goodwill code to a specific customer in Shopify, and give it a unique string, a short expiry, and one use.
  • Prefer replacements, partial refunds, or store credit over percentage codes when they solve the actual problem.
  • Use a goodwill matrix, cap per customer per year, log every issuance, and review it monthly for outliers.
Julien Jimenez
Written by

Julien Jimenez

Julien Jimenez is an independent software builder based in Paris. He designs, ships, and operates focused SaaS products for small businesses and independent professionals. Read the full author page.

Stop discount codes from eating your margin

Discount and coupon abuse guard for Shopify stores. CouponFence is built to help you put this into practice.

Protect my promos

More from the CouponFence blog

Get the CouponFence playbook

Practical guides on promo protection, straight to your inbox as we publish them. No spam, unsubscribe any time.

By subscribing you agree to our privacy policy.