Abandoned cart flows are one of the most valuable flows for any ecommerce business. They’re a message or sequence of messages 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.
Creating an 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.
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. Note that this default flow includes only emails.
You can also build an abandoned cart flow from scratch, but this will not automatically include the dynamic content discussed below.
Flow Trigger and Filters
In Klaviyo, the default abandoned cart flow works by tracking:
- When someone starts a checkout or adds an item to a cart
- 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. In this case, the person who abandoned a cart will get all the messages in your abandoned cart series.
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.
Another flow filter you might want to add is Hasn't been in flow in the last X days. This will prevent those who recently received your abandoned cart messages from receiving them again.
If you have more than one message in your flow, Klaviyo will check your flow filters before each individual email or SMS is sent out. This means that if someone completes their purchase after the first email, they won't receive any other messages in your series.
Content to Include in Your Abandoned Cart Flow
One of the most compelling aspects of an abandoned cart message is the ability to include information about the item someone abandoned directly in the message. 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.
While it's true that the dynamic content is pulled in automatically for the built-in abandonded cart flows in Klaviyo, you may want to customize it. Further, if you are building an abandoned cart flow from scratch, this information won't be pulled. For details on how to add it, check out
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.
You can also build your own abandoned cart flow from scratch. Create this flow by navigating to the Flows tab and select Create Flow > Create from Scratch > Create Flow > Metric.
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 message 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 message 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 message 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.
Time Delays: When to Send Your Messages
Immediately after your flow trigger, include a time delay. If there's no time delay, the first message will send as soon as a shopper adds an item to their cart, leaving no time to see if they go ahead and place an order. You want to give shoppers the chance to complete their purchase before sending them a cart reminder.
Deciding when to send your first abandoned cart email can be difficult. As a rule of thumb, we recommend sending your first message between 2–4 hours after someone starts a checkout, and then sending a second email 1–2 days later.
There is no one-size-fits-all rule for the best time to send abandoned cart messages. 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 delay 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.
This 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.
How Many Abandoned Cart Messages to Send
Based on research from thousands of Klaviyo ecommerce customers, we have found that sending two to three abandoned cart messages in your 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.
Use SMS in Your Flow
Using Klaviyo to send SMS messages in your abandoned cart flow is a great way to reach customers on another channel to remind them of outstanding items in their carts. There are several ways you can fold SMS into your abandoned cart flow, but one of the most effective ways is to reach out to customers who have not opened your abandoned cart email and follow up via SMS. Before adding SMS to any abandoned cart flow, make sure your SMS list has double opt-in turned on, or you may experience heavy filtering.
Next, drag a conditional split below the time delay stipulating that someone has opened the previous email. You can do this using What someone has done or not done > Opened Email at least once over all time > where Message equals [INSERT MESSAGE NAME]. Fill in the message name with the name of your first abandoned cart email (note that this is different from the subject line).
After this first SMS message, you will want to rejoin the split so that recipients continue down the intended path even if they don't open the initial abandoned cart email.
Note that many people will likely be skipped from receiving this text message due to several potential factors:
- You have not already collected SMS consent. Klaviyo does not allow customers to send to contacts that have not explicitly opted-in to receive SMS marketing because this violates TCPA laws.
- You do not have a valid phone number for the recipient. Because everyone who starts a checkout will enter an abandoned cart flow, it's likely the case that you won't have phone numbers for a large number of contacts.
- The contact does not have a US number. SMS messaging is not currently available for non-US numbers, so even if a recipient does have a valid phone number, they won't receive any text messages unless it's a US number.
Keep your messages short and direct, with a very obvious call to action (CTA). In this case, the CTA should link customers back to the items they left behind in their cart. To do this, you'll need a dynamic cart link.
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|
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.
Analytics are directly tied to optimization. For example, if you notice your open rate for an email 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 or, for SMS, try including an image or GIF. 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 may wonder 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.
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 (email only):
- Subject lines
To influence click rate:
- Plain text vs. graphic rich
- Call to action (CTA) location
- General email layout
- MMS vs. SMS
To influence conversion rate or revenue per recipient:
- Purchasers vs. non-purchasers
- Domestic vs. international
- Product category/collection
- Value of items in cart
- Number of items in cart
Below, we talk about different branches you can use in your abandoned cart 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.
Learn more about how to use coupon codes in Klaviyo:
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 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.
Still looking for ways to take your abandoned cart flow to the next level? Check out these additional resources:
- Personalize Flows with Dynamic Event Data
- Ecommerce Brands that Nail Cart Abandonment (and What You Can Learn From Them)
- 15 Abandoned Cart Best Practices