Every Shopify store has a growing list of customers who bought once, maybe twice, and then quietly stopped. They’re not unsubscribed. They’re not on a competitor’s list because they hated the product. They just drifted, and without a deliberate flow designed to catch them, most stores never send them anything until a generic newsletter years later, if at all.
A win-back flow is one of the higher-leverage flows a Shopify store can build in Klaviyo, because the audience already has purchase history and existing brand familiarity, you’re not trying to convince a cold stranger, you’re trying to remind an existing customer why they bought in the first place. Done properly, it’s triggered automatically off real purchase behaviour synced from Shopify, not a guess.
This post walks through how to build a genuine win-back flow in Klaviyo for a Shopify store: the trigger logic based on last order date (and, where available, predicted next order date), a realistic multi-email sequence with discount escalation, the suppression rules that keep it from annoying customers who don’t need it, and the Klaviyo-Shopify integration mechanics that make the whole thing possible.
How Klaviyo’s Shopify Integration Feeds This Flow
Klaviyo’s native Shopify integration (connected from Klaviyo’s Integrations settings, or from the Klaviyo app installed via the Shopify App Store) does the heavy lifting here, it’s what makes a purchase-behaviour-based win-back flow possible without manual data work. Once connected, it syncs:
- Order events, Placed Order, Ordered Product and Fulfilled Order events, each carrying line-item detail (products, categories, value).
- Customer profile properties, including historic order count, total customer lifetime value, average order value, and critically for this flow, last order date.
- Predicted analytics, where Klaviyo has enough order history across a customer’s purchases to model it, including predicted next order date, predicted customer lifetime value and churn risk. These predictive properties are calculated per profile once Klaviyo has sufficient historical order data for that customer (and for your store overall); newer stores or customers with only one order often won’t have a reliable predicted next order date yet, which matters for how you set up the trigger.
- Product catalog data, used for dynamic product recommendation blocks in emails (showing a customer’s previously purchased items or Klaviyo’s recommended-for-you blocks) without manually building a product feed.
This is worth understanding before building the flow, because the trigger logic below depends on which of these properties are reliably populated for your store. A store with two years of order history and repeat buyers will get more value out of predicted next order date; a newer store with mostly first-time buyers should lean on the simpler last order date (day-count) trigger instead.
Defining “Lapsed”: Setting Your Trigger Window
The core decision before building anything in Klaviyo’s flow builder is: how many days since a customer’s last order counts as “lapsed” for your store? This isn’t universal, it should roughly track your typical repurchase cycle.
A practical way to set it:
- Consumable or fast-repeat products (skincare, supplements, pet food, coffee): the trigger window is often shorter, somewhere in the 45-60 day range past the point a typical customer would need to reorder, since waiting too long means the customer has likely already found the product elsewhere.
- Considered or infrequent purchases (apparel, homewares, jewellery): a longer window is usually more appropriate, often 90-120 days, since a shorter window risks messaging someone who simply hasn’t needed to buy again yet, which reads as pushy rather than helpful.
- Where predicted next order date is reliably populated, a more precise version of this trigger uses that property directly, for example, triggering the flow a set number of days after the predicted next order date has passed without a new order, rather than a flat day count from last order date. This tends to produce a more relevant “you’re overdue” message, since it accounts for each customer’s own buying rhythm rather than applying one blanket window to everyone.
In Klaviyo, this is built as a segment (Klaviyo admin under Audience > Segments) with conditions such as: “What someone has done”, placed an order at least once (ever), AND “Placed Order” zero times in the last [X] days, AND, if you want to be more precise, “Predicted next order date” is before today. The win-back flow is then set to trigger when a profile joins this segment.
Suppression Logic: Who Should Never Get This Flow
Suppression is where most win-back flows fall down, either sending to people who don’t need it, or worse, ignoring consent. Build these exclusions in from the start rather than adding them after a customer complains:
- Exclude unsubscribed and suppressed profiles. Klaviyo respects global unsubscribe status automatically for email, but double-check the flow doesn’t rely on a list membership that bypasses this, and apply the same discipline to SMS consent separately if you’re using SMS in the sequence, email and SMS consent are tracked independently in Klaviyo.
- Exclude anyone who has ordered since entering the segment. Add a flow filter (Klaviyo’s “trigger filter” or a check at each flow step) that removes the profile from the flow if they’ve placed an order after entering, otherwise you risk sending a “we miss you, here’s 15% off” email to someone who checked out yesterday.
- Exclude customers already inside another active flow that targets the same intent, for example, someone currently in a browse abandonment or cart abandonment flow shouldn’t simultaneously enter win-back messaging; it’s confusing and can undercut the discount logic if they receive two different offers at once.
- Exclude recently engaged customers who haven’t purchased but are actively opening and clicking campaigns. These people aren’t lapsed in the way this flow assumes, they’re engaged but not yet ready to buy again, and a discount-escalating win-back sequence isn’t the right message for them.
- Set a re-entry cooldown. If a customer completes the win-back flow without purchasing, don’t let them re-enter it again for a reasonable period (commonly 90-180 days), sending the same escalating discount every few months trains customers to wait for progressively bigger discounts instead of buying at full price, which erodes margin over time.
The Flow: Step-by-Step Sequence With Discount Escalation
Here’s a realistic five-touch structure for a Shopify win-back flow in Klaviyo. Timing and discount levels should be adjusted to your margin and typical order value, but the escalation logic, start soft, increase the incentive only as the customer continues to not respond, holds across most stores.
- Email 1, Day 0, “We’ve missed you.” No discount yet. Lead with reconnection, not a deal, remind them what they bought last, use a dynamic product block showing their previous purchase or category, and give a genuine reason to look again (new arrivals, a product update, or simply a warm, low-pressure check-in). Offering a discount immediately trains customers to wait for one on every visit, so holding it back here protects margin on the customers who would have returned anyway.
- Email 2, Day 4, value reinforcement. Still no discount. Focus on product benefits, genuine social proof if you have it (real reviews, not fabricated stats), or practical content relevant to what they bought, a how-to-use guide, a related-products showcase, or answers to common questions about the product category. This step is about re-establishing relevance before you spend any margin on an incentive.
- Email 3, Day 8, first incentive. Introduce a modest offer, free shipping, or a smaller percentage discount (commonly in the 10% range), framed as a thank-you for being a returning customer rather than a generic blanket discount. If you run SMS and have consent, this is often a good point to add an SMS touch alongside the email, since win-back messaging benefits from a slightly more direct, time-relevant nudge.
- Email 4, Day 14, increased incentive with urgency. For customers who still haven’t engaged, step the offer up (commonly to somewhere in the 15-20% range) and add a genuine expiry, a real deadline the flow enforces, not a fake countdown that resets. This is the point where the “escalation” in discount escalation logic actually matters: customers who ignored a soft nudge and a small offer need a clearer, time-bound reason to act now rather than later.
- Email 5, Day 21, last call / sunset. A final, honest message, acknowledge it’s been a while, make clear this is the last email in the sequence, and give a simple choice to either use the current offer or opt to hear from you less often. For customers who don’t engage with this final email, consider moving them to a reduced-frequency segment (rather than continuing to email at full cadence), sustained non-engagement is a legitimate reason to email less, both for deliverability reasons and because Shopify stores generally get better long-run list health by respecting disengagement rather than pushing through it.
Throughout the sequence, each email should check the suppression conditions above, particularly the “has this person ordered since entering the flow” filter, so an in-progress win-back sequence stops the moment it’s no longer relevant.
Building This Properly in Klaviyo
Once you’ve decided on trigger windows and discount levels, building the flow in Klaviyo generally means: creating the segment definition described earlier, building the flow with a segment-entry trigger, adding time-delay steps between each email matching the day counts above, and adding conditional split or flow-filter checks before each email to catch anyone who’s ordered, unsubscribed, or otherwise become ineligible mid-sequence. This is exactly the kind of gap a properly configured Klaviyo email marketing setup is designed to catch, getting the segment logic, suppression filters and discount escalation genuinely right (rather than using Klaviyo’s generic win-back flow template unchanged) is what determines whether the flow actually protects margin while it re-engages lapsed customers.
Practical Checklist: Klaviyo Win-Back Flow Build
- Confirm the Klaviyo-Shopify native integration is connected and order/customer properties (last order date, predicted next order date where available) are syncing correctly
- Set a trigger window (days since last order, or predicted-next-order-date-based) that matches your store’s real repurchase cycle, not a generic default
- Build the trigger segment with “placed order at least once” AND “zero orders in X days” conditions
- Add a flow filter or per-step check that removes anyone who has ordered since entering the flow
- Exclude unsubscribed and suppressed profiles, and handle SMS consent separately from email consent
- Exclude customers currently active in another conflicting flow (cart abandonment, browse abandonment)
- Sequence discount escalation so the first 1-2 touches carry no discount, with incentives only introduced and increased in later steps
- Add a genuine expiry to any urgency-based offer late in the sequence, not a fake countdown
- Set a re-entry cooldown period so completed non-converters aren’t immediately re-triggered
- Move non-engaged completers to a reduced-frequency segment rather than continuing full-cadence sends
FAQ
How many days since last order should trigger a Klaviyo win-back flow for Shopify?
There’s no single correct number, it should reflect your typical repurchase cycle. Fast-repeat consumable products often warrant a shorter window (around 45-60 days past expected reorder time), while considered or infrequent purchases usually warrant a longer one (90-120 days), so the message reads as timely rather than premature.
Should every email in the win-back sequence include a discount?
No, leading with a discount on the first email tends to train customers to always wait for one, which costs margin on people who would have returned without an incentive. A more effective structure holds the discount back for the middle-to-late emails, reserving it for customers who haven’t responded to a softer, no-discount reconnection first.
What is predicted next order date in Klaviyo, and can I rely on it for every customer?
It’s a Klaviyo-calculated property that estimates when a given customer is likely to place their next order, based on their own purchase history and patterns across your store’s customer base. It’s only reliably available once Klaviyo has enough historical order data for that customer and your store generally, so newer stores or customers with a single order often won’t have a meaningful predicted date yet, a flat days-since-last-order trigger is the more dependable fallback in that case.
How do I stop a win-back email going out to someone who just placed an order?
Add a flow filter or conditional check before each email step in Klaviyo that re-evaluates whether the customer still meets the “no orders since X” condition, and exit or skip the flow if they’ve ordered. Relying only on the segment entry condition isn’t enough, since Klaviyo doesn’t automatically re-check segment membership at every step without an explicit filter.
Does a win-back flow hurt email deliverability if lapsed customers don’t engage?
It can, if you keep emailing non-responders at full frequency indefinitely. Sending repeatedly to profiles that never open or click signals poor engagement to mailbox providers, which can affect deliverability more broadly. That’s why the sequence above ends with a genuine sunset step, either the customer re-engages, or they’re moved to a reduced-frequency segment rather than staying in the standard send cadence.
Get Your Win-Back Flow Built Right
If your Shopify store doesn’t have a proper win-back flow yet, or you’re running Klaviyo’s default template without the suppression logic and escalation structure covered here, it’s worth having it reviewed before more lapsed customers slip further out of reach. Book a call with Nexly to talk through building or fixing your Klaviyo win-back flow.