Skip to main content
Skip table of contents

Coupon Code Setup

The Coupon Codes feature does not generate coupon codes, but rather allows ingestion of them into the platform.  You can include merge tags into your content using a merge tag.  Also, thresholds can be set per category of coupon codes to avoid the complete depletion of a coupon code for a category.


Coupon Codes are available for all accounts; however, a backend setting enables alerting for coupon counts/thresholds.  By setting minimum thresholds on coupon codes, you can help ensure that your external coupon code store is not depleted. Minimum Thresholds should be set for any Category of coupons so that notifications can be sent. Please submit a request to have thresholds added for your Coupon Codes.

Coupon Code Import

Coupon Code Imports must be in CSV format and should be dropped onto the account FTP in the designated coupon codes folder (/coupon_codes). Below are the available fields for import:




String that classifies the coupon as a certain type for the customer. Thresholds can be set per category on the backend.  Example: WelcomeSeries could be the category and then these coupons will only be used when a user calls the WelcomeSeries coupon. Trimmed spaces and case-insensitive.


String of the coupon code itself.  Trimmed spaces and case-insensitive.


(optional) An ISO-8601 formatted timestamp, start_date can be used for personalization.  Coupons will only be assigned if after the start_date.


(optional) An ISO-8601 formatted timestamp, end_date can be used for personalization.  Coupons will only be assigned before the end_date, otherwise they will be pruned.


(optional) An ISO-8601 formatted timestamp, expiration_date can be used for personalization.  Coupons will only be assigned before the expiration_date, otherwise they will be pruned.  Some coupons have a separate end date to expiration date and so this field is needed.


(optional) additional detail that can be used for personalization.

The supported date format is "yyyymmdd".

Tracking Coupon Code Imports

You can confirm your import status by checking for your file within the Data > Files tab in ZMP.

Coupon Code Insertion

The merge tags for Coupon Code Insertion require a user to determine the category from which to pull. See the example:

{% coupon my_coupon | category: 'test' %}

You can use {{my_coupon.coupon_code}} to get a discount of {{my_coupon.description}}. The coupon expires on {{my_coupon.expiration_date}}.

REMINDER: Make sure to use the coupon liquid tag only once and assigning it to a variable, then use the same variable that was assigned first at other places instead of using the liquid tag and calling/assigning it again. This will ensure only one coupon is allocated per user for emails sent with this content in the future.

Codes Running Out

If coupon codes run out for a particular category, we will fail those sends with a campaign_skipped event with a reason of coupon_allocation.

Currently, it is not feasible to utilize a barcode or QR code to represent a coupon code on the platform.

Bar Codes

We also have a Bar Code solution that can work with this Coupon Code. Here is an example of the barcode IMG Tag:


After sending, an event named coupon_allocated will be posted to the corresponding profile and will contain campaign details and the coupon code allocated to the person. This event can also be added to ZMP event exports.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.