This page explains how to integrate coupons and barcodes into messages in Mapp Engage. You’ll learn how placeholders work, how messages behave during sendout, and how to handle preview and fallback options.
For step-by-step instructions, see the related How-To guides.
1. How can I add vouchers to a message?
Editor | Coupons | Barcodes |
|---|---|---|
Compose Message | Insert using Engage Variable (text code) | Insert using Engage Variable (barcode image) |
CMS Templates | Insert using coupon placeholder | Insert using placeholder or Content Element, depending on source |
2. Inserting vouchers into messages
A. In the Compose Message editor
Open your message
Click Engage Variables
Choose the Coupon or Barcode category
Drag the desired item into your message
A placeholder is inserted (e.g. {{voucher.MyCouponList}} or {{barcode.BarcodeName}})
During sendout, Mapp Engage replaces the placeholder with each recipient's personal voucher code or barcode image.
B. In CMS Templates
Coupons:
Use a placeholder like:
<%coupon.MyCouponList%>
Barcodes:
Barcodes can be inserted in two ways:
As a placeholder
If the barcode is based on a coupon list or a custom attribute, use a syntax like:
<%barcode.MyBarcodeName%>As a Content Element
If the barcode was manually created and saved in the Content Store, insert it using a Content Element.
The correct method depends on how the barcode was created and how your CMS template is structured.
3. Message behavior during sendout
Mapp inserts one unique code per recipient
If the placeholder appears multiple times, the same code is shown throughout the message
If no more codes are available:
Engage inserts alternative text (defined in the coupon list), or
pauses the sendout (depending on your settings)
4. Show or hide vouchers in the message
You can conditionally display message blocks depending on whether vouchers are available. This helps you manage the experience for users when codes are depleted.
The expression uses
ecx:isEmptyCouponListto check if a list has available codes.
Show a section only if vouchers are available
<%InsertIf expression="${(ecx:isEmptyCouponList(coupon ['MyCouponList'])=='false')}"> Your voucher code: <strong><%coupon.MyCouponList%></strong> </%InsertIf>Show fallback content if no vouchers are available
<%InsertIf expression="${(ecx:isEmptyCouponList(coupon ['MyCouponList'])=='true')}"> This offer is no longer available — but check out our latest deals. </%InsertIf>
You can also combine this logic with other attributes (e.g. previous purchases or customer status).
5. Test and preview behavior
Test messages and previews do not use real vouchers
Instead, a preview value is shown (e.g. MyCouponList_PreviewCoupon)
You can define a custom preview text in the coupon list settings
This ensures your live voucher pool is preserved for actual sendouts.
6. Tracking and follow-up
If your CRM or shop system sends redemption data back to Mapp:
You can track which code was sent to which recipient
See which vouchers were redeemed, and by whom
Use this information to:
Create segments (e.g. “used” vs “not used”)
Launch reminder or follow-up campaigns
Run performance reports or coupon exports
Redemption data is available via:
Manual or automated coupon exports
CRM-based event tracking (if integrated)
For more, see: Create and Generate a Coupon Export