> For the complete documentation index, see [llms.txt](https://docs.peakcommerce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.peakcommerce.com/product/rules-and-customizations/rules-overview/running-a-promo-that-converts.md).

# Running a Promo That Converts

A promo is easy to launch and easy to leak money on. **Offers** let you build one that converts *cleanly* — targeted to the customers you want, capped so it can't be over-redeemed, and resolved by priority so offers never stack by accident. A live preview shows exactly what the customer sees and what the discount gives back, before the offer ever goes live.

{% embed url="<https://youtu.be/zkQwTzuLaaQ>" %}

**Where to find it**

Go to **Commerce → Offers → New Offer**. The editor is organized into **Definition**, **Discount**, **Guardrails**, **Targeting**, and **Schedule**, with a live **Customer Preview**, **Billing Impact**, and **Checks** panel on the right that updates as you build.

**Build a launch promo**

1. Under **Definition**, choose **Cart Promo** — a one-time discount at checkout — and give it an **Offer Code** customers enter (for example, `LAUNCH30`).
2. Under **Discount**, set the **Discount Type** and **Value** — say 30%. The Customer Preview updates instantly to show the discounted price and the give-back.
3. Under **Guardrails**, protect your margin:
   * **Max Total Uses** caps the whole campaign.
   * **Max Uses Per Customer** stops one customer redeeming it repeatedly. **Cap Basis** decides whether that limit counts every grant ever (**Lifetime**) or only within a trailing window (**Rolling window**).
   * **Cooldown (days)** sets a minimum gap between grants to the same customer. These limits are enforced server-side, not just in the UI.
4. Under **Targeting**, select one or more **Target Audiences** so the offer reaches only the customers you want — leave it empty for everyone. When audiences are set, a customer must be a member of at least one (OR logic).
5. Set the **Audience Priority**. When a customer qualifies for more than one targeted offer, the **highest priority wins** — so promos resolve to a single winner instead of stacking.
6. Under **Schedule**, set **Active**, optional **Start**/**End** dates, and whether the offer **Auto-Applies** at checkout or requires the code. Then **Create Offer**.

**Read the live preview before you launch**

The right-hand panel is your safety check:

* **Customer Preview** — the exact checkout the customer sees, with the discounted price.
* **Billing Impact** — an illustrative order broken down to the **total give-back**, so the cost of the promo is visible up front (actual amounts resolve from the billing system at apply time).
* **Checks** — surfaced warnings, such as an offer with no end date that runs until you deactivate it.

**How targeting and priority work together**

* **Audiences** decide *who is eligible* — reuse the same segments you build for churn risk and campaigns (see [Targeting with Audiences](/product/rules-and-customizations/rules-overview/targeting-with-audiences.md)).
* **Priority** decides *which offer applies* when several match, so you never rely on accidental ordering.
* **Guardrails** decide *how often* — a campaign cap, a per-customer limit, and a cooldown keep a generous promo from becoming a leak.

> **Tip:** Set a per-customer limit and a priority on every promo, even a simple one — the two together are what keep a discount from being redeemed twice or silently stacking with another live offer.

**Learn more:** [Rules Overview](/product/rules-and-customizations/rules-overview.md) · [Targeting with Audiences](/product/rules-and-customizations/rules-overview/targeting-with-audiences.md) · [Pricing by Segment and Partner](/product/rules-and-customizations/rules-overview/pricing-by-segment-and-partner.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.peakcommerce.com/product/rules-and-customizations/rules-overview/running-a-promo-that-converts.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.
