Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Full Coupon entry
How-to guide

How to configure and issue Coupons

Coupons require a parent Promotion and the right Loyalty or Commerce package. Most of the configuration happens once at Promotion setup; ongoing operation is just issuance and reporting.

By Dipojjal Chakrabarti · Founder & Editor, Salesforce DictionaryLast updated May 20, 2026

Coupons require a parent Promotion and the right Loyalty or Commerce package. Most of the configuration happens once at Promotion setup; ongoing operation is just issuance and reporting.

  1. Enable Loyalty Management or Salesforce Commerce

    Coupon is a standard object that ships with both products. Confirm the right package is installed and licensed before configuring.

  2. Define the parent Promotion

    Setup, Object Manager, Promotion (or Loyalty Setup, Promotions). Define the discount mechanic (percentage, fixed, free shipping), the product scope, the max usage per coupon, and the overall promotion budget.

  3. Configure the coupon code generation

    Decide on the CouponCode format (random alphanumeric, member ID plus suffix, promotion code plus suffix). For bulk issuance, build a code generator Apex utility or use a third-party service. The codes must be unique and unguessable.

  4. Build the issuance Flow

    For Loyalty programs, configure the Loyalty Engagement or Loyalty Process to issue Coupons on the right trigger (tier change, booking, milestone). For Commerce, build a Flow on Order or on Marketing Campaign Member that creates the Coupon record.

  5. Test the redemption flow

    Walk through the customer-facing checkout or Loyalty portal. Apply the coupon. Confirm the discount applies, the UsageCount increments, and the Status updates correctly.

  6. Build coupon performance reports

    Create a custom report type that joins Coupon, Promotion, and the issuing entity (Loyalty Member or Account). Group by Status to see redemption rate; group by Promotion to compare programs.

Gotchas
  • CouponCode uniqueness is not enforced by the platform out of the box. Add a unique constraint or validation rule to prevent collisions in bulk issuance.
  • MaximumUsage on the Coupon and on the parent Promotion are checked separately. If both have caps, the lower one wins, but the engine returns the Coupon-level error first, which can mislead troubleshooting.
  • Expired coupons retain their record. Cleanup requires a separate Flow or batch job; storage grows linearly with coupon issuance volume.
  • Coupon codes issued to a Loyalty Member but never redeemed do not auto-extend. If members complain about expired codes, build an extension Flow or accept the design.
  • Coupon Code Generation through random Apex strings has collision risk at scale. Use a UUID-style generator or a dedicated service for high-volume programs.

See the full Coupon entry

Coupon includes the definition, worked example, deep dive, related terms, and a quiz.