Skip to main content
Growth

Winback Flow for Shopify: When Is a Customer Lapsed?

Set your Shopify winback delay from your own reorder gaps, decide where discounts stop, and hand non-responders to a Klaviyo sunset flow. Worked examples.

November 4, 2026 19 min read Talha Butt.
Share

Winback Flow for Shopify: When Is a Customer Lapsed?

Quick answer: A Shopify customer is lapsed when they have gone longer without ordering than your own repeat customers normally take between orders, not after a fixed number of days. Klaviyo’s winback guide says to set the first delay a little longer than your average buying cycle, so work that cycle out from your own order data and look at the spread as well as the average. Keep the flow to about three emails, decide before launch where discounts stop, and finish with a separate sunset step for the people who still do not respond.

Open any winback flow template and the first decision is the delay: how many days after the last order do you email someone? A fixed number is easy to copy and often wrong. Klaviyo’s timing article uses 75 days before the first email as an example of how delays add up, not as a recommendation for your store. A skincare brand whose bottle lasts two months and a homewares brand whose customers buy twice a year cannot share a number.

This guide separates three decisions that winback advice often runs together. When does a customer count as lapsed? How long do you keep offering a discount? And what happens to the people who ignore the whole flow?

One thing up front. Prism3 does not run email or ads. We work on conversion after the click, organic and AI-search visibility, and measurement, so this guide is for building the flow yourself or briefing whoever runs your email. It is general information, not legal advice. The Klaviyo, Shopify and Australian rules below were checked on the providers’ own pages on 31 October 2026, and help pages change. I have left out recovery rates, because the figures usually quoted come without a stated method. The measurement section shows you how to work out your own.

Winback, replenishment and sunset are three different jobs

Here is how Klaviyo’s guides draw the lines.

FlowWho entersHow it ends
WinbackCustomers who bought, then went quiet for longer than your usual buying cycleA reorder, or the last email
ReplenishmentCustomers who bought something that runs out on a known scheduleA reorder
SunsetSubscribers who have stopped engaging with your email altogetherAn “Unengaged” flag, then suppression

Klaviyo’s winback guide suggests excluding products with a set reorder cycle from the winback flow and running a separate replenishment flow for them. Its sunset guide describes a final attempt to re-engage unresponsive subscribers, then suppression for the ones who stay silent. Winback goes after revenue from past customers. Sunset protects list health and keeps inactive profiles from counting toward your active email profile limit. The hand-off between them is where setups tend to fall apart, so it gets its own section.

What “lapsed” should mean

Klaviyo’s guide gives the principle: the flow should only target people who have not engaged for longer than your business’s average buying cycle, and that cycle depends on what you sell (it contrasts couches with shampoo). I would put it more bluntly. A customer is not lapsed because 60 days have passed. A customer is lapsed when they are overdue against a pattern you have measured. That gives you three zones.

ZoneWhere the customer isWhat you do
On scheduleInside the normal gap between ordersNothing. Let post-purchase and replenishment messages do their work
OverduePast the normal gap, but not yet goneWinback flow
GoneLong silent, no orders, no clicksSunset step, then stop emailing

The expensive mistake is starting the flow inside the first zone. Anyone you email while still on schedule might have ordered anyway, and if the email carries a discount, you have paid them for it.

Step 1: Work out your buying cycle from your own orders

There are three ways to get the number. Use more than one if you can, because they answer slightly different questions.

Method A: Klaviyo’s own method

Klaviyo’s winback guide gives a recipe. Build a segment of customers who have placed at least two orders in the last two years, export it as a CSV, and average the “Average Time Between Orders” column. Klaviyo defines that property as the average number of days between each of a customer’s orders. If your account qualifies for Klaviyo’s predictive analytics, the guide says you can get the cycle for segments more easily. Klaviyo also cautions that its predictions are not expected to be exact for any single person and work best averaged over many customers. So treat the cycle as a store-level setting, not a trigger on each person’s predicted date.

Method B: Shopify’s Returning customers report

You do not need Klaviyo for a first number. In your Shopify admin, go to Analytics, then Reports, and open the Returning customers report. Shopify’s help centre says it covers every customer with two or more orders and shows, for each one, the date of their first order, the date of their most recent order and the number of orders. You can filter the report and export it to CSV.

In a spreadsheet, a customer’s average gap in days is:

(most recent order date - first order date) / (number of orders - 1)

That gives you one average gap per repeat customer, which is what you need for the next step. It has a limit: a customer who ordered on day 0, day 30 and day 200 shows an average of 100 days, which hides real gaps of 30 and 170.

Method C: the cohort retention curve

Methods A and B only look at people who reordered. Shopify’s Customer cohort analysis report looks at everyone. It groups customers by the month of their first order, and its Metric menu includes customer retention rate, with a retention curve as a visualisation. Read an older cohort across the months: retention climbs, then flattens. Where it flattens is where, in your data, “late” starts turning into “gone”. Our guide to reading the cohort report walks through the table, and the one on calculating and raising repeat purchase rate is the companion read.

Four traps in your own data

  • Survivor bias. Methods A and B only include people who came back, so “how long people wait” is judged on the returners alone. Method C does not have this problem, which is why I would always look at it.
  • Averages hide the spread. A few very slow reorderers pull the average up. The next section shows how to look at the spread.
  • Mixed products. A shopper who buys a consumable and one who buys a gift do not share a cycle. Klaviyo suggests separate flows or branches for different product categories.
  • Small samples. With a few dozen repeat customers, any threshold is a rough guess. Pick a start day and adjust it as data arrives. Use the last one to two years of orders.

Step 2: Turn the numbers into a start day

Klaviyo’s rule is to start “a little longer than” the average cycle. It does not say how much longer. This is the part I set from the spread, and it is my own judgement, not Klaviyo’s instruction.

Here is a worked example. The numbers are made up for illustration. Say your Returning customers export gives these average gaps, in days, for 12 repeat customers:

34, 41, 47, 52, 60, 66, 71, 79, 88, 97, 118, 164

MeasureResultRepeat customers whose gap is longer
Average (mean)76 days5 of 12 (42%) have a gap longer than 76
Median68.5 days6 of 12 (50%) have a gap longer than 68.5
75th percentile90 days3 of 12 (25%) have a gap longer than 90
90th percentile116 days2 of 12 (17%) have a gap longer than 116

If you start the flow at the average, 76 days, five of these twelve customers would normally have reordered later on their own schedule. They would get a “we miss you” email, and possibly a code, before they were actually late. Start at 90 days and that falls to three of twelve. Start at 116 and it is two.

In a spreadsheet, the percentile figures come from PERCENTILE.INC over the gap column, for example =PERCENTILE.INC(A2:A13, 0.75).

The trade-off runs the other way: start later and you have less time to recover someone who has really drifted, and this data cannot show who never came back. So my decision rule is:

  1. Start no earlier than just past the average cycle. That is Klaviyo’s rule, and it is the floor.
  2. Look at the 75th and 90th percentile gaps. Somewhere between them is a sensible first guess for the start day, rounded to a clean number.
  3. Use Method C to sanity-check it. If the cohort retention curve is still climbing at your chosen day, you may be starting too early.
  4. Treat the first number as a hypothesis. Klaviyo’s guide recommends testing timings, subject lines and content one at a time, and points to multi-branch splits and A/B testing for the job. Test one earlier or later start day against it.

If you have enough data, do this separately for one-time and repeat buyers. A one-time buyer has no personal gap yet, so the best proxy is how long second orders take to arrive. Klaviyo’s guide lists order count and spend as split conditions.

Step 3: Build the flow

The structure in Klaviyo

Klaviyo’s guide builds the winback flow like this: the trigger is the Placed Order metric, a profile filter keeps out anyone who has placed an order since the flow started, and the first time delay is set a little longer than the average buying cycle. Klaviyo recommends three emails per recipient and describes a pattern for them:

  • Email 1: a light, short touch that shows three to six best-sellers or new releases and carries an incentive.
  • Email 2: a reminder with a sense of urgency, such as an expiry on the incentive, and a different set of products. It can be longer.
  • Email 3: a final call to action, a reminder that this is the last chance, and a prominent unsubscribe link.

Klaviyo’s help page on flow triggers and filters says profile filters are checked on entry and again before flow actions. If a profile fails the filter before an action, that action is skipped, but the person can move on to the next step. So a customer who reorders mid-flow stops getting the later emails, yet stays in the flow, which matters for the hand-off below. Check the re-entry setting too, because it decides what happens when the trigger fires a second time for the same customer.

An example timeline

Klaviyo’s timing article uses a 75-day delay before the first email and 15 days before the second, which puts the second about 90 days after the purchase. It also says that if a path depends on something a person might do after entering, such as ordering, the delay belongs before the split. For a store whose spread suggested a 90-day start, an illustrative timeline might be:

Day after last orderStepPurpose
90Winback email 1Light touch, products, offer only if your test supports one
97Winback email 2Reminder, different products, real expiry on any offer
107Winback email 3Last call, clear unsubscribe
114CheckOrdered or clicked? If so, exit. If not, hand off

The gaps of 7 and 10 days are my example, not a rule. Klaviyo notes that elapsed times are approximate when a delay waits for a time of day or day of the week.

Customers who lapsed before the flow existed

A flow triggered by Placed Order starts from new orders. Customers who stopped buying before launch need handling on purpose. Size them first with a Shopify segment. This is a ShopifyQL segment query you can adapt, with the 90 and 180 replaced by your own numbers:

email_subscription_status = 'SUBSCRIBED'
AND last_order_date <= -90d
AND last_order_date >= -180d

Shopify’s segment reference lists last_order_date and email_subscription_status as filters, accepts date offsets such as -7d, and combines clauses with AND and OR. Date values are whole days in your store’s time zone. The count tells you how many people are overdue today. I would contact them in batches and watch complaints, since a large one-off send to a long-quiet list can hurt your sender reputation. Our guide to Gmail and Yahoo sender rules for Shopify stores explains the limits.

Step 4: Decide where the discounting stops

The later you start, the fewer on-schedule customers you hand a discount to. But even a well-timed flow can lose money if the offer is too deep. Klaviyo’s pattern puts an incentive in the first email, which is worth testing, not proof you need one.

The break-even rule

A discount only pays for itself if it brings in enough extra orders. The rule, using contribution margin per order (the money left after product cost, shipping, payment fees and similar costs, before overheads):

Order multiple needed = margin before discount / (margin before discount - discount)

Here is an illustration. All amounts are ex GST and made up. The average order is A$80 and contribution margin per order is A$36 before any discount. Our contribution margin worked example shows how to find your own number.

Discount (off the A$80 order)Margin per order afterExtra orders needed to break even
10% (A$8)A$28about 29% more
15% (A$12)A$2450% more
20% (A$16)A$2080% more

Now put it in a test. Send 1,000 overdue customers no offer and 1,000 a 15% code. Say the no-offer group places 30 orders and the 15% group places 42. The 15% group has 40% more orders and still earns less: 30 orders at A$36 is A$1,080, while 42 orders at A$24 is A$1,008. To match the first group it needed 45 orders. This ignores later orders from people you win back, which are real, so track them by cohort over the following months. But it shows why “revenue from the flow” is the wrong scoreboard: some of those orders were coming anyway. Our post on discount dependency covers the longer-term risk of teaching customers to wait for a code.

Six stop rules

  1. Test no offer first. Put “no offer, new products or a reason to return” against “offer” in email 1. Klaviyo’s A/B testing can be used to test discounts in flow emails. Keep the smaller offer that works.
  2. One offer per flow. Do not escalate from 10% to 15% to 20% across three emails. A customer who learns that ignoring email two gets a better deal in email three will wait for it.
  3. Make the expiry real. Klaviyo’s pattern uses an expiry for urgency. In Shopify, a discount code has optional active dates, and Shopify’s help says that if you do not set an end date the code does not expire. If an email says “ends Sunday”, set the end date to Sunday. You can also restrict a code to a customer segment and limit it to one use per customer, which Shopify tracks by email address or phone number.
  4. Mind the labels. A winback code is not a “was and now” price, but if your email shows a crossed-out price, the ACCC’s price display guidance says a markdown claim can mislead when the item was not sold at the earlier price for a reasonable period before the sale. General information, not legal advice.
  5. Know who never gets a code. Customers still inside their normal cycle, anyone with a refund or return in progress, and replenishable products that belong in their own flow. Someone who came back unhappy needs a person, not a coupon.
  6. Stop when the flow stops. A customer who has ignored three emails does not need a bigger discount. Hand them to the sunset step. Klaviyo’s sunset guide says to consider a discount there, so run the same break-even check first.

Step 5: Hand the non-responders to a sunset step

Why Klaviyo’s default sunset segment will not catch lapsed customers

Klaviyo’s recommended sunset segment, also the prebuilt “Sunset (Email)” segment, is strict. It includes people who can receive email marketing, were created at least 180 days ago, received at least five emails in the last 72 weeks, and have, over all time, zero opens, zero clicks, zero site activity, zero product views, zero checkouts started and zero orders placed.

That last condition matters. A lapsed customer has placed an order, so they can never be in that segment, which is built for subscribers who never engaged at all. Klaviyo’s guide does say you can run any segment or list you plan to suppress through a sunset flow, but it means you build the hand-off segment yourself.

A hand-off design

Klaviyo documents each part of this, but not the hand-off as a recipe, so treat the design as mine and test it with a few profiles before it goes live.

  1. Winback email 3 sends.
  2. Wait a grace period. Klaviyo’s sunset guide suggests a short wait after the last email so slow openers are not missed, about three days for a store that emails daily, and seven to ten days if you email less often. Use the longer one.
  3. Check. If the person has placed an order since the flow started, they leave, and they are a customer again. If they have clicked any email, they leave and stay on your normal list.
  4. Flag the rest. Add a Property update action that sets a profile property, for example “Winback finished, no response” = true.
  5. Build the sunset segment. That property is true, AND they have placed zero orders in the last N days, AND clicked zero emails in the last N days. Set the sunset flow to trigger when a profile is added to that segment. For segment-triggered flows, Klaviyo’s default is no re-entry, which is what you want here.
  6. Run a short sunset flow. Klaviyo’s guide says one to three emails, best limited to no more than three, that prompt people to unsubscribe if they no longer want email, while giving them an easy way to stay. After the last one, a grace period, then a Property update that sets Unengaged = True. Profile filters on the flow skip that update for anyone who opens or clicks. A person who unsubscribes is suppressed automatically.
  7. Suppress, on purpose. The Property update does not suppress anyone. Klaviyo says there is no native flow action to suppress email profiles. You create a segment where Unengaged is true, review it, and choose Suppress current members, or have a developer automate it through the API. When Klaviyo offers both options, “Suppress inactive profiles” keeps subscribed profiles that have not marked your emails as spam and have clicked an email or purchased in the last six months, so review the counts and decide whether to keep recently active people. Suppressed profiles stop counting toward your active email profile limit.

Rules for the hand-off

  • Count the touches before you build. Three winback emails plus one to three sunset emails is up to six messages to someone who has not responded. Klaviyo warns that repeatedly sending to inactive inboxes can hurt deliverability and that repeated re-engagement emails put your reputation at risk. I would run one or two sunset emails after a full winback.
  • Exit on clicks and orders, not opens. Klaviyo notes that Apple Mail Privacy Protection can inflate open rates, so add order and click conditions to your own segment.
  • Suppression is email only. Klaviyo says it does not affect SMS or push, and SMS consent is a separate question. See our guide to SMS marketing consent in Australia.

Not legal advice, but this is the ACMA’s guidance in outline. You need consent before sending marketing messages, and it is up to you to prove it. You cannot send a message to ask for consent, because that is itself a marketing message. The ACMA also says inferred consent does not cover sending marketing after someone has just bought something, and is less reliable than express consent. Every commercial message needs an unsubscribe option that is honoured within five working days, costs nothing and needs no login. So filter your winback audience to subscribed people (the email_subscription_status field above is one way), and never use a sunset email to chase consent from people who did not give it.

What happens after the click

The email only gets someone to the door. This is where our work sits, so a few checks are worth making yourself.

  • Land them on the product they bought, or its collection, not the home page. A returning customer already knows you, so make the reorder quick.
  • Check the code on a phone. Shopify’s help says customers enter a discount code during checkout. Test your own flow end to end on mobile, with the code, before it goes live.
  • Check the order is counted once. If your analytics and Shopify disagree about what a winback email brought in, you cannot judge the flow. Tracking is checked first in our CRO audit, before any optimisation.

How to tell whether it is working

Open rate and “revenue attributed to the flow” are the usual scoreboard, and both flatter the flow. Better measures:

Look atWhyWhere
Reorder rate: entered vs held backShows orders the flow added, not orders it merely touchedShopify orders, Klaviyo segments
Contribution per 1,000 emailedAccounts for the discount, as in the break-even exampleYour margin sheet
Unsubscribes and spam complaintsA flow that wins orders and burns the list is a bad tradeKlaviyo
Repeat rate by cohort, months laterShows whether won-back customers keep buyingShopify cohort report

A hold-out is the honest test. Hold a random slice of overdue customers back from the flow, if your tool allows it, and compare their reorder rate with the emailed group. Without one, some “winback revenue” is simply customers who were going to order. Our post on how email lifts customer lifetime value explains why to measure by cohort. On a small list, give each test enough weeks to collect a fair number of orders.

Key takeaways

  • “Lapsed” means overdue against your own buying cycle, not a number copied from a template. Klaviyo’s 75 days is an example of how delays add up, not a benchmark.
  • Get the cycle from Shopify’s Returning customers report or Klaviyo’s Average Time Between Orders, check the cohort retention curve, and look at the spread. Start a little after the average, use the 75th to 90th percentile as a first guess, and test it.
  • A discount has to bring in enough extra orders to cover itself. At A$36 margin, a 15% code on an A$80 order needs 50% more orders to break even (illustrative).
  • Klaviyo’s default sunset segment excludes anyone who has ever ordered, so build your own hand-off segment.
  • Use one offer, a real end date and a rule for who never gets a code. Keep the total emails to a non-responder small, and suppress deliberately.
  • Measure against a held-back group and by contribution, not by opens or attributed revenue.

FAQs

How long should I wait before sending a Shopify winback email?

Longer than your own customers normally take between orders. Klaviyo says to set the first delay a little longer than your average buying cycle. Work the cycle out from your repeat customers, look at the 75th and 90th percentile gaps, and test a start day earlier or later. Klaviyo’s 75 days is an example only.

How many emails should a winback flow have?

Klaviyo recommends three per recipient. If a sunset step follows, Klaviyo says it is best kept to no more than three emails and warns that repeated re-engagement emails can put your sending reputation at risk. Decide the total a non-responder will get before you build. I would keep the sunset to one or two.

Should a winback email include a discount?

Test it. Klaviyo’s pattern includes an incentive in the first email, but whether it pays depends on your margin and on how many recipients would have ordered anyway. Work out the extra orders a discount needs to break even and compare against a no-offer group.

What is the difference between a winback flow and a sunset flow?

Winback targets customers who bought and are now overdue, to win a reorder. Sunset is a final attempt to re-engage subscribers who have stopped responding, followed by suppression. Klaviyo’s default sunset segment only includes people who have never ordered, so lapsed customers need a custom segment.

Can I send winback emails to customers who never subscribed to my emails?

Filter the flow to people who are subscribed, and check your consent records before you send. The ACMA says it is up to you to prove consent, that inferred consent is “not as reliable” as express consent, and that you cannot send a message to ask for consent. This is not legal advice, so check your own situation with a professional.

What recovery rate should I expect from a winback flow?

I do not know of one that comes from a source showing its method, so I will not give you a number. Measure your own against a held-back group, and compare contribution per 1,000 customers emailed, not opens.

Keep reading

Want a second opinion on your numbers?

A winback flow works on customers who have already left; it does not show where new visitors leave. Book a free 30-minute diagnostic: we look at where your store loses buyers after the click, using your own numbers, and tell you what to fix first. We do not run ads or email. No pitch. No email gate. If conversion and tracking are where your numbers point, see how our Shopify CRO service works.

Free 30-min diagnostic

Seen enough?
Book a free diagnostic.

We'll look at where your store loses buyers after the click and what to fix first. No pitch. No email gate. 30 minutes.

More from Prism3