Skip to content

Klaviyo guide

Klaviyo Cart Abandonment: Added to Cart vs Checkout Flows Explained

Why many "abandoned cart" flows are really checkout flows, how to enable and test Added to Cart, the filters that keep cart, browse and checkout flows apart, and how to decide timing, splits and discounts.

  1. Added to Cart
  2. Wait a few hours
  3. Started Checkout or Placed Order since entry?
  4. No: send cart reminder
  5. Yes: skip, another flow takes over
A cart flow should step aside the moment the shopper moves further

What is a cart abandonment flow in Klaviyo?

A cart abandonment flow is a metric-triggered flow that starts when an identified shopper adds a product to the cart and then doesn’t start checkout or buy. In Klaviyo, the trigger is the Added to Cart metric.

That definition surprises people, because the flow called “Abandoned Cart” in many accounts isn’t triggered by Added to Cart at all. Klaviyo’s most widely used pre-built abandoned cart flow is triggered by Started Checkout, which on Shopify data usually appears as Checkout Started. It reaches people who got as far as checkout. Someone who added a product and closed the tab before checkout never enters it.

So before worrying about how to write the cart email, work out which of these two flows you actually have.

Cart abandonment vs checkout abandonment

The two flows respond to different moments:

  • Cart abandonment (Added to Cart). The shopper picked a product but didn’t start checkout. Maybe they were building a basket, checking shipping costs or got distracted. The audience is larger and the intent is moderate.
  • Checkout abandonment (Started Checkout). The shopper began checkout, usually entered an email address, and didn’t complete the order. Intent is the highest of any abandonment signal, and the reasons for leaving tend to be specific: delivery cost, payment options, a required account.

Klaviyo recommends running them as separate flows. They need different timing, different tone and sometimes different offers. A shopper who abandoned at payment doesn’t need to be reminded what’s in their cart. They need the obstacle removed.

Browse abandonment, triggered by Viewed Product, sits one step earlier still. Our browse abandonment guide covers that flow, and the checkout abandonment guide covers the last step before purchase.

How do I keep the three flows from overlapping?

Each flow excludes anyone who moves further down the path after entering it. In practice:

  • Browse abandonment excludes Added to Cart, Started Checkout and Placed Order since starting the flow.
  • Cart abandonment excludes Started Checkout and Placed Order since starting the flow.
  • Checkout abandonment excludes Placed Order since starting the flow.

Because Klaviyo checks profile filters before every message, a shopper who adds to cart and then starts checkout an hour later drops out of the cart flow before its first email and is handled by the checkout flow alone.

Turning on Added to Cart

Before building anything, confirm the metric exists and is reliable.

On Shopify, Added to Cart requires two things: the Klaviyo app embed enabled in your theme, and the Track behavioral events setting checked in Klaviyo’s Shopify integration settings. Klaviyo’s own guidance is to test that Added to Cart is tracking before creating the flow.

On other platforms, it depends on the integration. Some send Added to Cart automatically, some need a code snippet on the add-to-cart button, and headless or heavily customized themes often need developer work. Ajax carts and slide-out drawers are a common reason the event fires on product pages but not from quick-add buttons on collection pages.

Then test it properly. Identify yourself on the site by clicking a link in a Klaviyo email, add a product from each place a customer can (product page, collection grid, upsell widget), and check that an Added to Cart event appears on your profile for each. Open one of those events and look at what it contains. Depending on the integration, it may describe just the item added or the whole cart, and that determines what your email can show.

Like browse tracking, Added to Cart only records against profiles Klaviyo has identified. On Shopify, tracking consent also applies to visitors in the EU, EEA, UK and Switzerland.

Building the flow

Klaviyo provides a pre-built template for an Added to Cart flow on Shopify, or you can start with Build your own, choose a metric trigger and select Added to Cart.

Profile filters

Use these, joined with AND:

  • Placed Order zero times since starting this flow
  • Started Checkout zero times since starting this flow (or Checkout Started, depending on the name in your account)
  • Has not been in this flow in the last X days, with X chosen to match how often your shoppers come back

For Buy with Prime stores, add the Buy with Prime versions of Started Checkout and Placed Order as well.

The re-entry window deserves a moment’s thought. Some shoppers add to cart on almost every visit, using the cart as a wishlist. Without a re-entry limit they’d receive the same reminder every few days. Seven days is a common starting point for frequently purchased products. Longer suits higher-priced items with a slower decision.

Timing

For checkout abandonment, Klaviyo suggests a first message two to four hours after the trigger and a second 20 to 48 hours later, and its pre-built flows use a four-hour first delay. Cart abandonment can follow a similar pattern. Give the shopper enough time to return on their own and for the checkout filter to catch anyone who moves forward.

There’s a technical reason not to go too short, too. If an integration syncs order data hourly rather than in real time, Klaviyo advises a first delay of at least an hour and fifteen minutes. Otherwise a shopper who bought fifty minutes after adding to cart can still receive a reminder, because the Placed Order event hasn’t reached Klaviyo yet.

Two or three messages in total is plenty.

Product content

The email should show what’s in the cart. Klaviyo’s dynamic product block repeats for each item, with image, title, quantity and price, plus a button back to the cart. Two common mistakes:

  • Mixing in recommendations above the cart contents. Recommended products belong below the abandoned items, if at all.
  • Assuming the event holds the full cart. If your Added to Cart event only describes the most recently added item, the email will show one product, not the basket. Check the payload during testing and adjust the copy so it doesn’t promise “your cart” when it can only show one item.

Splits worth adding

A multi-branch split lets you route shoppers down several paths in one step, with an “Everyone else” path for anyone who doesn’t match. Paths are checked in order, and each profile takes the first path it qualifies for. Two splits are especially useful in cart flows.

Split by cart value

In metric-triggered flows, a multi-branch split can use conditions on the trigger event, such as the value of the cart. A cart above a threshold might get a more personal tone, a reply-to address that reaches a person, or an SMS step where you have SMS consent. Lower-value carts get the standard series.

Split by purchase history

A path for “Placed Order at least once over all time” separates past customers from first-time shoppers. Klaviyo’s own guidance uses a purchase-history split like this to hold incentives back from people who have already bought. The general principle: if you offer a discount anywhere in the flow, offer it only on the path for people who haven’t bought before.

Should a cart abandonment email include a discount?

Not by default. A discount in the first cart email trains regular customers to add to cart and wait. If you use one, put it in the second or third message, only on the never-purchased path, and only after the purchase filter has had a chance to remove people who came back on their own.

There’s a practical case for a small, time-limited incentive where your data shows a specific barrier, such as first-time shoppers stalling on delivery cost. In that case the incentive should address the barrier. Free delivery on the abandoned order speaks to the real objection more directly than a percentage off.

Smart Sending and SMS

Smart Sending skips a marketing message if the profile received one recently, 16 hours by default for email and 24 hours for SMS, and skipped messages aren’t rescheduled. For a cart reminder, that can mean a shopper who received a morning campaign never gets the reminder at all.

There’s no single right setting. Leaving it on protects against stacking a campaign and a cart email within an hour. Turning it off for the first cart message makes sure the reminder always arrives while intent is fresh. Decide deliberately, write the decision down, and check the flow’s skipped counts after a couple of weeks.

If you use SMS, put it in the same flow rather than a separate SMS flow, so the two channels respect each other’s timing. A common pattern is the first reminder by email and a later SMS only on the path for profiles with SMS consent and a higher cart value. Email and SMS Smart Sending windows are independent, so an email doesn’t block an SMS or the other way around.

A scenario: the flow that wasn’t there

A store’s flow list shows an “Abandoned Cart” flow, live since launch, with reasonable results. The team assumes cart abandonment is covered. During an audit, the trigger turns out to be Checkout Started, and Added to Cart has never been tracked because behavioral events were left off in the Shopify settings.

Every shopper who added to cart and left before checkout, usually a larger group than checkout abandoners, has been getting nothing. A new email won’t solve it. The fix is turning on tracking, testing it, building a separate Added to Cart flow with the right filters, and leaving the existing flow in place as the checkout flow it always was.

Measuring cart abandonment

Look at placed order rate among people who entered the flow, the skip counts for each filter, and unsubscribe rates by message. The skip counts are the overlap test: if almost nobody is ever skipped for Started Checkout, either your shoppers rarely move from cart to checkout within the delay, or the filter isn’t set up the way you think.

Klaviyo’s attributed revenue is useful for comparing messages and versions, but it credits the flow for orders placed within the attribution window after an open or click, including orders the shopper would have placed anyway. If you can, hold out a small random group using a random sample path in a multi-branch split and compare their order rate with recipients’.

For a full review of how your abandonment flows interact with welcome, post-purchase and campaigns, the Klaviyo audit checklist walks through the account step by step.

What’s the difference between abandoned cart and abandoned checkout in Klaviyo?

Abandoned cart is triggered by Added to Cart and reaches shoppers who added a product but didn’t start checkout. Abandoned checkout is triggered by Started Checkout (Checkout Started on Shopify) and reaches shoppers who began checkout but didn’t order. Run them as separate flows.

Why isn’t Added to Cart showing in my Klaviyo metrics?

On Shopify, check that the Klaviyo app embed is enabled and that Track behavioral events is checked in the Shopify integration settings. On other platforms, check whether your integration sends the event or needs a snippet. Then test from every add-to-cart button on the site.

Which filters should a Klaviyo cart abandonment flow use?

Placed Order zero times since starting this flow, Started Checkout zero times since starting this flow, and a “has not been in this flow” re-entry limit. Add Buy with Prime versions if you use it.

How long should I wait before the first cart abandonment email?

A few hours is a common starting point. Make it at least an hour and fifteen minutes if your store’s order data syncs to Klaviyo hourly, so recent buyers aren’t sent a reminder before their order arrives.

Are your flows working as one system?

The CRM Health Check takes a few minutes and shows whether your data, lifecycle stages, automation and reporting are pulling in the same direction.