Marketing

90-Day Lapsed-Buyer Winback in Klaviyo: A 4-Segment, 6-Email Flow With Claude Writing the Copy

90-Day Lapsed-Buyer Winback in Klaviyo: A 4-Segment, 6-Email Flow With Claude Writing the Copy
Contents

The first 30 days of the new winback flow were quiet. Not failing-quiet — I was watching Klaviyo's flow analytics like a hawk, and the opens were decent, the clicks were fine. But on day 38, an email went out to the high-LTV (lifetime value) lapsed segment — a "here's what you missed" note with a small product recommendation engine (the engine picks items based on the buyer's past purchase, not site-wide bestsellers) pulling from each customer's actual order history — and the attribution report flipped from "background revenue" to "$48,200 in 90 days, 4.1× the prior generic 3-email flow."

That's the reason I'm writing this down. The skill I'm about to teach is not "let AI write your winback emails." The skill is the segmentation matrix that makes the AI's copy land in the first place.

This is the flow I built for an ecom (ecommerce, 电商) client — skincare, roughly $3M ARR (annual recurring revenue, 年度经常性收入), Shopify on Klaviyo. No theory. Just the segment conditions, the cadence, the prompt.

The 4 segments (with actual Klaviyo conditions)

Most "winback" articles skip past this part and go straight to "Email 1: We miss you." That's why most winback flows underperform. The segmentation IS the work. Here are the four segments, defined in conditions a Klaviyo segment builder will accept:

Segment 1 — High-LTV Lapsed (the priority list).

  • What someone has done > Placed Order > at least 2 times > in the last 365 days
  • AND Placed Order = 0 times in the last 60 days
  • AND Total Spent > $150 (your top 30% threshold; mine was $150)
  • AND Subscribed to email = true

This is your "we will lose real money if they don't come back" group. Approximately 8-12% of any healthy buyer file.

Segment 2 — One-time buyers who didn't return.

  • Placed Order = exactly 1 time > over all time
  • AND that order was placed between 60 and 180 days ago
  • AND Placed Order = 0 times since starting this flow
  • AND Email Consent (or "Subscribed to email" depending on your region) = true

The first-order-to-repeat gap is the highest-leverage moment in ecommerce. A winback that catches them in months 2-6 is what converts one-and-done into a two-purchase customer, which doubles their LTV (Customer Lifetime Value, 客户终身价值).

Segment 3 — Discount-driven buyers.

  • Placed Order > at least 1 time > over all time
  • AND Placed Order used a discount code in the last 365 days
  • AND Placed Order = 0 times in the last 60 days
  • AND Total Spent > $80

They converted for an incentive and will re-convert for the same reason — but they need a different kind of incentive than Segment 1. A 10% coupon to a $400 LTV customer reads as "I don't value you." A 10% coupon to a discount-driven buyer reads as "I remember what got you in the door." More on the copy difference below.

Segment 4 — Browsed but did not add to cart.

  • Placed Order > at least 1 time > over all time
  • AND Placed Order = 0 times in the last 60 days
  • AND Viewed Product > at least 1 time in the last 30 days
  • AND Added to Cart = 0 times in the last 30 days

They're showing intent without converting. The winback here isn't "we miss you" — it's "you were looking at X, here's why it might be the one."

The flow trigger is "Segment-triggered" on Segment 1 (the priority list), with the other three segments as Conditional Splits inside the flow. Klaviyo evaluates the conditional once at entry; subsequent paths inherit from there.

The 6-email cadence

Each segment gets the same 6-email skeleton. The copy changes. The cadence is fixed across the four paths:

Email Day Subject line pattern Main angle
1 1 "Still thinking about [product category]?" No discount. New arrivals. Re-introduction.
2 7 "Three things we'd tell a friend" Brand story / value reminder. No discount.
3 21 "[First name], your 15% is here" First discount. Expires in 48 hours.
4 45 "What [customer name] bought next" Personalized cross-sell (cross-sell = recommending complementary products) using past order data. No additional discount.
5 70 "Last call — your 20% expires tonight" Discount escalation. Stack on Email 3.
6 90 "Should we close your account?" Sunset prompt (an email asking the recipient to confirm they want to stay subscribed). No discount. Hard ask: stay or leave.

Two non-obvious calls in that cadence. First, Email 4 is a cross-sell with no discount — this is the email that does the heavy lifting for Segment 1, because high-LTV buyers don't want another coupon, they want a reason to come back that's about the product. Second, Email 6 is the sunset trigger. Winback isn't just "make them buy" — it's "find out who is actually dead on the list so your deliverability (the ability of your emails to land in the inbox instead of spam) doesn't tank." The user is given a real choice: click to stay, do nothing, and get moved to the suppression list (a list of contacts who will no longer be emailed).

The Claude prompt (the part that actually writes 24 emails)

The mistake most teams make with AI email copy is the prompt. They write: "Write a winback email for our skincare brand." Claude returns generic mush. The output is generic because the prompt is generic.

The prompt that works is structured as a 5-block template. The four segments × six emails = 24 invocations, but the prompt is the same — only the input data changes.

ROLE
You are the email copywriter for [BRAND], a [CATEGORY] brand. You write
lifecycle emails — not marketing blasts. Your audience is a person who
already bought from us once, has not come back, and is deciding whether
to keep us in their life.

BRAND VOICE
[Paste 3-5 sentences from past emails that exemplify the tone. This
matters more than any adjective description. Claude pattern-matches
against examples better than it interprets "warm" or "friendly."]

SEGMENT
This email is for: [Segment 1 / 2 / 3 / 4]
The reader's relationship with us: [one-line segment description]

EMAIL POSITION
This is email [#] of 6 in a 90-day winback sequence.
Day [#] of the flow. Days since last purchase: ~[#].

GOAL
Primary: [click-through / conversion / engagement / sunset-confirmation]
Forbidden moves: [no discount on this email / aggressive urgency / etc.]

OUTPUT FORMAT
Subject line (40-50 chars, sentence case)
Preview text (40-90 chars)
Body (120-180 words, 3 short paragraphs max)
Single CTA (button text + destination)

RULES
- No "we miss you" unless the segment is Segment 2 specifically.
- No exclamation marks in subject lines.
- No "in today's fast-paced world" or "look no further" — ever.
- If recommending a product, name a specific SKU (stock keeping unit, i.e. a unique product identifier) the customer actually browsed or bought, not "our bestseller."

Three things to notice. First, the role is specific — "lifecycle copywriter," not "marketing copywriter." The constraint changes the output. Second, the brand voice is examples, not adjectives — Claude pattern-matches against samples far better than it interprets "warm" or "friendly." Third, the position block (which email of which sequence) tells Claude where in the arc the reader is, so Email 1 sounds different from Email 6 because it should. The "no exclamation marks" rule alone, in the RULES block, produces noticeably better output.

Why the copy has to differ across segments

This is the part the article has been building toward. The same Email 3 ("your 15% is here") cannot be sent to Segment 1 and Segment 3.

A Segment 1 buyer — high-LTV, multi-order — sees a 15% coupon and reads it as: "They want me back because I'm worth money to them, but they're also devaluing the relationship by discounting it." The email lands as a transaction, not a reconnection. Conversion is fine; repeat rate is bad.

A Segment 3 buyer — discount-driven — sees the same coupon and reads it as: "They remembered what got me in the door." The email lands as a reactivation. Conversion is higher, and the buyer feels understood.

So the prompt's "Forbidden moves" block changes per segment. Segment 1's Email 3 becomes: "Your 15% is here — and here's a product we'd never put on sale." Segment 3's Email 3 is the straight "Here's 15% off, expires in 48 hours." Same matrix, different cell. The 4.1× lift comes from this difference, not from Claude being a good copywriter.

What I'd build first if I were starting over

The 6-email skeleton is the wrong place to start. Start with the four segments. Get the conditions right, get the math right (lapsed-buyer revenue = segment size × historical reactivation rate × AOV (Average Order Value, 平均客单价)), and confirm the segments are real — not three profiles and a wish. Once the segments are clean, the cadence is mechanical and the prompt is a template.

The 4.1× number isn't from Claude being smart. It's from sending the right message to the right person for the first time. The AI is the easy part.