Klaviyo

Win-Back Campaigns with Klaviyo

How to win back users using Klaviyo. Step-by-step implementation guide with real examples.

RD
Ronald Davenport
March 20, 2026
Table of Contents

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:

  1. Go to SegmentsCreate Segment
  2. Set condition: "What someone has done" → "Placed Order" → "at least once" → "between 91 and 180 days ago"
  3. Add condition: "What someone has done" → "Placed Order" → "zero times" → "in the last 90 days"
  4. 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:

  1. 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.
  1. 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.
  1. 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.
  1. 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:

  1. Build a segment: "win_back_status equals unresponsive"
  2. 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.

Related resources

Get the Lifecycle Playbook

One framework per week. No fluff. Unsubscribe anytime.