Table of Contents
- What Win-Back Campaigns Actually Require
- Defining "Lapsed" Before You Build Anything
- Using Predictive Analytics to Prioritize Recovery
- Building the Win-Back Flow in Klaviyo
- Flow Structure
- Conditional Logic Inside the Flow
- Suppression and List Hygiene After the Flow
- Klaviyo + Shopify-Specific Advantages
- Limitations to Know Before You Scale
- Frequently Asked Questions
- How do I prevent a win-back flow from conflicting with other active flows?
- Should I use a Flow or a Campaign for win-back?
- What open and click rates should I expect from a win-back campaign?
- Can I run win-back campaigns for SMS-only subscribers?
What Win-Back Campaigns Actually Require
Re-engaging lapsed customers is not about sending a discount and hoping for the best. It requires knowing *who* has lapsed, *why* they likely stopped buying, and *when* the window to recover them is closing. Klaviyo gives you the data infrastructure and automation tools to answer all three questions — but you need to set it up correctly.
This guide walks through a complete implementation for win-back campaigns in Klaviyo, using its native segmentation engine, Flow builder, and predictive analytics layer.
---
Defining "Lapsed" Before You Build Anything
Your win-back campaign is only as good as your definition of churn. Klaviyo's Segments tool lets you build dynamic, condition-based audiences that update in real time.
A practical lapsed customer definition for most e-commerce stores:
- Soft lapse: Placed an order between 90–180 days ago, no order since
- Hard lapse: Placed an order 180+ days ago, no order since
- Has not clicked or opened an email in the last 60 days (optional, for engagement filtering)
To build this in Klaviyo:
- Go to Segments → Create Segment
- Set condition: "What someone has done" → "Placed Order" → "at least once" → "between 91 and 180 days ago"
- Add condition: "What someone has done" → "Placed Order" → "zero times" → "in the last 90 days"
- Save as "Win-Back: Soft Lapse"
Repeat with adjusted date ranges for your hard lapse segment. These segments feed directly into Flows or one-time campaigns.
---
Using Predictive Analytics to Prioritize Recovery
Not every lapsed customer is worth the same effort. Klaviyo's Predictive Analytics layer — available on most paid plans — calculates Expected Date of Next Order, Predicted Customer Lifetime Value (CLV), and Churn Risk Score for each profile.
Use these fields to tier your win-back audience:
- High predicted CLV + high churn risk → Aggressive win-back with a meaningful offer
- Low predicted CLV + high churn risk → Lighter touch, lower cost offer or no offer at all
- High predicted CLV + moderate churn risk → Reminder-style content before escalating to a discount
Inside your segment builder, filter by "Predicted CLV" is greater than [your threshold] to isolate customers worth a deeper recovery investment. This prevents you from training your entire lapsed list to wait for 20% off.
---
Building the Win-Back Flow in Klaviyo
The Flow Builder (Klaviyo's visual automation canvas) is where your win-back sequence lives. Use a Segment Trigger — not a metric trigger — so the flow activates when someone enters your lapsed segment.
Flow Structure
A reliable 4-step win-back flow:
- Email 1 — Day 0: "We noticed you haven't been around." No offer. Just acknowledgment and a reminder of what they bought. Personalize with {{ person.first_name }} and pull in their last purchased product using Klaviyo's dynamic product blocks connected to Shopify order data.
- Email 2 — Day 5: Introduce a soft incentive. A free shipping offer or early access to new arrivals. Keep the discount modest — you're testing responsiveness before going bigger.
- Email 3 — Day 12: Your strongest offer. 15–20% off is a common threshold. Use a Unique Coupon Code block (Klaviyo generates single-use codes natively) so you can track redemption directly in the platform without manual work.
- SMS — Day 17 *(if SMS consent exists)*: Short, direct message. "Your offer expires in 48 hours." Klaviyo's SMS in Flows lets you add this as a parallel branch using a Conditional Split based on whether the profile has SMS consent.
Conditional Logic Inside the Flow
After Email 1, add a Conditional Split:
- Branch A: Person has clicked or opened → Move to Email 2 with standard timing
- Branch B: No engagement → Add a 3-day wait, then send a subject line variant before continuing
Getting the most out of Klaviyo?
I'll audit your Klaviyo setup and show you where revenue is hiding.
After Email 3, add a second split:
- Converted (placed order) → Exit flow, add to a "Re-engaged Customers" segment for a separate welcome-back series
- Did not convert → Mark the profile with a custom property: win_back_status = "unresponsive"
This property becomes your suppression signal. You do not want to keep burning send reputation on profiles who ignored four touchpoints.
---
Suppression and List Hygiene After the Flow
Once a profile exits the flow as unresponsive, suppress them from future campaign sends. In Klaviyo:
- Build a segment: "win_back_status equals unresponsive"
- Go to any campaign → Don't send to → add that segment as an exclusion
This is a manual step every time you send a campaign. Klaviyo does not have a global suppression list for custom-property-based segments — only for hard bounces, unsubscribes, and manually suppressed profiles. That is a real limitation worth noting.
---
Klaviyo + Shopify-Specific Advantages
Klaviyo's Shopify integration pulls in order history, product data, and real-time browse behavior automatically. For win-back campaigns, this means:
- Viewed Product events let you trigger a secondary re-engagement flow if a lapsed customer returns to browse without buying
- Last Ordered Product data populates dynamically in email templates without custom API calls
- Shopify discount code sync works natively — no third-party app needed to generate and track unique coupon codes
---
Limitations to Know Before You Scale
Klaviyo is strong for this use case, but there are real constraints:
- No built-in churn score threshold alerts — you cannot set up a notification when a high-value customer's churn risk crosses a threshold without building a custom segment and checking it manually
- Flow re-entry rules require attention — by default, a profile can only enter a flow once. If you want lapsed customers to enter the flow again after a second lapse period, you must set re-entry to "every time" or build a separate trigger condition
- Predictive analytics accuracy degrades for stores with fewer than 500 orders — the model needs volume to generate reliable CLV and churn scores
- Global frequency capping is not available natively — if a lapsed customer is also in other active flows, they can receive overlapping messages unless you build manual suppression logic
---
Frequently Asked Questions
How do I prevent a win-back flow from conflicting with other active flows?
Use Flow Filters at the top of each flow to exclude profiles who are actively in other sequences. Set a filter: "Has been in flow [X] in the last 30 days equals false." You will need to apply this to each flow individually — Klaviyo does not have a global send-frequency control that spans flows automatically.
Should I use a Flow or a Campaign for win-back?
Flows handle the ongoing, evergreen case — new customers are always lapsing, and a flow catches them automatically. Campaigns work better for a one-time re-engagement push to an existing list, like clearing out a stale segment before a major sale. Most stores should run both: a flow for continuous win-back and a quarterly campaign for anyone the flow missed.
What open and click rates should I expect from a win-back campaign?
Benchmarks vary by industry, but a well-structured Klaviyo win-back flow typically yields a 10–20% open rate on the first email and a 2–5% conversion rate across the full sequence. If you are seeing below 8% opens on Email 1, the segment definition is too broad and you are likely including profiles with long-term deliverability issues.
Can I run win-back campaigns for SMS-only subscribers?
Yes. Build your lapsed segment with SMS consent as a filter condition and use Klaviyo's SMS flow steps as the primary channel. The same logic applies — trigger on segment entry, use conditional splits based on engagement, and suppress unresponsive profiles using a custom property after the sequence ends.