> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/reviews/managing-reviews/review-rewards-and-limits/discount-codes-for-reviews.md).

# Discount codes for reviews

Automatically email a discount code to customers who review a product — with full control over which reviews qualify, who's eligible, and how the code is delivered.

Roadmap's Discount Code Generator can automatically create and email a discount code every time a customer leaves a review. You don't need a loyalty program. The generator works on its own and can either trigger a Klaviyo event or send the email directly from Roadmap.

This article covers the review-published trigger specifically — when each new review fires, who's eligible, and what the code looks like.

#### Where to find it

In Roadmap, open **Discounts / GWPs**, click **Create a new discount**, and pick **Discount Code Generator** from the method selector.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2Fio0Sz94VPVmUHjP1neJo%2FScreenshot%202026-05-15%20at%203.14.59%E2%80%AFPM.png?alt=media&amp;token=0dc8fe5c-9e59-45b4-8a8c-6b6636f20e5e" alt=""><figcaption><p>The Select discount method modal, with Discount Code Generator highlighted as the chosen method.</p></figcaption></figure>

#### The Trigger

In the **Trigger** section, choose **When review is published**.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F65kwmpKXX6L30Ug03FCg%2FScreenshot%202026-05-15%20at%203.15.56%E2%80%AFPM.png?alt=media&amp;token=eda94535-d70c-4002-8878-99072e0abca1" alt=""><figcaption><p>The Trigger section with 'When review is published' selected and the Reward frequency dropdown open — Every verified review (default), Every review (unverified and verified), One discount per order.</p></figcaption></figure>

This activates the **Reward frequency** dropdown immediately below — the three options control which reviews actually generate a code:

| Reward frequency                           | What it means                                                                                                                                                                                                    |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Every verified review** (default)        | Each verified review linked to an order generates one code. Unverified reviews — submissions with no order link — do not get a code.                                                                             |
| **Every review** (unverified and verified) | Every published review generates a code, regardless of whether it's tied to an order. Useful if you reward organic reviews equally.                                                                              |
| **One discount per order**                 | Only the first verified review on each order generates a code. Subsequent reviews on the same order are skipped. Unverified reviews with no order link are blocked entirely — there's no order to group them by. |

The dropdown only appears when the trigger is **When review is published**. Other triggers — product purchase, member birthday, member promotion — have their own configuration.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F1lxe08RqJCLDPkMxOAqc%2FScreenshot%202026-05-15%20at%203.16.49%E2%80%AFPM.png?alt=media&amp;token=a3c0ca5f-03fb-45f0-8d8e-c43cfcc56822" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
The Discount Code Generator can be configured to reward only verified reviews. Choose **Every verified review** or **One discount per order** if you want unverified reviews excluded.
{% endhint %}

#### Customer Eligibility

Restrict who's eligible for the reward.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FTjkTwGr4SjpokuyiYoqL%2FScreenshot%202026-05-15%20at%203.17.04%E2%80%AFPM.png?alt=media&amp;token=0ae3b9a9-4be8-470b-8bef-ad81c4166739" alt=""><figcaption><p>Customer Eligibility (All customers / Members) above; Mail Template (Send via Roadmap or Trigger a Klaviyo event with metric name 'Roadmap: Review Reward') below.</p></figcaption></figure>

| Option                      | What it means                                                                                               |
| --------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **All customers** (default) | Every customer who leaves a qualifying review gets a code.                                                  |
| **Members**                 | Only customers enrolled in your loyalty program get a code. Useful when you reserve incentives for members. |

#### Mail Template

Decide how the code is delivered to the customer.

| Option                      | What it means                                                                                                                                                                                                        |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Trigger a Klaviyo event** | Roadmap fires a Klaviyo event with a custom metric name, for example `Roadmap: Review Reward`. Your Klaviyo flow handles the email. This is the best default when Klaviyo already owns your lifecycle email program. |
| **Send mail via Roadmap**   | Roadmap sends the reward email directly. Use this when you want a simpler setup and do not need a Klaviyo flow around the reward.                                                                                    |

When you pick **Trigger a Klaviyo event**, a metric-name input appears. Use any string — Klaviyo creates a new metric the first time you fire it. The event payload includes the discount code so your Klaviyo flow can interpolate it into the email body.

Start with **Trigger a Klaviyo event** if both options could work. It gives you more control over design, timing, testing, and reporting.

#### Discount Code

What kind of discount, what it applies to, when it expires.

| Field              | Effect                                                                                                                                                                 |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Discount type**  | Percentage off (`%`) or fixed amount.                                                                                                                                  |
| **Discount value** | The number applied to the type — e.g., `10` for `10%`.                                                                                                                 |
| **Code prefix**    | The string each generated code starts with. Codes are appended with a unique suffix — e.g., a prefix of `ROADMAP` produces codes like `ROADMAPA83XO123`.               |
| **Applies to**     | Specific products or variants (browse-and-select) — leave the variant picker blank to match any product. Or **All products** to remove the scope restriction entirely. |
| **Purchase Type**  | **One-time purchase** or **Subscription**. Determines whether the code applies to one-time orders, subscription orders, or both.                                       |
| **Minimum spend**  | Cart subtotal threshold the customer must meet to use the code. Blank for no minimum.                                                                                  |
| **Quantity limit** | Maximum number of items the discount can apply to. Blank for no limit.                                                                                                 |
| **Expires after**  | Number of days from generation. Blank means the code stays active indefinitely.                                                                                        |

#### What customers receive

When a review is published and qualifies for a reward per the frequency setting, Roadmap generates a unique discount code and either emails it to the customer or fires the Klaviyo event you've configured. The email contains:

* The generated code, for example `ROADMAPA83XO123`
* The discount value and what it applies to
* Any spend minimum or expiry information

Your Klaviyo flow controls the exact look and copy.

#### Common configurations

**"Reward members only, send via Klaviyo for branded design"**

* Reward frequency: **Every verified review**
* Customer Eligibility: **Members**
* Mail Template: **Trigger a Klaviyo event** → metric name `Member Review Reward`
* Discount Code: **20% off**, prefix `MEMBER`

**"Reward every reviewer with 10% off their next order"**

* Trigger: **When review is published**
* Reward frequency: **Every review (unverified and verified)**
* Customer Eligibility: **All customers**
* Mail Template: **Send mail via Roadmap**
* Discount Code: **10% off**, prefix `THANKS`, **Applies to All products**, no minimum, expires after 60 days

**"Reward verified reviews only, cap to one per order"**

* Reward frequency: **One discount per order**
* Customer Eligibility: **All customers**
* Discount Code: **15% off**, prefix `REVIEW`, expires after 30 days

A customer who reviews three products from the same order gets one code, not three.

#### Frequently asked questions

<details>

<summary>Does the generator deduplicate the same review being processed twice?</summary>

Yes. Roadmap tracks when a discount code was sent for each review. If the same review is reprocessed, for example an admin republishes it, no duplicate code is sent.

</details>

<details>

<summary>If I switch reward frequency from "Every verified review" to "One discount per order", does it claw back codes already sent?</summary>

No. Existing codes stay valid. The new setting applies only to reviews published after the change.

</details>

<details>

<summary>Why don't unverified reviews earn a code under "One discount per order"?</summary>

There's no order to group them by, so the system can't enforce the one-per-order rule. Unverified reviews are blocked entirely in this mode.

</details>

<details>

<summary>Can I use this alongside loyalty points for reviews?</summary>

Yes. The two systems are independent — loyalty points and the Discount Code Generator each have their own frequency setting. A reviewer can earn both points and a code from the same review.

</details>

<details>

<summary>Does the generator check that the customer actually bought the product?</summary>

Not in the same way as loyalty points. You can configure the generator to reward only verified reviews, which means the review must be linked to an order. But the generator does not perform strict product-purchase verification before sending the reward. If you need rewards only when Roadmap confirms the customer bought the reviewed product, use Loyalty points for reviews.

</details>

#### Related guides

* [Discount Code Generator](/discounts-and-gwp/using-gwp-and-discounts/discount-code-generator.md)
* [Review submission limits](/reviews/managing-reviews/review-rewards-and-limits/review-submission-limits.md)
* [Loyalty points for reviews](/reviews/managing-reviews/review-rewards-and-limits/loyalty-points-for-reviews.md)


---

# 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.roadmap.so/reviews/managing-reviews/review-rewards-and-limits/discount-codes-for-reviews.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.
