> For the complete documentation index, see [llms.txt](https://docs.zigpoll.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zigpoll.com/faq/discount-codes-and-reward-automation.md).

# Discount Codes and Reward Automation

How to set up and manage discount codes and rewards for survey respondents

Offering a discount or reward for completing a survey is a great way to boost response rates. Here are the most common questions about setting this up.

### Can I give respondents a discount code after completing a survey?

Yes. Add a **Promo Code** question at the end of your survey. It shows the code on screen, and on a Shopify storefront Zigpoll also applies the code to the shopper's cart. Use a fixed code you created in Shopify (**Static**), or let Zigpoll generate a unique code for each respondent (**Dynamic** or **Free Shipping**).

{% content-ref url="/pages/Unv1KnjO66PubFN1WBCb" %}
[Adding discount codes to your survey](/tutorials/adding-discount-codes-to-your-survey.md)
{% endcontent-ref %}

{% hint style="info" %}
A **generate discount code** action on the Workflows **Actions** tab creates a code in Shopify but never shows it to the respondent. To show a code, use a Promo Code question. To send one, email it (see below).
{% endhint %}

### Can I generate unique discount codes for each respondent?

Yes. Set the Promo Code question's **Reward Type** to **Dynamic** (or **Free Shipping**). Each respondent gets their own code, which:

* can be used **once**, and only **once per customer**;
* can be used by any customer who has it — Zigpoll doesn't restrict who can redeem it;
* isn't combinable with other discounts unless you tick them under **Combines With**.

The single-use and once-per-customer limits are fixed. The options you can change are **Discount Rules** (amount), **Discount Expiration**, and, under **More Discount Code Options**, **Applies To**, **Combines With**, **Purchase Type** and **Minimum Purchase**. See [Reward Question](/tutorials/reward-question.md).

If the respondent reloads the page, they see the same code again rather than a new one.

### Can I limit a code to certain customers, such as excluding B2B?

Not on a dynamic code. Two ways to get there:

* Show the survey only to the customers who should get the reward, using the survey's [Targeting](/polls/targeting-settings.md) settings — for example, a separate survey for B2B customers.
* Create the discount in Shopify with the customer eligibility you want, then use it as a **Static** code.

To limit the survey itself to one response per customer, use **Settings → Delivery → Frequency**.

### How do I find Zigpoll's discounts in Shopify?

Every dynamic and free shipping code Zigpoll creates is titled `[Zigpoll]` followed by the code, such as `[Zigpoll] A1B2C3D4E5`. Search **Discounts** in your Shopify admin for `[Zigpoll]` to see them all, and use the discount name when you filter Shopify's sales reports.

The code itself is a random 10-character string. There's no setting for a custom code prefix. For a code you can recognise at a glance, use a **Static** code you name yourself.

### Does archiving or deleting a survey remove its discounts?

No. Codes Zigpoll has already created stay in Shopify when you archive or delete the survey, or change its Promo Code question. Unused codes stay redeemable until they expire. To stop them:

* set a **Discount Expiration** before you launch, so unused codes lapse on their own; or
* search **Discounts** in Shopify for `[Zigpoll]` and deactivate or delete the codes there.

Deleting or archiving the survey does stop *new* codes from being created.

### Can respondents combine the code with other discounts?

Only if you allow it. A dynamic code combines with nothing by default. Open the Promo Code question, click **More Discount Code Options**, and tick **Product discounts**, **Order discounts** or **Shipping discounts** under **Combines With**. For a **Static** code, set combinations on the discount in Shopify.

### How do I change the incentive message shown to respondents?

The banner above your questions (for example "Complete this survey for 10% off") can be set in three places:

* **Settings → General → Banner** — the survey's banner, shown on every question.
* The Promo Code question's **Reward Banner** field — when filled in, this replaces the survey's banner on every question.
* A question's **More Options → Custom Reward Banner** — a banner for that one question only.

Clear the field and press **Save Changes** (on General) or **Update Question** (on a question) to remove the banner. To translate it, use **Settings → Language**, under **Reward Banner**.

### Can I email the discount code after the survey?

Yes. Your survey needs a question that collects the respondent's email address.

1. Open the Promo Code question.
2. Turn on **Email Code** and pick an email template, or create one.
3. Put `{{ discount_code }}` in the template where the code should appear.
4. Press **Update Question**.

Zigpoll sends the email about a minute after the survey is completed. Static, dynamic and free shipping codes can all be emailed.

You can also send the code from a rule on **Settings → Workflows → Actions**: add **generate discount code** and **send email to respondent** to the same rule. Zigpoll creates the code first, so `{{ discount_code }}` is filled in.

### The email shows `[[discount code]]` or a blank instead of the code

Zigpoll email templates use double curly braces. Use exactly `{{ discount_code }}` (or `{{ metadata.discount_code }}`, which is the same value).

* **Square brackets** such as `[[discount code]]`, or a space instead of the underscore, aren't merge tags, so the text is sent exactly as typed.
* **Blank:** the response had no code. Check that the survey has a Promo Code question, or a **generate discount code** action in the same rule as the email, and that the respondent reached it.

To send the code from Klaviyo or Omnisend instead, see [Klaviyo](/integrations/klaviyo.md).

### The code field shows "Loading..." forever

A dynamic or free shipping code is created in Shopify the moment the Promo Code question appears. If Shopify refuses, the question quietly retries for five minutes without showing an error, so it looks stuck. Common causes:

* **Shopify rejected the discount.** For example, the rules aren't valid for your store. Open the question, check **Discount Rules**, **Applies To** and **Purchase Type**, and press **Update Question**. If your store doesn't sell subscriptions, set **Purchase Type** to **Both**.
* **Zigpoll can't create discounts in your store.** Zigpoll needs Shopify's discount permission. See [Shopify permissions](/faq/shopify-permissions.md).
* **The store is disconnected, or the question was deleted** while someone had the survey open.
* **Shopify is busy.** Zigpoll retries automatically, and a code usually appears within a few seconds.

Products or collections in **Applies To** that were later deleted from Shopify no longer cause this: Zigpoll removes them from the question and tries again. If nothing is left, the code applies to the entire order.

If a test still spins, email <support@zigpoll.com> with the survey link and we'll check the error Shopify returned.

### My discount code isn't showing after survey completion

Check the following:

* **The survey has a Promo Code question.** Logic actions alone don't display a code.
* **Every path reaches it.** If you have skip logic, make sure all paths lead to the Promo Code question.
* **For static codes, the code is still active** in your Shopify admin. Expired or fully used codes won't apply at checkout.

{% hint style="info" %}
Need help setting up discount code automation? Contact us at <support@zigpoll.com>.
{% endhint %}


---

# 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://docs.zigpoll.com/faq/discount-codes-and-reward-automation.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.
