โ˜…free guideโ˜…

The Win-Back Email to Send Before You Offer a Discount Klaviyo Steps + Templates

A win-back email is the one you send to a customer who bought from you and then went quiet. Most stores open with "we miss you, here's 20% off", and it goes to everyone, including the customer whose cupboard is still full and the one who didn't love the product. A code fixes neither of those.

So I never put the discount in the first win-back email. It can come later. First I want to know WHY they stopped, and one question with three buttons will tell you. This guide is for Shopify store owners on Klaviyo: the email to copy, the set-up, and what to send after each answer. ๐Ÿ‘€

Where the idea comes from

Matt Bertulli, the CEO of Pela and Lomi, wrote about this in the Operators newsletter. He calls the standard win-back email "pretty lazy", and lists reasons a customer of his sleep supplement brand might leave: they hated the flavor, they had too much product, their favorite was out of stock, the dosage was off. A discount doesn't touch any of those.

He also says it's something they've "only started to play with". He's doing it for canceled subscriptions, and using it for one-off buyers who've gone quiet is my extension of his idea.

It's also the opposite of what most bigger brands say they'd do. In DTC Newsletter's Beyond the Discount survey of brands doing $1M+ a year, only 6.1% said they don't discount to returning or lapsed customers, and 34.1% said they'd go to 21 to 30% off to win one back.

Who to send it to, and when

Send it to people who've bought before and are now a little overdue. Klaviyo's own advice is to wait a little longer than your average buying cycle, so start from how long your product lasts.

Your product lasts about Example window (a starting point, not a rule)
30 days no order in 45 days
60 days no order in 80 days
90 days no order in 120 days
Not a consumable (bags, homewares) look at how long your repeat customers usually take between orders

In Klaviyo, go to Lists & Segments > Create segment and build it with two conditions:

  • What someone has done (or not done) > Placed Order > at least once > over all time
  • AND What someone has done (or not done) > Placed Order > zero times > in the last 90 days (swap in your window)

Then build a flow that starts when someone is added to that segment, and add the profile filter Placed Order zero times since starting this flow so anyone who buys drops out.

The first email Copy it, then make it sound like you

It's short and there's no offer in it. Every template in this guide is written plain on purpose, so please put your own brand voice spin on it before you send. If your brand is cheeky, make it cheeky!

Subject: Quick question, [First name] Preview: One click (promise!)

Hi [First name],

It's [Your name] from [Brand]. It's been a while since your last order, and I'd rather ask you than guess.

What stopped you ordering again?

[ I've still got plenty ] [ It wasn't quite right for me ] [ The price ]

Tap whichever fits. It tells me what to send you next (and what to leave out of your inbox).

Thank you! [Your name]

How to choose your three answer buttons

Those three buttons are examples. Yours should come from what customers have already told you, so spend 20 minutes with:

  • Your reviews, especially the 1 to 3 star ones
  • Your returns notes, wherever customers give a reason for sending something back
  • Customer emails and DMs from the last six months (search "cancel", "refund", "too much", "expensive", "didn't")

Tally what comes up, then keep the three most common reasons that would each need a DIFFERENT follow-up. If two reasons would get the same email from you, merge them. Write the buttons in the words your customers used, and stop at three.

How to set it up in Klaviyo, step by step

1. Make a thank-you page first. In Shopify, go to Online Store > Pages > Add page. Something like: "Thank you! That's SO helpful. We read every answer." No code on this page, or everyone who clicks anything gets the discount.

2. Add three buttons to the email. In Klaviyo's email editor, drag in a Button block for each answer. In each button's URL field, paste the matching line below, with your own thank-you page link in place of mine:

{% update_property_link 'winback_reason' 'still_have' 'https://yourstore.com/pages/thank-you' %}
{% update_property_link 'winback_reason' 'not_right' 'https://yourstore.com/pages/thank-you' %}
{% update_property_link 'winback_reason' 'price' 'https://yourstore.com/pages/thank-you' %}

When someone clicks, Klaviyo saves their answer on their profile under winback_reason and sends them to your thank-you page. A few rules from Klaviyo's help page, because this is where it breaks:

  • Use straight quotes ('), never curly ones. If you paste from a doc that curls them, retype the quotes in Klaviyo.
  • The link has to be a full, standard URL starting with https://
  • Keep the property name and values plain: letters, numbers and underscores, no emoji or accents.
  • Don't add UTM tracking to these links. Klaviyo doesn't support it on them.
  • It works in email only, not SMS.
  • A new click overwrites the old answer.

3. Test it with a real send. Klaviyo's preview sends you to a placeholder page and saves nothing, so it will look broken when it isn't. Save the email as a template, send it to yourself as an actual email, click a button, then find your own profile and look under Custom properties for winback_reason.

4. Add the split. After the email, add a time delay (example: 3 days), then drag in a split. Set the condition to Properties about someone > winback_reason > equals > still_have. Add a path for not_right and one for price. Whoever didn't click lands in Everyone else.

What to send after each answer

Same as before: give these your own brand voice before they go out.

If they've still got plenty: a reminder later, with no offer

Wait until they'd be running low (example: half your product's life again), then send:

Subject: Running low yet?

Hi [First name],

A little while back you told us you still had plenty of [Product], so we've left you alone since.

If you're getting near the end, this is the quickest way to restock: [link]

And if you've still got loads, here are two ways our customers use it that you might not have tried: [tip 1], [tip 2].

[Your name]

If it wasn't quite right: help them choose, or offer a swap

Send straight after the split:

Subject: Can we find you a better fit?

Hi [First name],

Thank you for telling us [Product] wasn't quite right. I'd love to know what was off, so hit reply and tell me (one line is plenty!).

In the meantime, customers who felt the same often get on better with [Alternative product], because [one real difference]. You can see it here: [link]

If you'd rather swap, just reply to this email and we'll sort it out. [Add your own swap or returns terms here]

[Your name]

If it's the price: ONE offer, with an end date

Only this group gets it, and it arrives after the question, never in place of it. Run the margin check first (made-up numbers, use your own):

Example on a $48 product that costs $22 to make, ship and process You keep
Full price $26.00
Free shipping (costs you $7) $19.00
A gift that costs you $5 $21.00
15% off $18.80
20% off $16.40

Pick the offer that brings them back and still leaves you a profit you're happy with. I'd look at free shipping, a gift or a bundle before a percentage. ๐Ÿ’ธ

Subject: A little something for your next order

Hi [First name],

You told us price was the thing holding you back, and I really appreciate you saying so.

So here's [your offer] on your next order. It's yours until [date], and it's the only one we'll send.

[Button: Use my offer]

[Your name]

Give the code an end date and a limit of one use per customer in Shopify before this goes live.

What happens to the people who don't click

Plenty of people won't click. They carry on down the Everyone else path into whatever win-back emails you already have: your bestsellers, what's new, your reviews. If there's an offer in that sequence, keep it for the LAST email. I wouldn't re-ask the question more than once.

So there's no need to rebuild your whole win-back flow (I wouldn't in the weeks before Black Friday anyway). Swap the first email, add the split, and leave the rest alone until you've seen a month of answers.

How to read the answers each month

Once a month, go to Lists & Segments, create a segment for each answer (Properties about someone > winback_reason > equals > still_have) and write down the counts.

Month Emails sent Clicked Still have plenty Wasn't right Price
Example 200 30 16 8 6

In that example, more than half the people who answered still have product. That says the email went out too early (or the pack is bigger than people get through), so the fix is timing. A discount would have been wasted on them.

If most answers are... It's telling you
Still have plenty Your window is too short, or people need more ways to use it. Push the window out
Wasn't right Look at the product page, the sizing or shade help, and your how-to-use content. Read the replies!
Price Check your offer and your value story before your price. A bundle or a free shipping threshold might do the job

Treat the numbers as a guide. Some email security tools click links automatically, so the odd answer won't be a real person.

Your next move

If you'd love help setting this up for YOUR store, with tailored strategies and support, that's what my Growth Lab is for. Jump on a call to learn more.