Tilly

How to set up an abandoned cart flow in Klaviyo

Nine steps to a working Klaviyo abandoned cart flow for a Shopify store: the trigger, the purchase filter, the delays Klaviyo suggests, and a test before it goes live.

What this is for

An abandoned cart flow emails someone who put something in their cart or started checkout and then left. Klaviyo's own help centre puts the size of the problem plainly: most carts never become orders. source, checked 28 September 2026

When you finish this guide you will have a flow in Klaviyo that starts on the right event, stops the moment someone buys, waits long enough not to feel pushy, and shows the exact products left behind. What the emails should say is covered on the abandoned cart flow page; this guide is the setup.

Time needed and what you need

Time needed: about 1 hour. The trigger and the filters take ten minutes; the rest is writing the two emails and running a real checkout to test them.

  • A Klaviyo account with your Shopify store connected through Klaviyo's Shopify integration
  • Staff access to your Shopify admin, so you can place a test order
  • Your usual email template, so the reminder looks like the rest of your mail
  • A discount code that already exists in Shopify, only if you plan to offer one in the second email

The steps

Do them in this order. The filters in steps 4 and 5 are what stop the flow emailing people who already paid, so do not leave them for later.

1. Check that Klaviyo is receiving checkout events

Open the metrics list in Klaviyo's analytics and look for Started Checkout coming from Shopify with recent activity. If it is not there, the integration is not sending checkouts and no flow will ever start. Fix the integration first.

If you want to remind people who only added to cart, Klaviyo has to be told to track that too. The switch is in the Shopify integration's settings. source, checked 28 September 2026

2. Pick the trigger: Started Checkout or Added to Cart

Started Checkout fires once a shopper has typed their contact details at checkout, so you know who they are and they were close to paying. Added to Cart fires earlier and catches more people, but only people Klaviyo can already identify. Start with Started Checkout. Add a cart flow later if the checkout flow is working and you want more reach.

3. Create the flow from Klaviyo's flow library

Open Flows, create a new flow and search the library for the abandoned cart flow that uses the trigger you picked. Use the pre-built one rather than starting from scratch: it already has the product block that pulls in each shopper's items, which you would otherwise have to build by hand.

4. Add the filter that stops it after a purchase

Open the flow's trigger settings and add a profile filter for people who have placed no order since the flow started. Klaviyo checks this filter again before every email, so a shopper who pays after the first reminder never gets the second. source, checked 28 September 2026

5. Stop the same person entering again and again

Add a second flow filter: has not been in this flow in the last few days. Someone who abandons three carts in a week should get one set of reminders, not three. source, checked 28 September 2026

6. Set the two delays

Put a time delay straight after the trigger, then the first email, then a second delay and the second email. Klaviyo suggests 2 to 4 hours before the first email and 20 to 48 hours before the second. Shorter than that and you email people who were still deciding; longer and they have bought elsewhere. source, checked 28 September 2026

7. Save the product block before you restyle anything

The pre-built emails carry a dynamic block that lists each item in the shopper's cart and a button back to that cart. Save that block to your saved blocks first, then drop it into your own template. If you edit the default email and delete the block by accident, the personalisation goes with it. source, checked 28 September 2026

8. Write the two emails

Email one is a reminder: the products, the button, one line answering the usual hesitation for your store, such as delivery time or returns. Email two can carry more reassurance, a review, or the discount code if you use one. Keep the code out of email one, or shoppers learn that leaving a cart is how you get a discount.

  • Subject line one: name the product, not the cart
  • Subject line two: answer the doubt, not repeat the reminder
  • One button per email, back to the cart

9. Test with a real checkout, then set it live

Temporarily shorten the first delay, start a checkout on your own store with an address that is subscribed, and leave. Check that the email arrives, the products match and the button restores the cart. Then place the order and confirm the second email is skipped. Put the delay back, and only then change the flow's status to live.

A worked example

  • For a loose-leaf tea store with 1,200 started checkouts a month

    Worked example (an invented store, with invented numbers)

    The store uses the Started Checkout trigger, a 3-hour first delay and a 24-hour second delay, with the purchase filter in place.

    Of 1,200 people who start checkout in a month, 700 finish paying before the first email is due and are skipped by the filter. The other 500 get email one, and 60 of them buy. That leaves 440 for email two, which carries a free-shipping code, and 25 more buy.

    That is 85 orders the flow brought back. At an average order of $38, it is $3,230 in the month, and the 700 shoppers who paid on their own never received a reminder they did not need.

Common mistakes

Building the flow from scratch. You lose the dynamic product block and end up with an email that says "you left something" without showing what. Start from the library flow.

Leaving out the purchase filter. Klaviyo's help centre notes that a customer who orders after the trigger can still get the next message if the filters do not exclude recent buyers, and that is the email that gets you unsubscribes. source, checked 28 September 2026

Running a cart flow and a checkout flow side by side with no overlap rule. Someone who adds to cart and then starts checkout gets both. In the cart flow, add a filter for people who have not started checkout since starting the flow.

Putting the discount in the first email. Many people come back without one, and the ones who learn the pattern stop paying full price.

Doing this with Tilly

Tilly's email marketing agent writes this flow for you as two emails on the started checkout event: 1 hour after the checkout starts, then 23 hours after that. Anyone who orders drops out before the next email, a discount is only allowed in email 2 and only with a code that exists in your store, and one email shows at most 4 products.

It goes to Klaviyo as a draft flow and nothing is switched on. Tilly's first delay is shorter than the 2 to 4 hours Klaviyo suggests, so if your shoppers take longer at checkout, lengthen it in Klaviyo before you set the flow live. source, checked 28 September 2026

Questions people ask

Why does my abandoned cart flow show so many people skipped?

Because the purchase filter is doing its job. Everyone who starts checkout enters the flow, and everyone who then pays is skipped. A high skip count on this flow is a good sign, not a fault. source, checked 28 September 2026

Do Buy with Prime checkouts need their own flow?

Yes. Klaviyo treats Buy with Prime checkouts as a separate event, so they need a flow of their own, and your main flow needs a filter so Prime buyers are not sent the wrong message. source, checked 28 September 2026

How do I know if the flow is working?

Give it two weeks, then open the flow's report and look at recipients and orders per email, not opens. The guide to reading a Klaviyo flow report walks through what each number means.

See this on your own store

Paste your store URL. The first pass takes about a minute and needs no account. Save a card (nothing is charged) and Tilly reads the whole store and works out who buys from you.