Design promotions

Coupons and codes

Single-use, multi-use, bulk-generated and rep-assigned codes — with limits that hold.

A coupon is a condition, not a promotion. The promotion holds the effect; the coupon decides who gets to trigger it. That separation is why one promotion can back ten thousand personalised codes without ten thousand rules.

Before you begin: the promotion must exist and be scoped — see Create a promotion. Decide who owns the codes and what they are worth before you generate any.

The four kinds

KindRedeemableUse
Single-useOnce, by anyoneA personalised mailing, an apology after a delivery failure
Multi-use, sharedMany times, by anyone who has itA trade-fair code, a code in a printed catalogue
Per-customerOnce per organizationA win-back campaign across a segment
AssignedOnly by the account it is bound toA rep handing a specific customer a specific incentive

In B2B, assigned and per-customer are the two that matter. A shared code in B2B does not stay shared for long: purchasing departments talk to each other, codes end up in Slack channels of buying groups, and a code intended for one trade fair turns up on every order for a year.

Create a single code

  1. Go to Marketing › Coupons and select New coupon.
  2. Promotion — the rule it triggers.
  3. Code — readable and unambiguous. Avoid 0/O and 1/I; somebody will read this over the phone.
  4. Kind — from the table above.
  5. Valid from / until — often shorter than the promotion's own window.
  6. Redemption limit — total, and per customer.
  7. Minimum order value — almost always worth setting.
  8. Save.

Generate a batch

For a mailing or a rep allocation:

  1. On Marketing › Coupons, select Generate batch.
  2. Set the promotion, the count, and a prefixWB26- for a win-back campaign, so the code says where it came from.
  3. Choose single-use and a per-code expiry.
  4. Generate, then export the list as CSV for your mailing or your reps.

Prefix every batch. A support call about WB26-7QK4 is answerable in seconds; one about X7QK4 is not.

Assign a code to a rep or an organization

  1. Open the coupon.
  2. Under Assigned to, select the organization — the code then works only for contacts at that account, whoever types it.
  3. Or select the owner — the Cockpit user who handed it out — for reporting without restricting redemption.

Both at once is the usual setup for field sales: bound to the account so it cannot leak, attributed to the rep so you can see who is buying business.

Give every rep code a value ceiling and an expiry. A code with no maximum discount amount is an open authority to discount, delegated to whoever holds it, with no approval trail. It is exactly the ad-hoc discounting that quote discount authority exists to prevent — see Quote settings.

Redemption limits that actually hold

Four limits, and you generally want at least three of them:

  • Total redemptions — the batch-wide ceiling.
  • Redemptions per organization — the one that stops a single large account from consuming a campaign.
  • Minimum order value — stops a €50 discount landing on a €60 order.
  • Maximum discount amount — set on the promotion's effect, and it applies here too.

Limits are counted on placed orders. An order sitting in pending, awaiting the customer's own approval, holds a reservation on the code so it cannot be spent twice — and releases it if the order is cancelled. See The three order statuses.

Tracking

The coupon's page shows redemptions with the order, the account and the discount granted. Two views worth reading regularly:

  • By rep — which of your people are using codes, and what they are buying.
  • Unredeemed after 30 days — a batch nobody redeemed is usually a batch nobody distributed, and it is worth finding that out in week five rather than after the campaign.

What to check

  • Redeem a test code. The discount appears, and the counter increments once.
  • Try it a second time. It is refused with a reason the buyer can understand.
  • Try an assigned code from a different organization. It is refused.
  • Let a code expire and try it. The message says expired, not invalid — buyers phone about "invalid", and they should not have to.

Next