> For the complete documentation index, see [llms.txt](https://user.netmera.com/netmera-user-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://user.netmera.com/netmera-user-guide/panel-settings/settings/messaging-and-content/coupon-code-lists.md).

# Coupon code lists

**Path:** `Settings > Messaging & Content > Coupon Code Lists`

Use **Coupon Code Lists** to upload, distribute, and track campaign codes.

{% hint style="warning" %}
Netmera does **not** generate coupon codes. Upload the codes you want to distribute.
{% endhint %}

### What you can do

* Create a fixed code or upload a list of unique codes.
* Deliver codes through SMS, push notifications, and supported campaigns.
* Export assignments and review a user's coupon history.

{% @arcade/embed url="<https://app.arcade.software/share/hyRgFxR4qZlVPgiGEFTe>" flowId="hyRgFxR4qZlVPgiGEFTe" %}

### Create a coupon list

#### Open Coupon Code Lists

Go to **Settings** > **Messaging & Content** > **Coupon Code Lists**.

<figure><img src="/files/YxG6Ee13z0JvrEnt7vTt" alt="" width="563"><figcaption></figcaption></figure>

The dashboard displays an overview of all existing lists. Each list shows:

* **List Name**
* **Available Coupons** (remaining quantity)
* **Expiry Date**
* **Actions**

Use this page to track inventory and plan replenishment before campaigns run out of codes.

<figure><img src="/files/2zk4EOGXIt4oRQxJA6Fr" alt=""><figcaption></figcaption></figure>

Click **Upload Coupon Code List** to start a new list.

#### Upload a new coupon code list

Enter a name that describes the purpose of the list. This name appears on the dashboard.

<figure><img src="/files/JcWWwBphQm349XzyGvQO" alt=""><figcaption></figcaption></figure>

#### Choose a coupon type

Choose one of these coupon types:

#### Fixed coupon code

Use a **single code** for all users. This works well for sitewide promotions or general discount campaigns.

1. Select **Fixed Coupon Code**.
2. Enter the coupon value. For example, `SALE10`.
3. Enter how many times this code can be assigned.

Use this option for sitewide discounts, welcome offers, or seasonal promotions.

<figure><img src="/files/1n53WszzXmSZIQ83o6QR" alt=""><figcaption></figcaption></figure>

#### Coupon list (unique codes)

Use a list of **individual, unique codes**. Each code is assigned once per user.

Prepare your file like this:

* Use a **.txt** file.
* Add **one code per line**.
* Do not add commas or extra formatting.

Netmera assigns these codes sequentially and marks each code as used after assignment.

Use this option for one-time gift codes, limited allocations, or high-value promotions.

<figure><img src="/files/Dxs9EbhRcTBrWKRmGhHf" alt=""><figcaption></figcaption></figure>

#### Set the warning limit

Set a threshold to receive email alerts when a list is running low.

* When remaining codes drop **below your threshold**, Netmera emails the assigned recipients.
* This helps prevent campaigns from running out unexpectedly.

For example, if **Warning Limit** is `50`, Netmera sends a warning email when the remaining codes reach 50.

<figure><img src="/files/xmM1d4HsNoYoml0ALxVm" alt=""><figcaption></figcaption></figure>

#### Set the expiry date

Set the final date when the coupon codes can be used.

After the expiry date:

* Codes are automatically considered invalid.
* Slices or widgets that depend on this list may become inactive.
* Related automated campaigns may complete automatically.

<figure><img src="/files/hguKYeqXx0uxS2r3GXgB" alt=""><figcaption></figcaption></figure>

After you complete the list settings, finish the upload flow to create the list. The new list appears on the **Coupon Code Lists** page with its remaining quantity, expiry date, and available actions.

### Send coupon codes as transactional messages

After uploading your coupon list, you can automatically send coupon codes using:

* **SMS**
* **Push Notification**

Enable either option when your campaign needs automatic delivery.

Before enabling delivery, create active [Transactional Messaging](/netmera-user-guide/messaging-features/transactional-messaging.md) messages for SMS or push notifications. Add `{couponcode}` and `{expirydate}` to the message body. Then map these fields in **Coupon Code Lists**, as shown below.

#### Send SMS

* SMS delivery uses predefined active transactional messages.
* Insert `{couponcode}` and `{expirydate}`.
* Create the profile attributes used in the transactional message first.
* Complete the SMS integration before using this option.

<figure><img src="/files/eWEEXmrJ0Qc0ViGQyFr2" alt="" width="563"><figcaption></figcaption></figure>

#### Send push notifications

* Push notifications also use predefined active transactional messages.
* Insert `{couponcode}` and `{expirydate}`.
* Create the profile attributes used in the transactional message first.

<figure><img src="/files/cexdsJYrmMQmKvAqLwyC" alt="" width="563"><figcaption></figcaption></figure>

### Use coupon codes in campaigns

Add a coupon list to supported campaign types after creating it.

Coupon codes can be used in campaigns and widgets:

* [Spin to Win campaigns](/netmera-user-guide/omnichannel-engagement/widgets/build-a-widget/spin-to-win-campaigns.md)
* [Copy Button](/netmera-user-guide/omnichannel-engagement/widgets/build-a-widget/widget-elements-reference.md#copy-button)
* **Push Notification**
* **Web Push**
* **SMS**
* **Email**
* **Automated Messages**

#### Add a coupon list

1. Go to **Messages > Campaigns**.
2. Enter a campaign name and select **SMS**, **Push Notification**, or **Email**.
3. Go to the **What** step.
4. Select a coupon list from **Coupon Code**.

#### Complete channel-specific setup

Choose the branch for your campaign type.

#### SMS

1. Enable **Personalized Message**.
2. Select your **Coupon Code** and click **Add**.

The selected coupon code is added to the personalized SMS message as a coupon parameter.

<figure><img src="/files/iCaW9WrVuISRrAQxzlSF" alt=""><figcaption><p>Add a coupon list to a personalized SMS message.</p></figcaption></figure>

#### Push notification

1. Enable **Personalized Message**.
2. Select your **Coupon Code** and click **Add**.

<figure><img src="/files/s5u8yFtXRJgLewHRkBXi" alt="" width="375"><figcaption><p>Select a coupon code list from <strong>Coupon Code</strong></p></figcaption></figure>

#### Email

1. Enable **Personalized Message**.
2. Select your **Coupon Code** and click **Copy**.
3. Paste the coupon parameter into the **Mail Subject**, **Mail Preheader**, or the **email content**.

<figure><img src="/files/NOAy20TjXfFP9scTCzos" alt=""><figcaption><p>Copy the coupon parameter for an email campaign.</p></figcaption></figure>

<figure><img src="/files/u8OME5LhnxnKN37gnMPB" alt=""><figcaption><p>Paste the coupon parameter into a supported email field.</p></figcaption></figure>

#### Handle unavailable codes

If a coupon code is unavailable, choose a behavior under **When any of the parameters is null**:

* **Do not send message** — The notification is not sent when a coupon code cannot be assigned.
* **Send notification message** — The standard notification message is sent without the personalized coupon code.

{% hint style="info" %}
Use **Do not send message** when the offer depends on a valid coupon. Use **Send notification message** when you want the campaign to continue even if the coupon inventory is exhausted.
{% endhint %}

<figure><img src="/files/b0WS6ycAZJsAjHtlsswF" alt="" width="563"><figcaption><p>Choose how the campaign continues when a coupon code is unavailable.</p></figcaption></figure>

### Understand distribution rules

Netmera applies coupon distribution rules at the campaign level. **A user can receive only one coupon** code from the **same campaign ID** within **24 hours**. If the same campaign triggers again during that period, Netmera sends the **same code** instead of assigning a new one.

This rule prevents over-delivery and keeps coupon usage consistent across repeated triggers.

Netmera also marks connected campaigns as **Finished** automatically when the coupon list can no longer distribute valid codes.

Campaigns finish automatically in these cases:

* The list is empty and all codes are used.
* The coupon list reaches its expiry date.

This behavior applies to all features that use coupon lists, including:

* Spin to Win
* Copy Button
* Any widget that distributes coupon codes

### Manage coupon lists

#### Edit a coupon list

1. Go to **Coupon Code Lists**.
2. Click **Edit**.

You can update:

* Expiry date, Coupon file (`.txt`), Fixed coupon details

This supports long-running campaigns without creating new lists.

<div align="center"><figure><img src="/files/byE5uXSpLDnWbYJHj72v" alt="" width="285"><figcaption></figcaption></figure></div>

### Analyze the results

#### Track assigned codes

You can export a coupon code list to review which coupon codes were assigned to users.

The exported data can be used together with the user’s **External ID** to identify which coupon code was assigned to each user.

When a coupon code is assigned, Netmera also records a **Coupon Code Assigned** event. This event can be used to track coupon assignment activity for the user.

<figure><img src="/files/wrx5TF3bTCJLeYayY53a" alt=""><figcaption><p>Exporting a coupon code to review assigned coupon codes.</p></figcaption></figure>

#### Export coupon usage

To export assigned coupon data:

1. Open **Coupon Code Lists**.
2. Click **Export**.

Your export includes:

* Coupon Code, External ID, User ID, Coupon Given Date, Coupon Expiry Date

<figure><img src="/files/qVG8zM54P1yf3mYCm1gb" alt="" width="375"><figcaption></figcaption></figure>

#### Review a user's assigned codes

Go to **Targeting** > **User Details** > **Coupon Codes**.

This page displays:

* All coupon codes assigned to a user
* When each code was delivered
* Full coupon history

Use this view for customer support, segmentation, and troubleshooting.

<figure><img src="/files/zEMCtwvSURD1xQ5klqEc" alt=""><figcaption></figcaption></figure>

### FAQs

<details>

<summary>Can Netmera generate coupon codes?</summary>

No. Netmera only manages and distributes the codes you upload.

</details>

<details>

<summary>Is there a limit to how many codes I can upload?</summary>

There is no strict limit. Large uploads are supported within system capacity.

</details>

<details>

<summary>Is there a limit to the number of coupon lists?</summary>

No. You can create as many lists as your campaigns require.

</details>

<details>

<summary>What file format should I use for uploading codes?</summary>

Use a **.txt** file with **one code per line**.

</details>

<details>

<summary>What happens when a coupon list runs out of codes?</summary>

Netmera follows the fallback behavior you selected for unavailable codes. Connected campaigns finish automatically when the list can no longer distribute valid codes.

</details>

<details>

<summary>Can the same user receive multiple coupon codes?</summary>

A user receives one code from the same campaign ID within 24 hours. Repeat triggers send the same code. After 24 hours, the user can receive a new code.

</details>

<details>

<summary>Where can I review assigned coupon codes?</summary>

Export the coupon list for assignment data. You can also open **Targeting** > **User Details** > **Coupon Codes** for a user's history.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://user.netmera.com/netmera-user-guide/panel-settings/settings/messaging-and-content/coupon-code-lists.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
