The Promotions list holds every offer your store runs — image banners, text promotions and coupons — each with its dates, the pages it belongs to and who may see it. A Promotions campaign puts them on your site, and an algorithm picks which one each visitor sees. Open it from the left menu: Promotions → Promotions.
Watch the 1:45 walkthrough: the Promotions list, adding a promotion for the Knitwear category by hand, uploading a file or reading a feed, and coupons with a code for each visitor.
The list
Above the table: Upload file, Add promotion, Download template, the Time zone every date is read in, Visitor stages (see Who sees it) and Used codes (see How a code counts as redeemed). The tabs filter by status: All, Live, Scheduled, Ended, Paused and Draft.

| Column | What it shows |
|---|---|
| Image | The promotion’s picture, or an icon of its type when it has none. |
| Headline | The headline and the sub-line under it, with the type’s icon. |
| Categories | The page categories it belongs to. All pages when it has none. |
| Who sees it | Its rules in words, such as viewed Knitwear · VIP. Everyone when it has none. |
| Dates | From its start to its end, in the account’s time zone. Always when it has neither. |
| Languages | Every language the promotion has a row in (see Language and Promotion key). |
| Status | Live, Scheduled, Ended, Paused or Draft, and the two pauses below. A draft has an Approve button beside it. |
| Views, CTR, Redeemed | The last 30 days. CTR is shown from 100 views; fewer is noise. |
Columns adds any other field to the table — Internal ID, Promotion key, Type, Priority, Sales boost, the coupon code and the rest. The same section of the left menu has the Overview, the Calendar and the Report — see the dashboards.
Promotions that pause themselves
| Status | Why, and what brings it back |
|---|---|
| Paused out of stock |
Every product in its Promotes field is out of stock in your product catalog. It comes back by itself on restock. A promotion that names no products never pauses for stock. (The widget’s Pause when out of stock switch is on by default.) |
| Paused no codes left |
A code pool has handed out its last code. New visitors are not shown it until you add codes. |
| Paused | You set Active to Paused. Shown to nobody until you set it back to Live. |
Both automatic pauses are under the Paused tab, and the Overview lists them under Needs attention.
Adding a promotion
Add promotion opens the editor. Its steps: Kind, Content, Codes (coupons only), Where & when and Who sees it. Save promotion adds it to the list, and the campaigns start offering it from its start date. Click any row to open it in the same editor.
Kind
| Kind | What it is | Needs |
|---|---|---|
| Image banner | A picture with your words on it — for a hero, or the top of a category page. | A picture and a link. A phone picture and a code if you like. |
| Text promotion | A line of words with a button — for a top bar, or a strip between sections. | A headline and a link. No picture. |
| Coupon | A card with a Copy code button. | A headline, a link and a code — one for everyone, or one each from a pool. |
Content

- Headline — 60 characters or fewer: most designs cut a longer one. Sub-line — one short line under it.
- Button text and Discount — the discount as visitors read it, such as 20%.
- Write with AI writes the headline, the sub-line and the button from the type, discount, categories and link, and offers other headlines. Test them as variants adds them as drafts; once approved, each visitor gets one headline and the better-clicking one is shown more. Translate with AI adds a row in each language you pick, also as drafts. Nothing the AI writes goes live until you save or approve it.
- Link (required) — where a click goes: a full address, or a path on your site such as /sale.
- Coupon code and Redeem link — any kind can carry a code. The redeem link applies the code for the visitor, such as your store’s discount link; see Auto-apply a coupon code at checkout.
- Desktop image, Phone image and Thumbnail (image banners) — image addresses. Without a phone image, phones get the desktop one.
Where & when
- Starts and Ends —
YYYY-MM-DD HH:MMin the account’s time zone. No start: live as soon as it is saved. No end: it runs until you pause it. - Active — Live (shown between its dates), Paused (shown to nobody) or Draft (waits for your approval).
- Promotes — the products it sells, picked from your catalog. When all of them are out of stock, it pauses.
- Categories — the pages it shows on: those of the categories you tick (Knitwear in the video). None: it shows on all pages.
- Language — visitors whose browser is in this language get it: a two-letter code such as en, or
allfor everyone. Promotion key — rows that share a key are one promotion: its translations and variants. - Which shows first — Priority (a higher number pushes it up among the promotions that fit the same place) and Sales boost (moves it up while sales trail last week’s, in widgets with the boost on; Type default is on for coupons and rows with a discount).
- Advanced — the Internal ID, made from the headline unless you set one. An upload row with the same ID replaces the promotion.
Who sees it
Everyone, unless you add a rule. Add rule gives a line of pickers: a field, is or is not, and its values. Lines must all be true; the values in one line are alternatives. The rules are read back in words under them. Edit as text shows them as Name: value lines.

| Rule | Matches |
|---|---|
| Cart value | At least, or at most, a set amount in the cart. |
| Country, State or region, Near a city | Where the visitor is — near a city within a distance you set. |
| Viewed category, Viewed product, In cart | What they looked at (optionally within a number of days) or have in the cart. |
| Bought product, Bought from category, Spent to date | What they bought, and how much in total. |
| Stage | New, Returning, Subscriber, First-time buyer, Repeat buyer, VIP or Lapsing. |
| Visits, Days since first visit | At least a number of visits, or days since the first one. |
| After another promotion | They redeemed, clicked or saw another promotion first. |
| Pages, Device, Source | The page, phone/tablet/desktop, and where their first visit came from. |
| Any visitor field | Every field on the visitor’s profile, including the ones from your CRM — e.g. Industry is retail. |
Visitor stages, above the list, sets once for every promotion what VIP (VIP: spent at least) and Lapsing (Lapsing: no visit for so many days) mean. These rules choose among promotions; to decide where a campaign appears at all, use its targeting rules.
Uploading a file, a feed or Shopify discounts
- Download template — a CSV with every column and one row of each kind.
- Upload file — a CSV, TSV or Excel (XLSX) file. Map its columns, and check the preview: every row is checked as the editor checks it (a picture for an image banner, a link, dates in order, a code for a shared coupon, categories your site already has), and a refused row is listed with its reasons. Internal ID and Link are required; a row whose ID is already in the list replaces it.
- Who sees it in a sheet — a column per rule:
Min cart,Max cart,Country,State,Near,Viewed category,Viewed product,In cart,Bought product,Bought from,Stage,Visits,Days since first visit,Spent to date,After,Pages,Device,Source— or a visitor field by its title. For exampleStage=VIP,Near=Austin, TX; 25 mi. - A feed — enter a feed address instead of a file and keep it as a recurring feed: it is read again on a schedule and listed under Active feeds. SFTP and the REST API work too.
- Google Merchant Center — upload its promotions feed as it is: it is recognized and turned into rows. Google’s feed has no page per promotion, so each links to your shop’s address — change it where one has its own. Promotions for physical stores only are left out.
- Import from Shopify — in the upload’s file box when your store is connected with the
read_discountsscope. Active and scheduled discounts come in as rows: code discounts as coupons, automatic ones as text promotions; one with unique codes comes in as a code pool. See Shopify Integration → With the Promotions add-on.
Export writes the list back out in the same columns, with dates in your time zone, so an edited export can be uploaded again.
Coupons and code pools
A coupon’s Codes step sets its Coupon kind:
- Shared code — everyone gets the same code, e.g. SUMMER20. Add it to your store’s discounts too.
- Code pool — each visitor gets a code of their own from a list you add, and the same one when they come back. Codes can be added once the promotion is saved; they reach your site within 10 minutes.

- Add codes – one per line, then Add codes. Codes already in the pool and duplicates are skipped.
- Make codes — a Code prefix and how many: makes unique codes and downloads them. Add them to your store’s discount first, then press Add codes; visitors get them only after that.
- Make codes in Shopify — with the
write_discountsscope: makes the codes on a Shopify discount (a new one from this promotion’s Discount, or one of yours), up to 1,000 at a time, and adds them to the pool once Shopify has them. Top up by itself when it runs low keeps it filled.
The line above the box counts the pool: codes, handed out, used and left, and warns when it is running low.
How a code counts as redeemed
A code the store reports used is a redemption; Copy code counts as a code revealed. With Shopify connected (read_orders), codes on your orders are recorded every 10 minutes by themselves. For codes used where the Personyze tag cannot see — in the shop, by phone, on another device — open Used codes and list them one per line, with the date and the shopper’s email if you have them, or choose a file, then Record.
The same list in every Promotions campaign
Your promotions, the first step of every Promotions campaign, is this same list, so you can set it up right there. The rest of the campaign — the calendar, the widgets and how they choose, and the dashboards — is in Promotions Campaign — The Right Banner for Every Visitor.
Related
- Promotions Campaign — the widgets, the algorithms and the dashboards
- Shopify Integration — importing discounts, codes made in Shopify, redemptions from orders
- Auto-Apply Coupon Code at Checkout
- Targeting Rules
- Performance Metrics — how views, clicks and purchases are counted