The abandoned cart flow I build first
You paid for that visit. They picked the product, typed their email, then stopped.
That is not a lost customer. That is an unfinished checkout with an obstacle sitting in it. Three emails, built in this order, to find the obstacle and clear it.
The trigger decides everything
Get this wrong and the timing below will not save you. Build this in Klaviyo exactly like this.
Three sends, and what each one is for
The hours are measured from the moment checkout was started.
Ask one question. No discount.
Name the three real reasons and let her pick one: the shipping cost surprised her, the payment failed, or a code would not apply. Then the cart link. That is the whole email.
Why one hour: she still remembers the decision. And the replies tell you what is actually broken at your checkout, which is worth more than the recovered order.
The thing she was unsure about. Still no discount.
Pick the one hesitation your product actually gets stuck on. Returns window. Sizing. Delivery date. Answer it plainly, then put one real review of the exact product sitting in her cart underneath it.
Why 22 and not 24: it lands at a different hour of the day than the first email. At 24 you hit the same dead slot twice and never find out if the slot was the problem.
Split the audience before this one sends.
Add a conditional split on Placed Order at least once over all time. Past buyers and first-timers do not get the same email.
No discount. She already trusts you. Paying her to come back cuts margin you had earned.
First order only, and only if the margin holds at 10%. If it does not, send scarcity or the plain nudge instead.
Why the discount waits until 48 hours: put it in the first email and you teach your list that abandoning a cart for an hour is worth 10%. Then you pay 10% on orders you were going to get for free.
The SMS branch
One message, at 4 hours, to consented profiles only. It sits between email one and email two.
One. Not a sequence. SMS is the most expensive permission you hold and the fastest to lose. If she has not consented, she skips this branch and stays on the emails.
The three that cost the most
A discount in the first email
You train the list. People learn to load a cart, walk away, and wait for the coupon. The flow looks like it is working while your margin drops.
Triggering on Added to Cart
It fires on browsing. You do not reliably have an email, so you send to people who never entered checkout and never asked to hear from you. Your deliverability pays for it.
No exit condition
Someone buys, then keeps getting "you forgot something." That is the fastest way to get marked as spam by a customer who just paid you.
Measure it per email, not per flow
Track recovery rate and revenue per recipient on each of the three sends separately.
A flow-level total hides the truth. It will not tell you that email three is doing all the work and email two is dead weight, or that email one is the only one earning and the discount is pure giveaway. You cannot fix what the average is covering up.
Want the copy for all three emails?
Subject line, preview text, and body for the 1 hour, 22 hour, and 48 hour sends, with the 48 hour split written both ways. Fill in the blanks and they are ready to paste into Klaviyo.
Swap {{ the_one_objection }} for the single thing your product actually gets stuck on. One objection per email. Two reads as a list of reasons not to buy.
Want to know what your unfinished checkouts are actually worth?
Put your traffic and your abandonment rate into the calculator. It takes a minute. That number is usually the reason this flow gets built first.
Open the calculatorIf the number comes back bigger than you expected, the cart is rarely the only thing costing you. I find what is broken across the store, name it, and fix it. A Growth Audit is $497 and takes 72 hours.