- Customers and non-customers are in different places, so one email written for both usually fits neither.
- Every flow in my Flow System starts with one question, "Placed order ever?", and sends people down a customer or non-customer path. That's a big part of why it's 60+ emails, not 20.
- In Klaviyo, that check should look at Placed Order "over all time." The default window is the last 30 days, which is the most common way this goes wrong.
- The non-customer path sells the first order. The customer path sells the next one, and usually needs fewer touches to do it.
Why split customer vs non-customer email flows at all?
Think about who lands in your abandoned cart flow on a normal day. Some of them found you through an ad an hour ago. Some have ordered from you six times.
If both get the same email, one of them is getting the wrong pitch. The stranger gets an email that assumes they already like you. Or the loyal customer gets a "10% off your first order" offer, which tells them you have no idea who they are.
There's a second reason. When everything goes to everyone, you can't tell what worked. When I take over accounts from cheap setups, one of the most common problems is that flows have no intention behind them. Splitting by customer status forces you to decide what each email is for, and who it's for.
What changes in each path?
The non-customer path earns trust and the first order. The customer path assumes trust and points to the next order. Here's what that looks like in the Flow System I install.
Every flow carries an offer, and the path decides which one. On the non-customer path, it's the same offer the welcome series gives at signup, in every flow, and never a bigger one. If abandoning a cart got someone a better deal than signing up did, you'd be teaching people to abandon. On the customer path, it's a slightly upgraded version of that offer, an offer built around a bigger order (buy more, or a bundle), or a monthly subscription that saves them money and gives the brand predictable, recurring revenue. Customers who order in large quantities are usually left out of these automations altogether.
Welcome Series: 6 emails per path over 7 days
Both paths send on days 0, 1, 2, 4, 6 and 7. The offer expires on day 7, and anyone who buys exits.
| Day | Non-customer path | Customer path |
|---|---|---|
| 0 | Welcome, plus the offer | Welcome back, plus a loyalty offer |
| 1 | The brand and the category | What customers come back for |
| 2 | Guide to the best first purchase | Products they haven't tried |
| 4 | Trust and social proof | Real-life use and reasons to repeat |
| 6 | Objections and use cases | Restock, bundle or subscribe |
| 7 | Final reminder, offer expires | Final reminder, offer expires |
Email #1 carries most of the money. Across 4 consumable brands, welcome email #1 earned about $4.50 per person and emails #2 to #5 about $0.10 each, roughly 30x. That's why the offer goes in email #1, and the rest of the week builds trust before it expires.
Abandoned Checkout: 5 emails per path
This is the highest-intent recovery flow. Both paths send the first email 35 minutes after someone leaves checkout, while it's still fresh.
- Non-customer (8 days): 35 minutes, complete your order. Day 2, build desire. Day 5, confidence and social proof. Day 7, lifestyle benefits. Day 8, final reminder.
- Customer (7 days): 35 minutes, complete your order. Day 1, restock reminder. Day 4, use cases. Day 6, urgency to complete. Day 7, final reminder.
The customer path is deliberately faster. People who've bought before need fewer touches. In both checkout and cart, email 1 has no offer: it comes in through the sequence, the final reminder carries it, and it expires with the last email.
Abandoned Cart: 5 emails per path, about 8 days
- Non-customer: cart reminder, then wait 2 days to rebuild desire and confidence, 3 days for social proof, 2 days for lifestyle reasons to buy, and 1 day for a final reminder.
- Customer: cart reminder, then wait 1 day for a restock or next-order angle, 3 days for use cases and routines, 2 days for urgency, and 1 day for a final reminder.
The waits tighten toward the end to build urgency, and the flow exits when they check out or buy. Don't cut it short: in my pooled data, cart email #5 still earned about $0.25 per person, the same as email #3.
Browse, Collection and Site Abandonment: 3 emails per path over 4 days
These are the lower-intent flows. Browse sends its first email about an hour after someone views a product. Collection and site send theirs 1 to 2 hours in. Then day 2 and day 4.
- Non-customers get help choosing and a reason to trust you: back to the product they viewed, help picking from the collection, or an intro to the brand, then proof and use cases.
- Customers get pointed at the next order: restock, cross-sell, bundles, or something they haven't tried yet.
Both paths carry an offer here too, the welcome offer for non-customers and the customer offer for customers. There's one extra check in these three. Anyone who ordered in the last 30 days is routed out, so a recent buyer only gets the most relevant sequence instead of a "still thinking about it?" email.
Post Purchase Thank You: split by order count
Everyone here just bought, so the split is how many times. It runs within 30 days and re-enters on every order.
- 1st order, 6 emails: welcome, brand story, mission and benefits, how to use the product, support and community, a soft nudge to buy again.
- 2nd order, 5 emails: celebrate the return, routine building, reconnect with the mission, product engagement, a soft nudge.
- 3rd order, 4 emails: loyalty milestone, habit reinforcement, a review invitation, a long-term restock nudge.
- 4th order and up, 3 emails: loyal-customer recognition, an invitation to tell others, a long-term restock nudge.
The soft nudge at the end of each branch is where the customer offer goes: upgraded, buy-more or subscription. Fewer emails and longer waits as loyalty grows, and the content shifts from onboarding toward community. The review invitation goes to everyone who reaches a third order. It's based on order count, not on how happy anyone seems: we assume repeat buyers are happy, but we don't actually know, so nobody is filtered by sentiment or survey answers. More in the post-purchase email flow guide.
Customer Winback: customers only
If someone never bought, there's nothing to win back. Winback starts from a Placed Order, waits 45 days, then sends 5 emails between day 45 and day 60, with the offer at email 4. Two gates come first: anyone who ordered again exits, and only engaged openers (non-Apple open tracking) get in, so you're not emailing dormant contacts. In my pooled data, winback email #3 earned about 2x email #1. Non-customers who go quiet belong in a sunset flow instead.
How do you split customers and non-customers in Klaviyo?
Klaviyo calls this a split. If your account is older, you may still see it as a conditional split. Klaviyo's current version, the multi-branch split, combines what used to be the conditional split and the trigger split into one action, and existing conditional splits keep working.
The question at the top of every flow is "Placed order ever?" No goes down the non-customer path. Yes goes down the customer path. Here's how I'd set that up:
- In the flow builder, drag Split from the Logic section of the sidebar onto the flow, right after the trigger and before the first email.
- Select the split, then Add path criteria on the first path.
- Choose "What someone has or hasn't done," pick Placed Order, and set it to "at least once" over all time.
- Save. Everyone who doesn't match goes down the "Everyone else" path. That's your non-customer path.
- Build the emails for each path separately. Don't copy one path into the other and change two words.
Step 3 is where people slip. Klaviyo's own troubleshooting notes say to check the condition is set to "over all time" when you mean any past activity, not the default "in the last 30 days." Leave it on 30 days and a customer who ordered two months ago gets treated like a stranger.
For browse, collection and site abandonment, the 30-day window is useful on purpose. Klaviyo checks paths in order, so a first path for "Placed Order at least once in the last 30 days" with no emails on it takes recent buyers out before the customer check runs.
The post-purchase version
In a flow triggered by Placed Order, the order that started the flow counts. So "has placed order at least once" is true for everyone. Split on order count instead. Klaviyo's own example uses "has Placed Order exactly 1 time over all time" for first-time buyers and "2 or more times" for repeat buyers. For my four branches, that becomes exactly 1, exactly 2, exactly 3, and 4 or more.
Two checks before you turn it on
- Put a time delay directly after the split in each path. That's Klaviyo's guidance when timing differs by path, and in my flows it always does.
- Every path needs criteria. Klaviyo notes that an unconfigured path is skipped when profiles reach the split.
What keeps people from getting the wrong emails?
The split checks status at the moment someone reaches it. After that, they stay on their path. So a few rules do the rest of the work.
- Exit on purchase. Someone signs up, gets welcome email #1, buys, and shouldn't then get "make your first order" on day 2. Every flow in my system exits on purchase (cart exits on checkout or purchase), and post-purchase takes over. In Klaviyo, a flow filter is the usual way to do that. Klaviyo puts the difference plainly: splits keep everyone in the flow and send them down different paths, while filters remove the people who don't match.
- A 35-day re-entry window. The abandonment flows (site, collection, browse, cart, checkout) share it: nobody re-enters the same flow within 35 days, so a regular browser doesn't get the same three emails every week.
- Recent buyers skip the low-intent flows. Anyone who ordered in the last 30 days is routed out of site, collection and browse abandonment.
Is splitting every flow worth the extra work?
It roughly doubles the number of emails you write. That's why my Flow System is 60+ emails across 8 flows, and why the split is the part most setups skip.
I'll be straight about the data. I don't have a clean test of split versus unsplit flows on the same brand. What I do have points the same way: at a skincare brand, after we rebuilt its flows, including welcome, browse abandonment, post-purchase, a reorder reminder and winback, flows went from 60% to 83% of email revenue. That's one brand, and I won't promise you the same thing. It's what happens when every flow has a clear job.
FAQ
What's the difference between a customer and non-customer flow?
It's one flow with two paths. Customers have placed at least one order, so their emails assume trust and point to the next purchase. Non-customers haven't bought yet, so their emails build trust and ask for the first order.
Which Klaviyo flows should be split by customer status?
I segment all 8 core flows by customer history. Welcome, checkout, cart, browse, collection and site abandonment split on "Placed order ever?" Post Purchase Thank You splits by order count instead, and Customer Winback only ever reaches customers.
Should the customer path have fewer emails?
Sometimes. In my abandoned checkout flow both paths have 5 emails, but the customer path runs 7 days instead of 8, and the cart customer path opens with a 1-day wait instead of 2. People who've bought before need fewer touches to come back.
What condition should I use to split customers in Klaviyo?
Placed Order at least once, over all time. In a post-purchase flow, split on exact order counts instead, because the triggering order counts.
Do I need different discounts in each path?
Yes. Every flow I install carries an offer. Non-customers get the same offer the welcome series gives at signup, in every flow, never a bigger one. Customers get a slightly upgraded version, a buy-more or bundle offer, or a monthly subscription offer.