Which trigger to use, the filter that stops it emailing buyers, when each of the three emails sends, and what to measure.
- Start with the Checkout Started trigger, which comes from Klaviyo's Shopify integration and catches shoppers who entered an email at checkout.
- Add the profile filter Placed Order zero times since starting this flow, so anyone who buys is skipped for every remaining email.
- Three emails is a solid default: a plain reminder at two to four hours, an email that answers objections a day later, and a final email two days after that.
- Decide on a final-email discount with the margin math in front of you, and use unique single-use codes if you offer one.
- Judge the flow on placed order rate and revenue per recipient, and treat attributed revenue as an upper bound.
On this page
The abandoned cart flow is one of the first flows most stores build in Klaviyo, and one of the easiest to leave half-finished. A common version is a single email on the default template, triggered by a metric nobody chose on purpose, with no filter to stop it emailing people who already paid.
This playbook covers the trigger, the filter every version needs, the timing of three emails, and the numbers that tell you whether the flow is working.
Choose the trigger: Checkout Started or Added to Cart
Klaviyo gives you two practical triggers for a cart flow. Checkout Started fires when a shopper enters their email at checkout and leaves without paying. Added to Cart fires earlier, when a shopper Klaviyo already knows adds a product to the cart on your site.
Checkout Started comes through Klaviyo's Shopify integration with no extra setup. It reaches fewer people, but they are further along, and you know their email because they typed it.
Added to Cart depends on Klaviyo's storefront tracking, which runs through the Klaviyo app embed in your Shopify theme. It only fires for shoppers Klaviyo has already identified, through a form, an email click, or a past order.
Start with Checkout Started. It is the higher-intent signal, and it is the trigger Klaviyo's own abandoned cart templates use. Once that flow runs well, build a separate Added to Cart flow for shoppers who never reach checkout, and filter it so nobody receives both.
Add the filter that stops it emailing buyers
Without a profile filter, a shopper who leaves checkout at 2pm and comes back to buy at 3pm still gets your reminder at 6pm. That email tells the customer nobody is paying attention, and the fix takes one line.
In the flow builder, click the trigger and add a profile filter: Placed Order zero times since starting this flow. Klaviyo checks profile filters before every email, so once someone buys, every remaining email in the flow is skipped for them.
Two more settings are worth adding. In the trigger panel, set Re-entry criteria to allow re-entry after a time period, such as 7 days. That stops a frequent visitor from getting the full sequence every time they start a checkout. This setting replaced the older has-not-been-in-this-profile filter. If you also run the Added to Cart flow, give it the profile filter Checkout Started zero times since starting this flow, so anyone who reaches checkout gets this flow instead.
Then check Smart Sending, which skips an email if the person received another email from you within a set window, 16 hours by default. Klaviyo's prebuilt abandoned cart emails ship with it off, so check each email. Leave it on for emails two and three. Turn it off on email one, because the first reminder is time-sensitive and a morning campaign should not cancel it.
Time the three emails
Three emails is a solid default for a store your size. Each one has a different job. The delays below are common starting points, and you test them once the flow has steady volume.
Email one: two to four hours after the checkout
Add a time delay of 2 to 4 hours after the trigger. That is long enough for the shopper to have left and short enough that the product is still on their mind.
The job of this email is to remind. Show the products they left in a dynamic table block that repeats over the checkout's line items, and include the price. Link the button to the checkout URL from the event, event.extra.checkout_url, so they return to a filled cart.
Keep the copy short and plain. A subject line like You left something in your cart works because it says what the email is.
Email two: one day after email one
Add a one-day delay. Email two answers the reasons people hesitate: shipping cost and timing, the return policy, and what other customers said about the product.
If your review app syncs reviews to Klaviyo, pull two or three for the products in their cart. If it does not, use store-wide reviews. Put your free shipping threshold and returns window in a plain line near the top. If shipping cost surprised them at checkout, this is where you address it.
Email three: two days after email two
Add a two-day delay. This is the last reminder, and it is where you decide whether to offer a discount.
A discount in the final email recovers some orders that would not have come back otherwise. It also discounts orders that would have closed anyway, and it teaches repeat visitors to leave checkout on purpose. Before you add one, run the numbers in our discount cost calculator.
If you add a discount, create it in Klaviyo's Coupons section with Create Shopify Coupon. Insert it with the coupon code tag, so each shopper gets a single-use code instead of a public one. If you skip it, use email three to invite questions, with a reply-to address a person reads and a link to your sizing or FAQ page.
Check the flow before it goes live
Before you set the flow live, walk through it once in this order.
- Confirm the trigger is Checkout Started.
- Confirm the profile filters include Placed Order zero times since starting this flow, and Re-entry criteria allows re-entry only after a time period.
- Confirm the delays are 2 to 4 hours, then one day, then two days.
- Confirm Smart Sending is off on email one and on for emails two and three.
- Turn on Enable UTM Tracking in each email's Settings section so the flow shows up in Google Analytics.
- Preview each email with a recent real checkout profile to confirm the products and checkout link render.
- Set each email to Live, then set the flow to Live. Emails left in Draft or Manual will not send.
Then start a real checkout on your store with your own email and leave. Email one should arrive inside the delay you set.
What to measure
Open the flow's analytics for the last 30 days. Three numbers tell you more than open rate.
- Placed order rate for each email. Set the flow's conversion metric to Placed Order and read the conversion rate for each email. This shows which email does the recovering.
- Revenue per recipient. This is the attributed revenue divided by the number of people who received the email, and it lets you compare this flow against your others on equal terms.
- Unsubscribe and spam complaint rates. A rise after email three usually means the tone is too pushy or Re-entry criteria lets people through the flow too often.
Treat the revenue number with care. Klaviyo credits an order to the last email the shopper opened or clicked inside the attribution window, meaning the period after an email during which a purchase counts toward it. The default is five days for both opens and clicks. Some of those shoppers would have come back on their own.
Apple Mail Privacy Protection opens emails automatically, which inflates open-based credit. Klaviyo's attribution settings let you remove those Apple Privacy opens and shorten the open window, which gives you a more conservative number.
Finally, compare against Orders > Abandoned checkouts in Shopify, which shows the recovery status of each checkout. If the flow recovers a steady or growing share of those each month, it is working.
What to do this week
Open your existing cart flow, or the Klaviyo flow library if you do not have one, and check the trigger. If it is anything other than Checkout Started, rebuild on Checkout Started first.
Add the profile filter Placed Order zero times since starting this flow before you change anything else. It takes a minute and stops the flow emailing people who already paid.
Then start a checkout on your own store with a personal email, leave, and note what arrives and when. Write down anything that looks wrong before you touch the copy.
If you want an outside view of your store before you rework the flows, the free growth plan is a six-month plan we build from the outside, with no logins, and walk you through on a call. Cart recovery is part of our email and SMS work, and Klaviyo Flows: What to Build First covers how this flow fits with the others.