Library / DTC brands / Win-back system

beauty brandsUnited States

Win-back systemLapsed buyers get a coupon and a shrug

Beauty retention is a cadence problem more than a creative problem.

00

The short version

Intern through CEO

Read it once, then stop negotiating with it. Win-back system for beauty brands is a wiring job: define lapse → finite sequence → margin → stop. Objects, then edges, then one test conversion. You do not need a new tool to start. You need the first writer to land on one contact this week.

  1. 01

    Beauty brands do not have a Win-back system problem because they lack Klaviyo. They have it because lapsed buyers get a coupon and a shrug.

  2. 02

    Wire these objects first: Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers.

  3. 03

    Then these edges, in order: Last Placed Order older than N days → enter win-back flow; not a random campaign · Offer step → margin-safe; not the deepest coupon on email 1 · Stop rule → purchased or N emails; then sunset from this flow · Welcome/coupon acquire → excludes this lapsed buyer so they are not 'new'

  4. 04

    Done looks like a test you can repeat: Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'.

  5. 05

    Start here: Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

In even plainer words

Beauty brands already have Klaviyo. The leak is not a missing feature. Lapsed buyers get a coupon and a shrug. Software did not cause it. A missing write-in did: the person exists in one tool and not in the pipeline.

Here is how you actually wire it. Name the objects: Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers. Then connect these edges, in order: Last Placed Order older than N days → enter win-back flow; not a random campaign · Offer step → margin-safe; not the deepest coupon on email 1 · Stop rule → purchased or N emails; then sunset from this flow · Welcome/coupon acquire → excludes this lapsed buyer so they are not 'new'. If you skip an edge, the next one is decoration. If you add a Klaviyo feature first, you usually skip an edge without noticing.

Prove it with a test, not a screenshot. Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'. How you know it worked on the board: Lapse is in days (from last order). If that number is a vibe, do not add traffic.

What to do this week, and only this week: Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job. An intern can run the objects page and one test conversion. A CEO should protect that from a second priority.

Who

Same system. Three jobs.

Read your row

Intern

What you actually do

Day one: define lapse in days for your category. Write the stop. Ban using the welcome flow as win-back. Check margin on the intended offer. Do not email the whole list 'we miss you'.

Operator

What you protect

You already feel lapsed buyers get a coupon and a shrug. Beauty retention is a cadence problem more than a creative problem. Protect one sequence for 90 days. The four moves are define lapse → finite sequence → margin → stop. The edges are Last Placed Order older than N days → enter win-back flow; not a random campaign then Offer step → margin-safe; not the deepest coupon on email 1. Revenue per recipient on flows is the number. Open rate is a meeting, not a system.

CEO

What you refuse to fund

This is a money leak, not a preference about tools. Lapsed buyers get 20% off forever. Until lapse is a number you will defend, buying more traffic or more seats makes the leak more expensive. Refuse a second database: Last Placed Order older than N days → enter win-back flow; not a random campaign.

Example

A Tuesday that looks familiar

Before / after

Before

Tuesday. Someone among beauty brands. Beauty retention is a cadence problem more than a creative problem. Klaviyo is open. A colleague asks where a person sits. The answer is a screenshot, a Slack thread, or “I think they’re interested.” The writer (form, calendar, shop, or phone) and the pipeline are two databases.

After

Same Tuesday, after write-in exists. Revenue per recipient on flows is the number. Open rate is a meeting, not a system. Last Placed Order older than N days → enter win-back flow; not a random campaign The next move is written. That is the difference between a login and a system.

Worked example

Keep it this plain. A person in beauty brands already paid for Klaviyo. Beauty retention is a cadence problem more than a creative problem. They add a page, a form, a calendar. None of it writes into a spec. By Friday the calendar has ghosts and the pipeline still looks like the snapshot.

The fix is not a better template. Lapse is a number of days. Prove write-in: Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'. This week is one move: Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job. If that feels too small, that is the point. Operators fail by starting at move four.

01

Leak versus system

Klaviyo

The leak

Lapsed buyers get 20% off forever. There is no definition of lapse. Welcome and win-back share copy. People who asked to be left alone still get 'we miss you'.

The system

Lapse is a number of days. The sequence is finite. Offers match margin. A stop rule exists. Win-back is not the welcome flow with a different subject line.

How it actually works

Define lapse from last order, not from last open. Opens lie. Then write three to five messages: recognition, a useful reason to return, one offer if margin allows, a last honest ask, silence. Forever discount is not a system. It is a habit.

Hold out a group if you can. Otherwise you will never know if the coupon moved revenue or if they were coming back anyway. After the stop, they are sunset — not parked in a 'maybe' folder.

Revenue per recipient on flows is the number. Open rate is a meeting, not a system.

Lapsed buyers get a coupon and a shrug when lapse is not a defined object. Lapse is days since last order (or last engagement, if you are honest about it — but order is cleaner). Offers match margin. A stop rule exists. Win-back is not the welcome flow — welcome assumes a stranger. These people already know you. Treating them as new is how you train them to wait for a discount to return.

Wire the metric and the exclusion. Customers who purchased yesterday must not be in win-back. People in win-back should be out of acquire campaigns that shout 'first order 20%'. Flow vs campaign: a seasonal campaign can mention returning; it should still exclude those in the flow if you would double-send. RPR on win-back is the score, not open rate.

Two databases: a 'VIP' segment that still includes people who have not bought in two years, and a win-back that includes people who bought last week because the filter is wrong. The intern checks filters with three profiles: recent, lapsed, never-bought. Never-bought is not win-back. That is welcome or reactivation of a list, a different job.

Wire

How to connect it

Objects, then edges, then a test

Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers.

  1. 01

    Last Placed Order older than N days → enter win-back flow; not a random campaign

  2. 02

    Offer step → margin-safe; not the deepest coupon on email 1

  3. 03

    Stop rule → purchased or N emails; then sunset from this flow

  4. 04

    Welcome/coupon acquire → excludes this lapsed buyer so they are not 'new'

Prove write-in

Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'.

Day one: define lapse in days for your category. Write the stop. Ban using the welcome flow as win-back. Check margin on the intended offer. Do not email the whole list 'we miss you'.

02

The spine

Scan first
01

Define lapse

Days since last order. Written. Not a vibe.

02

Finite sequence

3–5 messages. Then stop. No forever 20%.

03

Margin

Discount last, if at all. Useful reason first.

04

Stop

Suppression after the last ask. Respect the inbox.

Steps

Do this in order

Why, then done when
  1. 01

    Write the leak in one sentence

    On one line, for beauty brands: Lapsed buyers get a coupon and a shrug. Add who gets hurt (calendar, cash, inbox, or reputation). If two people write different sentences, you do not agree yet — stop and agree.

    Why: Teams skip this and jump into settings. Then every person is fixing a different problem with the same login.

    Done when: One sentence. Shared. No adjectives required.

  2. 02

    Name the objects

    Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers.

    Why: If objects aren't named, software invents a second database.

    Done when: A stranger can list them.

  3. 03

    Define lapse

    Days since last order. Written. Not a vibe. Then wire: Last Placed Order older than N days → enter win-back flow; not a random campaign

    Why: Beauty brands cannot skip this edge. Lapsed buyers get a coupon and a shrug when lapse is not a defined object. If it is not true, Klaviyo is already a second database.

    Done when: Last Placed Order older than N days → enter win-back flow; not a random campaign is true on a test.

  4. 04

    Finite sequence

    3–5 messages. Then stop. No forever 20%. Then wire: Offer step → margin-safe; not the deepest coupon on email 1

    Why: Beauty brands skip this and the leak returns as a private language. Wire the metric and the exclusion. Spec tags, fields, and states have to be the same objects the next workflow will read.

    Done when: Offer step → margin-safe; not the deepest coupon on email 1 is true on a test.

  5. 05

    Margin

    Discount last, if at all. Useful reason first. Then wire: Stop rule → purchased or N emails; then sunset from this flow

    Why: Beauty brands feel this as Lapsed buyers get a coupon and a shrug. Two databases: a 'VIP' segment that still includes people who have not bought in two years, and a win-back that includes people who bought last week because the filter is wrong.

    Done when: Stop rule → purchased or N emails; then sunset from this flow is true on a test.

  6. 06

    Prove write-in

    Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'.

    Why: Calendar full + pipeline empty means two databases.

    Done when: One test conversion, one contact, right stage/state.

  7. 07

    Put a number on the wall

    Every Monday, look at Lapse (From last order), then length (A stop rule you will keep). Write one action or write “hold.” A dashboard with no action is theatre.

    Why: What gets reviewed gets run. What only lives in a tool gets ignored the week someone is busy.

    Done when: Three numbers. One owner. Fifteen minutes. Actions attach.

  8. 08

    Finish one move this week

    Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

    Why: Operators fail by starting at move four. Interns fail by making a 40-item checklist. CEOs fail by adding a second priority. One proven write-in beats an elegant plan.

    Done when: The move is true, or you can name the blocker in one sentence.

Walkthrough

The four moves, expanded

Same spine. More words.
01

Name the objects

Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers.

If objects aren't named, software invents a second database.

Beauty retention is a cadence problem more than a creative problem.

02

Define lapse

Days since last order. Written. Not a vibe. Then wire: Last Placed Order older than N days → enter win-back flow; not a random campaign

Beauty brands cannot skip this edge. Lapsed buyers get a coupon and a shrug when lapse is not a defined object. If it is not true, Klaviyo is already a second database.

On Klaviyo, this means the data model matches how beauty brands actually work — not the snapshot demo. Edge: Offer step → margin-safe; not the deepest coupon on email 1

03

Finite sequence

3–5 messages. Then stop. No forever 20%. Then wire: Offer step → margin-safe; not the deepest coupon on email 1

Beauty brands skip this and the leak returns as a private language. Wire the metric and the exclusion. Spec tags, fields, and states have to be the same objects the next workflow will read.

Revenue per recipient on flows is the number. Open rate is a meeting, not a system.

04

Margin

Discount last, if at all. Useful reason first. Then wire: Stop rule → purchased or N emails; then sunset from this flow

Beauty brands feel this as Lapsed buyers get a coupon and a shrug. Two databases: a 'VIP' segment that still includes people who have not bought in two years, and a win-back that includes people who bought last week because the filter is wrong.

score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

Why

Questions people actually ask

Pushback is normal

Why not just buy another Klaviyo feature?

Because the login already exists. Lapsed buyers get 20% off forever. There is no definition of lapse. A new feature on a missing spec is a second database. Finish this edge first: Last Placed Order older than N days → enter win-back flow; not a random campaign.

Why start with objects instead of a workflow?

Day one: define lapse in days for your category. Write the stop. Ban using the welcome flow as win-back. Check margin on the intended offer. Do not email the whole list 'we miss you'. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.

What does “wired” actually mean?

A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.

Why write it down if the team already knows?

If it is only in someone's head, a new hire needs a story, reporting cannot be defended, and automations fire on folklore. Writing is how two people mean the same object on Monday.

Why does this keep coming back after we 'set it up'?

Because setup was a project, not a review. Holdout (Or do not pretend the coupon proved itself) is how you stop the leak returning dressed as a new feature. If Placed Order is dirty, every metric is theatre. If browse collides with cart, you trained people to ignore you. Discount-first abandon trains the wrong buyer — especially when consideration is long. Score the system. Then ship the two worst gaps. Not another brand story.

Why should beauty brands care about this versus more leads?

More leads into a leak is a more expensive leak. Revenue per recipient on flows is the number. Open rate is a meeting, not a system. Watch lapse before you buy traffic. If that number is folklore, acquisition is a vanity spend.

What if we do not have time?

Then you only have time for the objects page and one test conversion. Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job. That is the intern version of strategy. Protect it from a second priority for seven days.

03

Skip this / do this

Same four moves

Skip this

Leaving objects unnamed because Klaviyo is “set up”.

Do this

Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers.

Skip this

Building a workflow or flow before a writer lands on one contact.

Do this

Last Placed Order older than N days → enter win-back flow; not a random campaign

Skip this

Calling it done because a screenshot looks busy.

Do this

Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'.

Skip this

Leaving “Stop” to chance.

Do this

Suppression after the last ask. Respect the inbox.

Misses

How this usually goes wrong

Then the fix

The usual miss

Calling Klaviyo “set up” because someone logged in and imported a snapshot.

Do this instead

Days since last order. Written. Not a vibe. Then prove write-in: Take a profile with an old order (or backdate).

The usual miss

Building the workflow or flow before the writer (form, calendar, shop event) lands on one contact.

Do this instead

Connect Last Placed Order older than N days → enter win-back flow; not a random campaign first. Automations on a missing writer invent a second database.

The usual miss

Adding a page, form, flow, or campaign every time last week hurt.

Do this instead

Name which edge is missing. Fix that edge. Hurt is usually a skipped write-in, not a missing asset.

The usual miss

Reporting that nobody will defend in a meeting — screenshots, vanity opens, 'interested' counts.

Do this instead

Lapse: In days. From last order. If you cannot say it out loud, it is not a scoreboard.

The usual miss

Hiring or retaining an agency to invent the spec while also running the calendar.

Do this instead

Hands on a known sequence are useful. Hands inside a missing spec pick the louder job (the calendar) and the leak stays.

04

What to watch

A scoreboard

Lapse

In days

From last order

Length

Finite

A stop rule you will keep

Holdout

If you can

Or do not pretend the coupon proved itself

This week

score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

US operators · Monday reviews, US-friendly hours. The spine is the same — the clock is not.

01

Lapse is defined in days

02

Offers match margin

03

A stop rule exists

04

Win-back is not the welcome flow

Want the longer lesson, not the page for this niche? A CRM login is not a system

Working notes

DTC Retention Scorecard

Score your Klaviyo and lifecycle system the way an operator would. Request the file. It arrives by email — not a public dump, not a drip of slogans.

Request the notes ↗
Notes

Questions that come up

Klaviyo

Explain this like I have five minutes.

Beauty brands do not have a Win-back system problem because they lack Klaviyo. They have it because lapsed buyers get a coupon and a shrug. Wire these objects first: Lapse definition in days, Klaviyo profile + last-order metric, offer that matches margin, stop rule, exclusion from welcome, segment lapsed buyers. Then these edges, in order: Last Placed Order older than N days → enter win-back flow; not a random campaign · Offer step → margin-safe; not the deepest coupon on email 1 · Stop rule → purchased or N emails; then sunset from this flow · Welcome/coupon acquire → excludes this lapsed buyer so they are not 'new' Done looks like a test you can repeat: Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'. Start here: Score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

Why does this keep failing for beauty brands?

Lapsed buyers get 20% off forever. There is no definition of lapse. Welcome and win-back share copy. People who asked to be left alone still get 'we miss you'. Revenue per recipient on flows is the number. Open rate is a meeting, not a system.

What does a real week look like?

Before: Tuesday. Someone among beauty brands. Beauty retention is a cadence problem more than a creative problem. Klaviyo is open. A colleague asks where a person sits. The answer is a screenshot, a Slack thread, or “I think they’re interested.” The writer (form, calendar, shop, or phone) and the pipeline are two databases. After: Same Tuesday, after write-in exists. Revenue per recipient on flows is the number. Open rate is a meeting, not a system. Last Placed Order older than N days → enter win-back flow; not a random campaign The next move is written. That is the difference between a login and a system.

What should I stop doing?

Leaving objects unnamed because Klaviyo is “set up”. Building a workflow or flow before a writer lands on one contact. Do the four moves instead: define lapse → finite sequence → margin → stop.

What number should beauty brands watch?

Lapse: In days — From last order. Then length (A stop rule you will keep). If those are folklore, do not add another Klaviyo workflow.

What is the first move?

score welcome, cart, post-purchase, win-back. Kill the campaign doing a flow's job.

Why not just buy another Klaviyo feature?

Because the login already exists. Lapsed buyers get 20% off forever. There is no definition of lapse. A new feature on a missing spec is a second database. Finish this edge first: Last Placed Order older than N days → enter win-back flow; not a random campaign.

Why start with objects instead of a workflow?

Day one: define lapse in days for your category. Write the stop. Ban using the welcome flow as win-back. Check margin on the intended offer. Do not email the whole list 'we miss you'. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.

What does “wired” actually mean?

A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Take a profile with an old order (or backdate). Confirm they enter win-back and not welcome. Place a $1 order mid-flow; confirm exit. Confirm the flow stops even if they never buy. Coupon depth is written, not 'see how it goes'. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.

Why write it down if the team already knows?

If it is only in someone's head, a new hire needs a story, reporting cannot be defended, and automations fire on folklore. Writing is how two people mean the same object on Monday.

Continue

Also worth reading

beauty brands
GA4 + GSC

Search Intelligence

GSC and GA4 sit in silos. Nobody sequences the work.

Read ↗
Growth systems

90-day growth sprint

Roadmaps are annual. Execution is weekly panic.

Read ↗
GA4 + GSC

GA4 and Search Console loop

You have access. You do not have a Monday ritual.

Read ↗
Email systems

Email deliverability

You write better emails into a worse inbox.

Read ↗
Shopify + Klaviyo

Klaviyo flows

Campaigns do the work flows should do.

Read ↗
Next

If the leak is expensive, talk.

Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.