Guide to Creating an Abandoned Cart Flow

Last updated at:


Abandoned cart emails are one of the most valuable emails for any ecommerce business. They’re an email or sequence of emails sent to someone who added an item to their shopping cart, but failed to complete the purchase. Not contacting these customers is leaving money on the table -- almost 70% of shopping carts are abandoned on average.

There are a lot of reasons why someone abandons a cart. Perhaps the shopper didn't have their credit card in front of them or wanted to browse your site a bit more before making a decision. Whatever their reason is for leaving mid-checkout, most often it's not because they're no longer interested in the product.

Depending on your ecommerce platform, you may already have a built-in abandoned cart flow that is running. For example, if you use Shopify, you likely already have a Shopify abandoned cart flow. Klaviyo allows you much more customization and targeting than your ecommerce platform’s default abandoned cart flow. In Klaviyo, you can fully customize the content of the email, add multiple emails, and branch the flow based on things like the value of the item in the cart, and much more. You’ll want to turn off any default platform abandoned cart emails to make sure that you’re not double-emailing anyone.

Navigating Klaviyo's Default Abandoned Cart Flow

After you integrate your ecommerce store with Klaviyo, you'll find several best practice flows populate automatically in your account. One of these is the Abandoned Cart flow. This guide will walk through how to review and customize the default Abandoned Cart flow in your account.

If you use Magento, install the Magento Extension before leveraging our Abandoned Cart flow. The Extension is what allows Klaviyo to receive data whenever someone starts a checkout. For most other ecommerce platforms, after integrating your store, you will see Started Checkout data populating in your account.

Flow Trigger and Filters

Klaviyo's default Abandoned Cart flow works by tracking:

  1. When someone starts a checkout
  2. If someone completes their purchase and places an order

If someone adds an item to their shopping cart but does not make a purchase, this is considered an abandoned cart. Hence, the flow is triggered when someone starts a checkout, but there is a filter on the flow excluding anyone who completes their purchase.


It is important to note that everyone who starts a checkout will enter the flow. If they go on to place an order, they will be skipped. For this reason, you will typically see a large number of people who enter the flow being skipped due to "failing flow filters." This is actually a good thing and simply means the flow is functioning correctly by not sending abandoned cart emails to people who placed an order.

If you have more than one email in your flow, Klaviyo will check your Flow Filters before each individual email is sent out. This means that if someone completes their purchase after the first email, they won't receive any other emails in your series.

If someone abandons the checkout process and never goes back to complete the process, they will get all the emails in your Abandoned Cart series.

If your shoppers live in a region with data protection laws, you should consult your legal team before turning your abandoned cart flow live. Check out our guide to Best Practices for Complying with Data Privacy Laws for more information.

Dynamic Content 

One of the most compelling aspects of an abandoned cart email is the ability to include information about the item someone abandoned directly in the email. Klaviyo's default Abandoned Cart flow contains a dynamic content block and go-to-cart button that is unique to each ecommerce integration. This content block is what allows you to include an image, link, and other information about the product in the email. The go-to-cart button is what allows someone to navigate directly back to their cart.

Because these blocks utilize tags that are unique to each integration, it can be challenging to rebuild them on your own. We highly recommend saving these blocks before editing the default email or swapping out the template. This way, you can completely customize the design of your email, but don't have to worry about affecting its functionality.


By default, the abandoned cart block will pull in all the items that someone has left in their cart. To change or limit the number of items displayed, you can edit the block.

If you accidentally delete either of these dynamic blocks, you can re-add Klaviyo's default Abandoned Cart flow to your account from the Flows Library in the Browse Ideas tab.

How Many Abandoned Cart Emails to Send

Based on research from thousands of Klaviyo ecommerce customers, we have found that sending 2-3 abandoned cart emails in your Abandoned Cart flow leads to optimal performance. For more information on how we determined this result, check out our Abandoned Cart Benchmark Report.

This is also something you can test for your unique business using the branching technique outlined below.

When to Send Your Abandoned Cart Emails

Deciding when to send your first abandoned cart email can be difficult. As a rule of thumb, we recommend sending your first email between 2-4 hours after someone starts a checkout, and then sending a second email 1-2 days later.

Bear in mind that someone will enter the flow as soon as they start a checkout, so if you configure your abandoned cart flow to send immediately, they will receive the first email as soon as they add the item to their cart, without the opportunity to abandon it first. You want to give shoppers the chance to complete their purchase before sending them a cart reminder.

There is no one-size-fits-all rule for the best time to send abandoned cart emails. Each business and audience is different, and what works for one store may not work for another. Timing may vary depending on what you sell — for example, if you sell big-ticket items, like mattresses, the buying process likely requires more consideration than something smaller, like shoes. For this reason, you might find that a longer time Ddlay is more effective. If you email someone too soon after they abandon a cart without giving them the opportunity to finish making a purchase, you can come off as tone-deaf or overly pushy.

Additionally, if you’re using an integration besides Shopify or Bigcommerce, we may not sync Started Checkout data immediately. You will want to double-check how often data is synced from your ecommerce store to your Klaviyo account to ensure that your first abandoned cart email doesn’t send until after these events are synced. T

his means that if, for example, you set an abandoned cart email to send 30 minutes after someone abandons a cart, your customer may not receive the first email at exactly 30 minutes. Some integrations, such as OpenCart, sync once every hour. As a best practice, we recommend setting a time delay of a least an an hour and 15 minutes to accommodate different sync timings. 

A/B Test a Time Delay

To find the optimal Time Delays for your Abandoned Cart flow, we recommend testing. To do this, first, drag a Conditional Split into the top of your flow. Then, configure your split to be based on a 50% random sample. Bear in mind that if you change the weighting of the random sample to something other than 50%, that will be the percentage of people who flow down the YES path.


This will allow you to run an A/B test on the timing of your first abandoned cart email. Next, drag a Time Delay to the NO branch of the flow. Set this to be the other timeframe that you would like to test.


Last, clone all of the components on the YES branch and drag the clones over to the NO branch, so that everything is identical except the timing of the first email. This allows you to isolate this as the variable that you're testing.


After you set the cloned emails live, monitor the conversion rate of the first email to determine which Time Delay is performing best. Then, you can test another Time Delay or delete the Conditional Split and only keep the winning Time Delay.

You can repeat this process with your second or third abandoned cart emails if you would like to test these as well, but remember to A/B test them one at a time so that you can isolate this as the only variable you're testing.

Content to Include in Your Abandoned Cart Flow

Klaviyo's default Abandoned Cart flow will pull in the styling and logo that you configured while going through the Setup Wizard. That said, you will likely want to tweak the appearance and language of these emails before turning them live to ensure that they are aligned with your brand.

As we mentioned, the core part of Klaviyo's default Abandoned Cart flow that you will want to keep is the dynamic content. We recommend saving the dynamic content block and button before editing the default template to ensure that you don't overwrite it. Then, if you have a base template that you've already designed for your other emails, you can use this as your abandoned cart template and drag in the dynamic content from the Saved Blocks library.

Below is an example of a well designed abandoned cart email:


Notice that the primary focus of the email is the item that the recipient left in their cart. This dynamic content should be the core of your email template. After all, this is the item that they demonstrated an interest in in the first place.

It’s not advised to have other products highlighted in the abandoned cart email since your main goal is to drive shoppers back to their cart to complete their purchase. Including other products can distract from this message and lead to an overall lower conversion rate.

For more inspiration for how to design your abandoned cart emails, check out Really Good Emails.

The language you use in your abandoned cart email should encourage people to reach out if they have questions about your products and inspire a sense of urgency to convince them to complete the purchase. For example, you could lead with "Hurry, before it sells out!"

While it's common to include a discount or incentive in an abandoned cart flow, we don't encourage you to include a coupon right off the bat in the first email. This can train customers to abandon carts in order to get the discount and is oftentimes giving money away unnecessarily. If you would like to include an incentive in your abandoned cart flow, it's best to hold off until the final email, or only offer it to people who have never purchased before.

Measuring Abandoned Cart Performance

Once you have your abandoned cart flow up and running, you will want to analyze how it is performing to see where there's room for improvement. Below are some benchmarks from our Abandoned Cart Benchmark Report:

Open Rate Click Rate Revenue per Recipient
41.18% 9.50% $5.81

Your conversion rate will depend on the conversion window you have set in your account, which is why our report instead looked at revenue per recipient. By default, the conversion rate for your Abandoned Cart flow will be Placed Order, as this is the desired action someone would take after receiving your abandoned cart emails. However, you can change this conversion metric if you would like.

You can see an overview of your abandoned cart low's performance on the Visual Flow Canvas by clicking Show Analytics.


If you click on a particular email and then click View all Analytics in the left-hand panel, you will be brought to a more granular view of that individual email's performance.


Learn more about Flow Analytics. Additionally, you can export your analytics to run your own analyses.

Analytics are directly tied to optimization. For example, if you notice your open rate is lower than average, you can A/B test subject lines or timing to find something that may work better. If you have a low click rate, maybe you need to make your call to action more obvious. If you notice you have a lower than average amount of revenue per recipient, you may want to consider offering a discount in the second email to nudge people to purchase.

Note that you may see customers who have purchased in the Waiting queue for an abandoned cart flow. The way this flow works, everyone who is captured by the initial trigger — Started Checkout —will queue up for the first email in the flow and appear under Waiting. At a person's scheduled send time, Klaviyo will check the filter Has Placed Order zero times since starting this flow and skip anyone who completed a purchase. So even if they appear in the Waiting queue, if they placed an order, they will be skipped. 

Taking Your Abandoned Cart Flow to the Next Level

Once you have a basic abandoned cart flow set up, you might be wondering what comes next and how you can make your existing flow even better. Because all businesses are different and have their own unique audiences, there isn't just one formula that will work for everyone.

The Browse Ideas tab is a great place to look for new ideas and inspiration when leveling up your abandoned cart flow, and includes many of the best practice branched flows outlined below.

Testing new ideas is the best way to optimize your abandoned cart flow. Below are a few recommendations for where to start.

To influence open rate:

  • Timing
  • Subject lines
    • Urgency
    • Emojis

To influence click rate:

  • Email content
    • Plain text vs. graphic rich
    • Call to action (CTA) location
    • General email layout

To influence conversion rate or revenue per recipient:

A/B Test Subject Lines or Email Content

Subject lines are directly tied to your open rates. To test a new subject line, first, click on the email that you would like to test. Then, click Add Variation in the lefthand panel.


Click rates, on the other hand, are primarily affected by the content and layout of your emails. You can A/B test email content by changing the body of the email, but not the subject line. For example, you may want to test a more prominent CTA or plain text versus graphics rich. You can measure your results in the same way you would measure them for a subject line A/B test, but instead of looking at open rate, pay special attention to the email’s click rate.

Be sure to only A/B test one variable at a time. You can also change the weighting of the test to suit your needs. For instance, you may only want to test a new subject line for 10% of your audience if your current subject line is already producing good open rates. This minimizes the risk of testing. Then, if you decide that your test subject line is better, you can change this to send to 90% of your audience and test a brand new subject line with the remaining 10%. These tests will run indefinitely, so be sure to check in periodically to see how your subject lines are performing.

Learn more about A/B testing flows.

Branching by Purchasers vs. Non-Purchasers

Messaging existing customers and non-customers differently is a good practice, especially if you plan on offering an incentive if your abandoned cart flow. You don't want to over-discount, so you may want to only offer a coupon code to shoppers who have never purchased from you before to encourage them to buy for the first time.

If you take this approach, be sure to include language like, "Take 10% off your first purchase" so that recipients don't grow to expect a discount every time they abandon a cart. Additionally, use dynamic coupon codes to prevent sharing on sites like RetailMeNot, etc.

To split your flow by purchasers versus non-purchasers, first, drag a conditional split into the top of your flow. Then, set this split to be based on What someone has done or not done > Has Placed Order at least once over all time. People who have never placed an order before will go down the NO path while existing customers will go down the YES path.


Then, you can include a coupon in the final email of the NO path.

Branching by Domestic vs. International Shoppers

You may be able to offer special perks to domestic customers that you don't to international customers, like free shipping. Branching your flow by domestic versus international customers allows you to highlight these perks if your emails to domestic customers to persuade them to purchase.

First, drag a conditional split to the top of the flow. Then, set this split to be based on Properties about someone > Country equals US. Those who flow down the YES path will be domestic customers, and those on the NO path are international.


Branching by Number of Emails

You may want to test how the number of emails in your flow affects your conversion rate. For example, maybe you want to test adding a third email to your abandoned cart flow. When analyzing the third email, pay special attention not only to its conversion rate, but also the open and click rate. If an additional email has poor open and click performance, it could be doing more harm than good for your deliverability, even if it’s producing revenue. Refer to the benchmarks above to determine what below-average open and click rates look like.

To test the number of emails in your flow, drag in a conditional split below the trigger. Base the split on a random sample and select the weighting you would like to assign to the control branch. The test branch will be the NO branch or the remainder of people who enter the flow.


Branching by Product Category or Collection

If you have a large product offering, you may want to branch your abandoned cart flow by category or collection to include more relevant copy and images in your emails. One key example is if you sell men's and women's products. In this case, it's also important to include a default branch in case the product in someone's cart is not in either the men's or women's collection.

First, drag a Trigger Split to the top of the flow. Set the collection (or "category," depending on your ecommerce integration) to contain Women's. Then, drag another Trigger Split directly beneath the first one. Set this collection to contain Men's. Those who flow down NO path after this Trigger Split should receive a more generic abandoned cart flow.


Branching by Cart Value

You may want to message customers with larger cart values differently than those at or below your store's average order value. For example, if the value of the items in someone's cart adds up to triple your average order value, you may want to offer them an incentive to encourage them to complete the purchase.

To do this, drag a Trigger Split to the top of the flow. In this example, our average order value is $100. Next, configure the split to be based on Checkout started value is less than 300. Those whose carts are worth less than $300 will flow down the YES path, while those with triple your average order value or more will flow down the NO path.


Branching by Cart Size

Similarly, you may want to branch your abandoned cart flow based on the number of items someone has in their cart. For example, you may want to offer someone with three or more items in their cart a buy one get one free (BOGO) or other promotion to encourage them to place an order.

To do this, first drag a Trigger Split to the top of the flow and configure it based on Item Count is less than 3. Shoppers with fewer than 3 items will flow down the YES path, while those with more than 3 items will flow down the NO path.


Additional Resources

Still looking for ways to take your abandoned cart flow to the next level? Check out these additional resources:

Was this article helpful?
812 out of 1066 found this helpful