Help · Content
Discounts
You make your discounts in Shopify. This app takes one of them, puts a code from it into an email you send or a form on your store, and then tells you what came back — who was given a code, who used it, and on what order.
Three words are used precisely here, because they are three different things. A discount is the thing you made in Shopify: 20% off, free shipping, buy one get one. A discount code is the string a person types or clicks. An offer is one discount attached to one message — this campaign, this form, or one email or text in an automation.
Where discounts come from
Shopify, always. There is no discount editor in this app and there never will be one. Your pricing rules belong in the place where the rest of your store's pricing lives, and a second editor over the top of them is a second place for them to be wrong.
This app holds a copy, never the original. It mirrors the code discounts in your store — value, dates, status — and keeps that copy current as you edit in Shopify, so a discount you attach to a message is the one your store already has. Your discounts are read when you install the app, so the ones you already have are here from the start. On a store with a great many discounts that first read can take a few minutes; the page says it is still reading, and fills in by itself as it goes. If Shopify cannot be read at that moment, the page says so and the app tries again on its own every 15 minutes. There is nothing for you to do.
Automatic discounts, and discounts made by another app, are shown too — only to look at. They are under their own heading, Automatic and app discounts, each marked Automatic or Made by another app, so this page shows the same discounts as Shopify's own Discounts page. An automatic discount applies at checkout on its own, and a discount another app made is managed in that app, so neither can go in an email or a form, and neither ever appears where you choose a discount for one. To give a discount away in a message, make it a discount code in Shopify.
A code of your own, or a code for each person
Your own code is the one you typed into Shopify — SPRING20. Everybody gets the same string. It is short, it is yours, and every limit you set on the discount applies exactly as you set it. What it cannot tell you is who used it: one string shared by everyone is one string, so a redemption belongs to the discount rather than to a person.
A code for each person is minted for one profile and nobody else. It is a prefix, a hyphen and eight random characters — something like SPRINGSALE-7K4X9Q3T. It buys you three things a shared code cannot: it stops working once it is used, it can carry a deadline of its own, and the order it is used on is matched back to the person you sent it to.
The prefix is the discount's name, unless you choose your own. Shopify shows a discount code by the code itself in the cart and at checkout, never by the discount's name, so the name goes into the code: a discount called "Spring sale" hands out SPRINGSALE- codes. The name is cleaned to capital letters and numbers, without spaces or punctuation — accents are dropped, so "Noël" becomes NOEL — and kept to twelve characters. A longer name is cut between words, never in the middle of one: "Ten off your first order" hands out TENOFFYOUR- codes. Only a first word longer than twelve is cut part way. A name with no letters or numbers in it gives codes of the eight characters alone.
To choose your own prefix, open the discount block in a form or an email and, under A unique code for each person, type it into Code prefix (optional) — up to twelve letters, numbers or hyphens, printed in capitals. A form about a flash sale might use FLASH, one about mascara MASCARA, a Black Friday email BFCM26. Leave it empty to use the discount's name. Every form and every email keeps its own prefix, so two forms on the same discount can hand out FLASH- codes and BFCM26- codes side by side, and one never gets the other's.
A new prefix applies to the codes handed out from then on — and renaming the discount in Shopify is a new prefix too, for every form and automation that uses its name. A campaign is the exception: its prefix is fixed when you schedule or send it, so it hands out exactly the codes you reviewed even if the discount is renamed afterwards. A code somebody already has keeps the prefix it was made with. A shared code is your own string, so it never takes a prefix.
Either kind prints on one line wherever it fits — on a form, in an email and in the app — made smaller when it has to be. A code you put into your own words with the Discount code field is held the same way: it keeps the size of those words when it fits, and only the code is made smaller when it does not. A code that cannot fit even at the smallest size runs onto a second line, breaking after its hyphen when it has one, and it is never cut off: one of your own long codes, or, in an email, a code for each person in a narrow column — a padded column of three, for example. The editor's checks tell you when a column is too narrow for every person's code, at the discount block or at the words that print it, and the editor shows the code breaking there, as some people will see it. A code you type into an HTML code block is printed exactly as you typed it and may break after its hyphen; use the Discount code block or field to keep it on one line.
Use your own code for a public sale you are also putting on a banner. Use a code for each person when the offer is the point of the message — a welcome gift, a win-back, a thank you — and you want to know what it did.
You never run out of codes
Codes are made ahead of the people who will need them, and the supply grows with your store's own activity. A signup form that gives a code to thirty people an hour keeps enough ready for thirty people an hour, and it does that by watching what actually happens rather than by a number anybody sets. Nothing here has to be topped up by hand.
A campaign is simpler still: it makes one code for every person it can send to before the first message goes out, so a big send cannot run short halfway through.
If a rush is bigger than what is ready at that moment, the app makes a code on the spot for the person in front of it, and they get it in the same breath as everybody else. The words you wrote on the discount code block — the ones under If no code can be given — are what somebody sees when there is no code to give at all: when that panel's block names no discount, when the discount has ended, been deleted, or has not started yet, when the code you chose has been deleted in your store, when your store cannot be reached at that moment, or when the address that filled in the form is in Do not email. Running out is not on that list and never will be. Your codes live at Shopify, so when there is nothing honest to hand over those words are what you would want said in your own. Their signup is saved either way.
As many codes as people you are sending to
One person, one code. There is no per-campaign limit to plan around: your audience is the limit. Send to eight hundred people and eight hundred codes are made.
Codes are made only for the people the campaign can actually reach. An email campaign makes a code for each person who has given their consent to email and can be sent one — not for anyone who unsubscribed, never said yes, is paused, or whose address can no longer be mailed. A text campaign makes a code only for people who agreed to texts and whose number can receive them. If a message cannot be sent, no code is made for it. Excluding someone from the codes never hides why they were not sent to: a person the campaign turns away — because they unsubscribed, never said yes, or are paused, for example — still shows up in the campaign's refusals with that reason, just as they always have. Someone with no email address (or, for a text, no phone number) was never going to be sent this campaign at all, so they are not in the refusals, and they are not counted in the campaign's audience either.
Someone who says yes after the codes are made waits for your next campaign. Codes are made once, just before the send starts. A person who gives their consent after that moment — or adds a phone number — is not sent this one: they would have no code in it, and a message promising a code without one is not a message worth sending. They are not refused and nothing is held up; the campaign finishes as it normally would, and the next one includes them.
There is a ceiling far above any ordinary send, and it is there to catch a runaway rather than to ration you — a segment that accidentally names everyone who has ever touched your store. A campaign above it is refused rather than quietly trimmed, and the refusal asks you to get in touch so it can be raised. In normal use you will never meet it.
A total usage limit on the discount does not apply to the codes you email. If you set your discount to be used 500 times in all, that limit belongs to the discount's own code. The codes you email are one per person, so the number of people you send to is the real limit. You are told this where you set the offer up rather than stopped by it, because it is your discount and your call.
What "good for 3 days" actually does
A code is good for that many days from the moment the person receives it, never from when you saved or published anything. The date printed in the email is the date Shopify itself enforces, at the end of that day in your store's time. You set the window in the discount block of the email or the form.
Wherever you set an offer up you say how long the code is good for: a number of days, or until the discount itself ends. On a campaign that is a setting in the email's discount block, beside the discount itself; on a form it is the same thing in the form's own discount block.
The count starts when the person receives the code, never when you saved or published anything. A code handed out on September 6 with a 3-day window is good through September 9, for that person and nobody else.
For each day your codes have to last until, the app creates a discount in your Shopify dashboard — a copy of yours, in every term that matters — that ends at the end of that day in your store's time. The codes for that day are made under it. So the date printed in the email is the date Shopify itself enforces. At 23:59 that day the code stops working at checkout, whether or not anything in this app is running.
That is why you may see discounts in your Shopify list you did not make, named after yours with the day on the end — Spring Sale · use by September 8. They are where the codes for that day live. They clean themselves up: once a day has passed, its discount is deleted and your list settles back to the discounts you made.
Your discounts, in this app
Content → Discounts lists every code discount in your store, when it runs, and how many codes this app has made for it. You make and change discounts in Shopify; the one setting here that is this app's own is Give each person a code of their own.
Each row says what the discount is, when it runs, whether it is running now, and where each of its codes stands. Ready is waiting to go out, Not in use was made under a prefix no live form or automation uses right now (you changed a prefix, or renamed the discount), Set aside for a campaign is spoken for, With a person is in somebody's hands, and then Redeemed, Expired and Withdrawn. A discount that gives everybody the same code has no codes of ours to count and says so rather than showing a row of noughts.
The numbers are this app's own record of every code it made. They are exact and they change the moment something happens. Shopify keeps a count of its own that settles at its own pace, and it is not what you are reading here.
Create a discount in Shopify offers the four kinds of discount Shopify makes — Amount off products, Buy X get Y, Amount off order and Free shipping — and each one opens that discount's own form in your Shopify admin. Pick the kind you want and you land on the form itself rather than on a list. Refresh reads your discounts again straight away — the app is told when they change, but the button is there for the moment you do not want to wait. Under the controls is when your discounts were last read in full — a store with no discounts at all still shows when it was read.
Search and the status filter narrow the automatic and app discounts the same way as the discount codes. They are always shown together under the table, never split across pages.
Search by name. Type more than one word and every one of them has to match, wherever each of them falls and in any order. Searching for a % finds a %; nothing you type is treated as a wildcard.
Paging. Under the table you choose how many to show at a time — 25, 50 or 100 per page — and step through with Previous and Next. The line beside them says where you are: Page 3 of 5. Type a number in the box to jump straight to a page. The page you are on is part of the address, so opening a discount and coming back puts you back where you were, and the size you choose is remembered the next time you open this screen. Searching or changing the filter takes you back to the first page. When your discounts were last read is about the whole store, not about the page you are on.
Whether a discount combines with others is set in Shopify, in the discount's Combinations section. A discount set not to combine is refused at checkout beside another one — so if a code this app handed out was refused at checkout on an order that already had a discount on it, that is the setting to look at.
Each row tells you where it stands. A discount that combines with product, order and shipping discounts says nothing, because that is the ordinary case. A discount that combines with none of them says Doesn't combine, and one that refuses some of them names which — Doesn't combine with shipping discounts, or Doesn't combine with product or shipping discounts. It sits with the discount's other descriptors, under its name. It is a fact about how you set the discount up, not a problem to fix; change it in Shopify's Combinations section and Refresh to see it here.
A discount that was read into this app before it started mirroring that setting shows nothing either way, and refreshing your discounts fills it in.
Give each person a code of their own is on this screen, on each row, and it is the one setting here that is this app's rather than Shopify's. Enabling it means the next campaign, form or automation email that gives this discount away hands out codes only one person can use. Disabling it withdraws the codes still waiting to go out; codes already in somebody's hands keep working until their own deadline, and from then on everybody shares the code you made in Shopify.
It is refused while a campaign that is ready to send is using this discount. Those codes are a promise, some of them already in an inbox. Cancel or send the campaign, then change it.
It is refused, too, while an automation's email or text gives this discount away. Take the discount out of that automation's email or text and apply the change first.
Creating the Birthday automation can enable it for you. When you choose a discount that gives everybody the same code for the Birthday automation, the create enables Give each person a code of their own for that discount, with the same refusals as here. See Birthdays.
One discount's page
Open a discount's name and you get the whole of what this app knows about it:
- What this discount is — Shopify's own summary, when it runs, the codes you made in Shopify yourself, and the prefix its codes for each person start with: the discount's name, unless a form or an email sets its own.
- Codes waiting to go out — one line per deadline day, what is ready under it and what is still being made. A day that has been running low says since when, as a time, not as a number of attempts. Codes made under a prefix that no live form or automation uses right now — you changed a block's prefix, renamed the discount, or paused the form — are not counted as ready; the line says how many there are. They are handed out only if a form or automation starts using that prefix again before they expire.
- What this discount has cost — how many codes have ever been made for it, against a ceiling that grows with the number of people you can email, and Shopify's own store-wide total for context.
- Batches that need a look — a batch of codes we never heard back about, or a withdrawal that has been running longer than it should. Nothing is lost and nothing was sent short; it is there so you can ask.
- Offered in — one row for every place that gives this discount away, with when it was attached, how long its codes are good for, how many went out, how many orders came back and what those orders were worth. A campaign has one row. A form has one row per panel that gives a code away, because a form can end in more than one place and hand out something different at each — the panel's name is under the form's, so you can tell them apart. A spin-the-wheel prize has its own row too, named by its panel and its slice ("Spin · $5 OFF"), even when two prizes give away the same discount. An automation has one row for each email in it that gives the discount away, marked Automation, and its name opens the automation.
A form's and an automation's numbers say Not recorded, and that is not zero. Codes handed out by a form or an automation come from this discount's shared pool, and the pool does not record which one gave out which code. The line under the table counts all of them together.
Choosing what a message gives away
Add a discount block to the message and choose the discount there. On a campaign the block sits in the email; on a form it is a Discount code block on a panel people reach after signing up. The offer travels with the message, and taking the block out takes it away.
On a form, the offer is part of the form. You add a Discount code block to a panel people reach after signing up — never the first one — open it, and choose the discount, whether each person gets their own code or everybody gets your shared one, and how long a code is good for. A form may carry a different discount on each thank-you panel, and a person only ever reaches one of them.
It waits for the publish, like everything else in a form. Nothing goes out from a working copy, and taking the block out and publishing is how you stop giving it away — codes already handed out keep working either way.
Anyone on the team but a viewer may say what a form gives away. The block only ever names a discount that already exists in your store; making the discount is done in Shopify, and enabling unique codes for one is done from the discount itself, by a marketer, manager or owner.
On a campaign, the offer is part of the email. You add a discount block where the code should appear, open it, and choose the discount there — with the heading, the terms line, the words before the expiration date and how long the code is good for all settings on that block. There is no separate step attaching a discount to the campaign: the email is what says what the campaign gives away, so an email you clone or reuse carries its offer with it, and taking the block out takes the offer away.
What the block's panel asks, in order. Which discount, from the code discounts you have made in Shopify — a discount that has not started, or has ended, is still listed and says so, rather than quietly missing. Then, if that discount gives away its own code rather than one per person, which code. Then a heading in your own words, with its own size, alignment, color and typeface. Then the code's own size, alignment and color. Everything else is one card, Discount details. Where the terms line comes from: the Shopify default, Your description starting from that wording, or Do not show it. That store wording is written from the discount's own settings in Shopify — the amount off, what it comes off, and any minimum to spend — so it reads the way you set the discount up rather than the way Shopify happens to label it in a list, and the card shows it to you beside the menu. Then Show the expiration date, which writes the promise out as one sentence you fill in — Use by the date, good for 3 days after they receive it. The words in front of the date are yours — Use by to begin with. How long each person has is the tail of that sentence: until the discount ends, or a number of days from the day they receive it. Last, one size, alignment, color and typeface for the terms line and the date together.
The code you send is a link, and so is the button beside it. Either one opens your store with the discount already applied — to the reader's next checkout, and to any cart they already have open — so nobody has to copy anything. Shopify counts a code arriving that way like any other, against the five one order may carry. And only a discount that is running can carry a link like this, which is one more reason a discount that has ended is refused where you choose it.
These are refused where you set them rather than at the end.
A discount that has already ended. You are told when it ran until, and asked to choose another or give this one a new end date in Shopify. It is asked before the window question, because the discount is the thing to fix.
A window that would outlive the discount. If the discount ends on Monday, a code cannot be good for seven days. You are told how long the offer is good for and the day the discount ends, and asked to:
Shorten the window in the discount block, or give the discount a
later end date in Shopify.
A promise you wrote is never quietly shortened to fit.
A code good until the discount ends, over a discount with no end date. Nothing in that combination decides when the code stops, so it is refused — whether each person gets their own code or everybody shares yours: choose how many days the code is good for, or give the discount an end date in Shopify.
A discount in a rollout in Shopify. Shopify is testing it on only some of your shoppers, and the others would be refused its code at checkout, so it is refused here too — whether everybody gets the same code or each person gets their own. When the discount changes in Shopify, below, has the whole of it.
While a campaign is preparing its codes
An offered campaign does one thing before it sends anything: it makes a code for every person it can send to. Nothing goes out until every one of them exists, so nobody is ever sent an email with a blank where a code should be.
If it stalls, the campaign stops and is marked Needs attention, with the reason. It has sent nothing at that point. Some reasons clear themselves — Shopify limits how fast anybody can ask it for codes, and waiting is the whole fix — and the campaign carries on when they do.
If you cancel while codes are being prepared, it stops there. Nothing is sent, the codes made for it are taken back out of your store, and the campaign does not return to being ready to send; you would set it up again.
The deadline is fixed when you make the campaign ready to send, not when each email leaves. Everyone in one send gets the same date, however long the sending takes, and a change you make to the discount afterwards never extends or shortens a code somebody already holds.
When the discount changes in Shopify
End it or delete it and its codes stop working, because Shopify is what checks them at the counter. Here the offer is marked unavailable, and a campaign that was ready to send is stood down with the reason rather than mailing a code that would be refused. A draft keeps its offer and says the discount has ended.
Shorten it under a campaign that is already sending and the people who have not been mailed yet are held back, rather than sent a date that is no longer true.
Put it in a rollout and Shopify may give the discount to only some of your shoppers, or to none, while it still says the discount is active. A shopper the rollout excludes is told at checkout that the code isn't available to them — and that shopper is the one holding the code you sent. So while a rollout runs, Carpe Messaging doesn't use the discount at all, whether everybody gets the same code or each person gets their own. In the discount picker it is still listed, marked "can't be used: Shopify is testing it", and it can't be chosen. A discount you chose before its rollout began says why where you chose it:
Shopify is testing this discount on only some of your shoppers (a rollout),
so Carpe Messaging can’t use it. Shoppers outside the test are told at
checkout that the code isn’t available. Choose another discount,
or end the rollout in Shopify.
A rollout that is scheduled but has not started yet counts too. The picker marks it "can't be used: Shopify has a test scheduled", and the sentence says the test is scheduled instead of running. The same goes for a campaign waiting on one and for a form not showing because of one: their sentences say the test is scheduled, not that Shopify is testing.
You can't make a campaign or a text ready to send with it, or publish a form with it. A draft keeps the discount you chose, so you can come back to it when the rollout is over.
If the rollout starts after a campaign is ready to send, the rest of the send waits, and the campaign is marked Needs attention with the reason. Nobody still waiting is sent a code in the meantime, and no codes are made for it. The campaign carries on by itself when the rollout ends, or you can cancel it. A text campaign waits up to three days from when it started sending; after that, the rest is not sent.
If the rollout starts after a form is live, the form stops showing on your store until the rollout ends, then shows again by itself. Nothing about the form changes: it is still live, and its card says "Not showing" and why. Somebody who already had the form open when the rollout began is still signed up, and sees the words you wrote for when no code can be given. The same goes for somebody who was still typing the code we texted them, or who sends the form again: they are signed up, and see those words instead of a code. To show the form sooner, choose another discount in it and publish, or end the rollout in Shopify.
If an automation shows a code from it, the message waits too. An automation that starts on Received a discount code can show that code in its email or text; while the code's discount is in a rollout, the message is held, and it goes out by itself when the rollout ends. A text waits up to seven days; after that it is recorded as not sent. The automation's Report lists those people as held, with the reason. A code that can't be used any more is never sent at all: one already used, expired, withdrawn, replaced by a later code from the same form or deleted in Shopify, or one whose discount was deleted. That message is skipped and the automation carries on to its next step.
The discount's page says it is in a rollout, what share of shoppers the rollout reaches and when it next changes, when Shopify gives those. When the rollout is a test with two or more sides, it names the split instead, for example "Shopify is testing this discount on a 50 / 50 split", and adds the share of shoppers when the test reaches fewer than all of them ("… split of about 40% of shoppers").
To see rollouts at all, the app needs your approval for one more permission the next time you open it. Until you approve it, the app can't tell whether a discount is in a rollout, and nothing is held back.
A code from a form applies itself
Somebody who gets a code from one of your forms does not have to type it. As soon as the code appears on the form's thank-you panel, it is put on that person's cart before they press anything: the cart page shows the discount line and the total comes down. It survives closing the form and is remembered in their browser, so it is still there on a later visit.
A line under the code tells them so, in whatever words you put on the block — Applied to your cart automatically. until you write your own. It is drawn only once the cart has answered that it really has the code, which is what makes it safe to say at all.
The code itself is not a link. It is there to be read. The way on into your store is a button on the panel, and the Editing a form help page says how to set one up.
If your store will not honor the code — it ended, it ran out, the cart does not meet its conditions — it is taken straight back off the cart, and no line is drawn at all: nothing on the panel ever said it was applied, so there is nothing to take back. The code is still on screen for them to try.
When somebody uses a code
An order that used one of your codes is matched back to it within a few moments of the order being placed. The redemption is recorded against the profile you sent that code to, and the email address on the order is recorded beside it — so a code that was forwarded to a friend is visible as one, rather than quietly counted as somebody it was not.
An order counts once, however many of your codes were on it. Each code is recorded separately, because each one is its own fact about who was sent what — but every count of redemptions counts orders, so one order that used two of your codes is one redemption, not two.
The money recorded is the order's value, unadjusted for payment, cancellation and refunds. It is what was ordered, not what was banked, and a refund later does not move it. It is honest about being an early number rather than an accountant's one.
A code of your own attributes to the discount, not to the message. Everybody has the same string, so there is nothing in it to tell one person from another. A code of your own is never withdrawn when somebody uses it, either — many people are meant to use it, which is the whole point of having one.
Redeemed a discount code joins the Metrics page like anything else your store records. You can chart redemptions over time, open the metric to read each one as it was recorded — the order, the code, the order's value and the discount taken off it — or write a segment about the people in it.
Every code you give away is written on the profile
Every code a person is given shows on their profile: as Received a discount code in their activity, and in a Discount codes section under Activity that lists the most recent codes they hold and where each stands. Somebody who has never been given one has no section.
Received a discount code appears in a person's activity the moment a code becomes theirs, whether it came from a campaign or from a form. A Discount codes section then appears at the foot of that person's page, under Activity, and lists the 25 most recent codes they hold: the code, the discount it came from, the date it runs out — or No deadline, where the discount has no end — and where the code stands. Ready means it still works, Redeemed means it has been used, Expired means the date has passed, and Retired means the code is being withdrawn from your store — a withdrawal is asked for the moment it is due and Shopify takes a little while to finish it. A code that came from a campaign names the campaign; a code that came from a form says so, without naming which form.
Somebody who holds more than 25 is told so under the table. Only the section is capped, never the store — the older codes are still good and still work at checkout.
Somebody who has never been given one has no section. There is nothing to say, so the page does not say it: the codes appear the day a code does.
Holding a code says nothing about who somebody is. It never marks them as a buyer, and it never changes whether their identity is confirmed.
Can a code be used twice?
Each person gets their own code, and a code stops working once it is used. Shopify tells us about an order a few moments after it happens, so there is a short window right after someone checks out where the same code could be used a second time. The discount's own "one use per customer" setting is a second guard, and we enable it for you.
Codes are typed exactly as they appear
Codes are printed in capitals, and they are meant to be typed as printed. The characters that are easy to confuse are excluded from them — no capital O against a zero, no one against a capital I — so a code read off one screen and typed on another still works.
Discount codes in texts
A text campaign can give a discount away too. In the text, press + Discount code to put the code in the message, then choose the discount and how long its code is good for in the Discount card under it. It works the way it does in an email: each person gets a code of their own, or everyone gets the one code you chose from your store.
A text that shows a discount code but gives no discount away cannot be scheduled, and neither can one that gives a discount away without showing the code.
A code is made only for the people in the audience who agreed to texts and whose number can receive them, because they are the only people the text can reach. Someone who agrees to texts, or adds a phone number, after the codes were made is not sent that text; they wait for your next campaign.
In an automation's email
An email in an automation can give a discount away the same way a campaign's does: put a discount block in it, or choose the discount under Discount in Settings for a text-only email, and pick the discount. Each person gets their code when the email is sent to them, which may be months after you set it up.
A code for each person works for the number of days you choose after that person's email is sent — through the end of that day in your store's time zone — or until the discount ends in Shopify, if that comes sooner. The email prints that day. A code for each person needs a last day from somewhere: the number of days, or the discount's own end date.
The discount's own code is the same for everybody, so it has no days of its own: it works until the discount ends in Shopify. The email prints that end date, or no date at all if the discount has none.
One code per person per day. Shopify lets each person use a code from a discount once on any given day. If somebody already holds an unused code from the same discount for the same day — from a form, or an earlier email — they are sent that same code again. If they have already used one, that email is skipped for them, and the automation's Report counts it among the messages not sent, as Discount could not be given.
When the discount cannot be used. If the discount is deleted or ends in Shopify, or Shopify is testing it on only some shoppers (a rollout), nobody is sent a code that would not work. People wait at that email instead:
- Owners and managers get one email when the first person starts waiting, and a reminder on day 3 if they are still waiting.
- The automation shows Needs attention on the Automations screen, and its own page says how many people are waiting.
- Choose another discount in the email and apply your changes, or fix the discount in Shopify. The people waiting are sent the email on their own once its discount can be used.
- Anyone still waiting after 7 days skips that email and carries on with the rest of the automation.
A code somebody has already been sent keeps working until the day printed on it, even if the discount is deleted or deactivated in Shopify afterwards. The discount's own code stops at once.
Codes still being made. When many people reach the email at once, a few may wait a minute or two while more codes are made. That is not something you need to fix, and it is not counted as Needs attention.
A discount that has not started yet. If the email's discount is scheduled to start later in Shopify, people wait at that email until it starts. Nothing needs fixing, so it is not counted as Needs attention, and the 7-day limit does not apply to that wait.
When you apply changes, an automation is refused if one of its emails or texts gives away a discount that is no longer in your store, a discount that has ended, a code for each person with no last day at all, or the discount's own code with no code chosen. It is refused too if the automation starts when someone receives a discount code and one of its emails or texts gives one away, because each one sent would start the automation again.