--- title: "Integrating Vouchers into Messages" slug: "integrating-vouchers-into-messages" updated: 2026-07-15T09:54:41Z published: 2026-07-15T09:54:41Z canonical: "docs.mapp.com/integrating-vouchers-into-messages" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Integrating Vouchers into Messages 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 1. Open your message 2. Click **Engage Variables** 3. Choose the **Coupon** or **Barcode** category 4. Drag the desired item into your message 5. A placeholder is inserted (e.g. `<%coupon.MyCouponList%>` or `<%barcode.MyBarcodeName%>`) 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: ```plaintext <%coupon.MyCouponList%> ``` **Barcodes:** Barcodes can be inserted in two ways: 1. **As a placeholder** If the barcode is based on a **coupon list** or a **custom attribute**, use a syntax like: ```plaintext <%barcode.MyBarcodeName%> ``` 2. **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 During sendout, each recipient receives one unique code (the same code is shown if the placeholder appears more than once). If the coupon list runs out of codes, Engage either inserts alternative text or pauses the sendout, depending on the list settings. For the full assignment logic, see [Understanding Vouchers](/v1/docs/voucher-manager-basics). To configure the out-of-codes behavior, see [Create New Coupon List](/v1/docs/create-new-coupon-list-window). ## 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. > [!NOTE] > The expression uses `ecx:isEmptyCouponList` to check if a list has available codes. - **Show a section only if vouchers are available** ```yaml <%InsertIf expression="${(ecx:isEmptyCouponList(coupon ['MyCouponList'])=='false')}">  Your voucher code: <%coupon.MyCouponList%> ``` - **Show fallback content if no vouchers are available** ```yaml <%InsertIf expression="${(ecx:isEmptyCouponList(coupon ['MyCouponList'])=='true')}">  This offer is no longer available — but check out our latest deals. ``` 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](/v1/docs/generate-a-coupon-export)