Skip to main content
Growth

Abandoned Cart Flow for Shopify: Structure and Timing

How to build a Shopify abandoned cart flow in Klaviyo: Started Checkout vs Added to Cart, the purchase split and suppression logic, and a rule for timing.

November 3, 2026 16 min read Talha Butt.
Share

Abandoned Cart Flow for Shopify: Structure and Timing

Quick answer: Build the flow on Klaviyo’s Started Checkout trigger first, because it fires for shoppers who have already given you their contact details. Klaviyo’s pre-built flow waits 4 hours before the first email and its guidance is 2 to 4 hours, then a second email 20 to 48 hours later, with a “Placed Order zero times since starting this flow” filter so buyers stop getting reminders (Klaviyo Help Center, as at 30 October 2026). Turn off Shopify’s own abandoned checkout emails so people do not get two. Treat the timing as something to measure on your own checkouts, not a number to copy.

Search for abandoned cart email timing and you will find guides that say one hour, four hours or 24 hours, and almost none show where the number comes from. They are not all wrong. They answer different questions, because “abandoned cart” is not one event.

This guide covers what triggers a Klaviyo abandoned cart flow on Shopify, how to structure it, how to stop buyers receiving reminders, and how to choose a first-email delay from your own numbers. Every platform fact comes from Klaviyo’s or Shopify’s own help documentation, and the consent note from the ACMA, all read at the end of October 2026. Settings change, so check the live pages before relying on a detail.

One thing up front: Prism3 does not run email or Klaviyo for clients. Our work is conversion after the click, organic and AI-search visibility, and measurement. I am writing this because a cart flow is one of the places a Shopify founder’s cost per customer gets decided, and it is only as good as the checkout it brings people back to.

Why the timing advice you find online disagrees

There are three honest causes.

Different triggers. A flow triggered by Added to Cart and one triggered by Started Checkout measure different moments, so “one hour after abandonment” means different things in each.

Different tools. Shopify treats a checkout as abandoned once it has stayed incomplete for more than ten minutes after the customer gave their email address, and lets you choose a “Send after” period (Shopify Help Center, abandoned checkouts). Klaviyo’s pre-built abandoned cart flows include a 4-hour time delay before the first message (Klaviyo Help Center, as at 30 October 2026).

No published data underneath. Klaviyo’s own guidance is a range: first message 2 to 4 hours after someone starts a checkout, a second email 20 to 48 hours later, and 2 to 3 messages in total. That is guidance, not a measured benchmark. Vendor blogs often quote a precise recovery rate for a given delay. I could not tie any of them to a primary source, so I am not repeating them.

So the useful question is not “what is the right delay?” It is “which trigger am I using, and when do people come back by themselves?”

Started Checkout vs Added to Cart: what each trigger actually means

Klaviyo’s Help Center describes the two metrics like this:

Started CheckoutAdded to Cart
What fires itThe shopper has filled in contact information and moved on to the shipping step, or the page has been reloaded, depending on the integrationAn item is added to the cart
Who can enterAnyone who gave contact details at checkout (contact information is needed to create a profile)Identified shoppers only: Klaviyo says the flow relies on Added to Cart events from identified shoppers
Setup on ShopifyThe default trigger of most pre-built abandoned cart flowsRequires the Klaviyo app embed and the integration’s Track behavioral events setting turned on
Buying intent (Klaviyo’s view)Stronger: a shopper who starts checkout has shown more intent than one who only added an itemReaches casual shoppers who have not started checkout

Two practical points follow from that table.

Started Checkout is the narrower, higher-intent group. Someone who typed contact details into checkout told you who they are and that they are close to buying. Klaviyo’s article says most pre-built abandoned cart flows trigger on it.

Added to Cart is a wider net with a catch. Klaviyo says the Added to Cart flow depends on identified shoppers, so it only reaches people Klaviyo can already tie to a profile. That is likely a narrower group than “everyone who added something to their cart” (my reading of Klaviyo’s wording, so check it against your own numbers). Klaviyo’s setup article also says to test that Added to Cart tracking syncs before you build the flow.

Shopify has a third definition, for its own recovery email: a checkout incomplete for more than ten minutes after the customer entered their email. Its help page also lists cases where no recovery email goes out, including a phone number entered instead of an email, a payment processing error, and a payment Shopify Payments blocked as high risk. Recovery emails apply to the Online Store and Buy Button channels only.

A decision rule for which trigger to use

  • If you are building one flow, build Started Checkout. It is Klaviyo’s default and reaches people who have already identified themselves.
  • Add an Added to Cart flow second, and only after you have confirmed the Added to Cart metric is recording. Klaviyo recommends running both as separate flows because the two audiences differ.
  • Never run both without the overlap filter (covered below). Without it, one shopper can sit in both flows and receive two sequences about the same cart.

Neither trigger is “better”. One says “this person was about to pay”, the other “this person was thinking about it”, so write them differently: the first can say the checkout is waiting, the second should be a helpful nudge about the product.

First, stop Shopify’s version from running alongside it

Before you switch on a Klaviyo abandoned cart flow, decide who is sending. If Shopify’s own abandoned checkout automation is still on, your customer can get a Shopify email and a Klaviyo flow for the same checkout.

Klaviyo’s help article says to turn off Shopify’s abandoned checkout automation when you move the job to Klaviyo, to avoid sending twice, and to do it right before you enable the Klaviyo flow to avoid a gap in sending. Shopify’s help pages put it at Apps, Messaging, Automations: open the automation, choose “Turn off automation” and confirm.

Three details from the Shopify documentation:

  • Turning off an automation cancels any workflow in a wait stage, so shoppers waiting for a Shopify email will not receive it.
  • You cannot disable or expire an abandoned checkout link once it has been sent, so a link already in someone’s inbox still works.
  • By default, Shopify’s marketing automations send only to customers subscribed to marketing, and for the recovery email you can change that to all customers. If you used that override, check how consent is handled in Klaviyo (see the consent note near the end).

The structure of the flow

Here is a plain structure for a Started Checkout flow. The timings in the table are an illustrative skeleton built from Klaviyo’s documented defaults and ranges, not a recommendation that fits every store.

StepTiming (illustrative)What it does
Trigger: Started CheckoutImmediatelyPuts the shopper in the flow
Time delay4 hours (Klaviyo’s pre-built default)Gives people time to finish on their own
Email 1After the delayReminder: the items, an image, a link back to the checkout, delivery and returns answers. No coupon, which Klaviyo advises against in the first email
Time delay20 to 48 hours (Klaviyo’s range for the second email)Gap before the next message
Email 2After the delayAddresses the likely objection: delivery time, returns, reviews, a question you can answer
Optional split and Email 3Your call: Klaviyo gives no timing for a third messageFinal message; any incentive belongs here, or only for people who have never purchased (Klaviyo’s wording)

Klaviyo’s own example flow uses a 2-hour delay before the first email and a 20-hour delay before the second, and labels them as an example, so treat them that way.

Some notes on the structure:

The delay goes straight after the trigger. Klaviyo says to put a time delay immediately after the flow trigger, so the shopper can finish on their own first.

Two or three messages. Klaviyo says 2 to 3 messages leads to optimal performance, and gives no timing for a third. More messages is not automatically more orders, so I would start at two and add a third only if your numbers justify it.

Make the first email about the items left behind, and the real hesitation. Klaviyo says the dynamic product block (image, title, quantity, price) should be the core of the email, that it is best practice to include only the products the customer abandoned, and that its pre-built emails carry a Return to Cart button. Beyond the item, answer what stops a purchase at checkout: when it arrives, what returns cost, whether the payment methods work.

Incentives are a margin decision, not a default. Klaviyo says it does not encourage a coupon in the first email, and suggests holding it until the final email or offering it only to people who have never purchased. Anyone who would have come back and paid full price on their own now gets a discount, and the worked example below shows how many people that can be.

The purchase split and suppression logic

This part decides whether the flow looks professional or careless. Someone who bought an hour after the first email and then gets a “still thinking it over?” message can see your flow is not connected to your store.

Klaviyo’s documentation separates three tools, and mixing them up is how reminders end up going to buyers.

Trigger filters, profile filters and splits

  • Trigger filters look only at the event that started the flow. Klaviyo says metric-based trigger filters are checked only when someone first enters the flow. They do not look at anything the person does afterwards, so they cannot stop a message because the person bought later.
  • Profile filters look at the whole person, including actions they have taken. Klaviyo says they are checked when someone enters the flow and again before flow actions such as sending an email. If someone fails a profile filter at entry, they do not enter. If they fail it before an action, that action is skipped, but they can move to the next step, where the filter is checked again.
  • Splits do not remove anyone. They route people down different paths. Klaviyo’s flow branching documentation says that, unlike flow filters, splits do not filter people out: everyone continues through the flow, just down different paths. That is why a split is for personalising and a filter is for excluding.

So to stop buyers receiving reminders you need a profile filter, because it is checked before each email. Klaviyo’s abandoned cart guide uses “Placed Order zero times since starting this flow” and says it prevents further emails if someone orders after the first email.

Where a split earns its place

A split is the right tool when different people should get different messages, not when some should get none. Klaviyo’s guidance uses it for incentives: a multi-branch split with a path for people who have never purchased, so a first-time shopper sees an offer and a repeat customer does not. Its multi-branch documentation also shows paths based on order value, product category and customer tier.

A note on split types, as at 30 October 2026: Klaviyo has introduced multi-branch splits, which combine the conditional and trigger splits into one component with up to 20 paths (19 you configure plus “Everyone else”). Existing splits keep working and will be migrated later, so if your screen differs from an older tutorial, that is why.

The suppression checklist

For each exclusion, here is where it lives and why.

Who should not get the messageToolDetail
Anyone who has bought since entering the flowProfile filterPlaced Order zero times since starting this flow. Checked before each email
Checkout starters, in the Added to Cart flowProfile filterStarted Checkout zero times since starting this flow, with Placed Order zero times, joined with AND. They belong in the other flow
Someone who received this flow recentlyRe-entry setting or the “Has not been in this flow” filterKlaviyo describes the filter as blocking re-entry within hours, days or weeks that you set
Someone emailed recently by anything elseSmart SendingCheck the settings below
People who should not get marketing emailConsent and unsubscribe handlingSee the consent note at the end

A few of those need a second look.

Re-entry. Klaviyo says a profile may meet the trigger conditions multiple times, and that re-entry criteria limit new entries but do not skip messages already scheduled inside an existing entry. Its article does not state the default for metric-triggered flows, so check the setting in the flow builder and choose a window deliberately.

Smart Sending. Klaviyo’s default Smart Sending window for email is 16 hours (24 hours for SMS), and it is enabled for flow messages in many of its pre-built flows. It skips a message when the person recently received a message on the same channel, and Klaviyo says messages skipped because of Smart Sending are not rescheduled automatically. The practical risk, in principle: you send a campaign at noon, someone starts a checkout at 1 pm, and with Smart Sending on for that message the cart email due that afternoon falls inside the 16-hour window and is skipped. If your cart emails reach fewer people than your checkout count suggests, check this first. Klaviyo lets you turn Smart Sending off for individual flow messages where it is enabled; whether you should depends on how often you email.

The Added to Cart overlap. This is the overlap that can cause double sends. If you run both flows, the Added to Cart flow needs the filters in the table, so someone who moves on to checkout leaves that flow and is handled by the other. Klaviyo’s setup article joins “Checkout Started (Shopify)” and “Placed Order (Shopify)”, each zero times since starting this flow, with AND. It spells the metric both “Checkout Started” and “Started Checkout”; pick the Shopify metric your account shows.

A decision rule for the first-email delay

Set the first-email delay at the point where your own checkout-to-order curve flattens, not before it. Work out how long the people who started a checkout and eventually bought took to buy. A delay near the point where that curve flattens means your first email goes mostly to people who really did leave. Send earlier and you are emailing people who were about to buy anyway.

Worked example (illustrative numbers)

The figures below are invented to show the arithmetic. They are not a benchmark and not from any store. Your curve will look different, and finding it is the whole exercise.

Say a store has 1,000 Started Checkout events in a month. Imagine that, without any reminder, these shoppers go on to buy as follows: 250 within 30 minutes, 120 more between 30 minutes and 2 hours, 80 more between 2 and 4 hours, and 30 more between 4 and 24 hours.

First email delayAlready bought (skipped by the Placed Order filter)Emailed (of whom would have bought anyway)
30 minutes250750 (230)
2 hours370630 (110)
4 hours450550 (30)
24 hours480520 (0)

What the table shows:

  • A short delay emails more people. At 30 minutes you send 750 emails, at 4 hours 550. That is 200 fewer messages with the same flow.
  • A short delay also emails people who would have bought anyway. In this made-up example, 230 of the 750 people emailed at 30 minutes would have bought without the email. If the email carries a coupon, you have just discounted them. If your platform credits the flow with any order placed after a click or open, those people may also be counted as “recovered”.
  • A long delay is not free either. Past the point where the curve has flattened, you are waiting while the people who really did leave go cold. In this example the 24-hour row emails nobody who would have bought anyway, but the 520 people who did leave heard nothing for a day.

So the shape matters more than any single number. If the curve flattens early, a short delay is fine. If shoppers take a day to come back, a longer delay makes more sense. Klaviyo’s 2-to-4 hour guidance and 4-hour default are a starting point if you have no data, not a measured optimum for your store.

How to find your own curve

You do not need a data team:

  1. Pull Started Checkout and Placed Order events for a recent window of at least a month, from Klaviyo or from Shopify’s Abandoned checkouts list and orders. Shopify says abandoned checkouts older than three months are deleted automatically, so export what you need.
  2. Match checkouts to orders by email in a spreadsheet and bucket the gap: under 30 minutes, 30 minutes to 2 hours, 2 to 4 hours, 4 to 24 hours, over 24 hours.
  3. Prefer a period when no reminder was running, so a reminder does not distort the answer. If Shopify’s own recovery email was on, say so when you read the result.

If your analytics and store numbers disagree, sort that out first: our guide to GA4 versus Shopify Analytics explains why they differ.

Testing without fooling yourself

A delay test is only worth running if you have enough checkouts to see a difference, which a smaller store may not. Our piece on A/B testing with low traffic covers what small samples can and cannot tell you. To learn whether the flow adds orders at all, the cleanest design is a holdout: a small random share of shoppers who get no reminder, compared with those who do. Klaviyo’s multi-branch split documentation shows a random sample as a path condition, which is one way to build it. Compare orders per started checkout, not the revenue the flow reports for itself.

Build checklist before you switch it on

Run through this with a test checkout, not a real customer.

  1. Shopify’s abandoned checkout automation is off, switched off right before you enable the Klaviyo flow.
  2. The trigger metric is recording. For Added to Cart, confirm Track behavioral events is on and the metric shows events.
  3. A delay sits directly after the trigger, set deliberately.
  4. The Placed Order exclusion is a profile filter on the flow, and the overlap filters are on the Added to Cart flow if you run both.
  5. Re-entry and Smart Sending are set on purpose, not left to defaults.
  6. Place a test order with a throwaway address, then confirm that profile stops receiving messages once it has purchased.
  7. Click the “return to checkout” link on a phone and confirm the cart is intact and any discount applies.
  8. Confirm every message shows Live and any alerts on Draft messages are resolved (Klaviyo’s setup article says to check).

What an abandoned cart flow cannot fix

A cart flow brings back people who were willing to buy and got interrupted. It does not change why they hesitated. If a large share of started checkouts never complete, an email is a bandage on a checkout problem. Before spending more time on the flow, look at what the shopper met at checkout:

  • A cost that appeared late. Shipping, fees or taxes that first appear at checkout are worth checking: see our guide on surprise checkout costs.
  • A mobile checkout that is hard to complete. Our mobile conversion guide lists what to look at first.
  • A leak you cannot see. A checkout leakage audit walks through finding the step where people drop out, using your own data.
  • A baseline. If you do not know your starting conversion rate, you cannot tell whether the flow, or anything else, changed it.

For the bigger picture of how email, paid, organic and conversion work fit together, see the DTC growth system overview. If acquisition cost is the worry, read growing Shopify revenue without more ad spend.

This is general information, not legal advice. In Australia, the Spam Act 2003 sets rules for marketing messages, and the Australian Communications and Media Authority (ACMA) says that if you plan to send marketing messages or emails, you must first have consent from the person who will receive them, and that this applies even when someone else sends them for you. ACMA says every commercial message must carry an unsubscribe option that works for at least 30 days, and that unsubscribe requests must be honoured within 5 working days. It also says that you must be able to prove consent.

I am not going to say whether a particular cart reminder counts as a marketing message or whether your wording is compliant. That depends on the content and the facts, and it is a question for a lawyer or the ACMA directly. Check how your checkout collects consent, what your Klaviyo flow does with people who have not subscribed, and whether you set Shopify’s audience to “all customers” before moving the flow. If you sell to the US, check the rules there separately. The ACMA’s “Avoid sending spam” page is the place to start for Australia.

Key takeaways

  • “Abandoned cart” covers at least three events: Added to Cart, Started Checkout, and Shopify’s own abandoned checkout (incomplete for more than ten minutes after the email was entered). Pick the trigger on purpose.
  • Start with Started Checkout. Add an Added to Cart flow later, only once the metric is confirmed, and with overlap filters.
  • Turn off Shopify’s abandoned checkout emails when Klaviyo takes over, right before you switch the flow on.
  • Klaviyo’s documented defaults and guidance (as at 30 October 2026): a 4-hour delay in pre-built flows, a first message 2 to 4 hours after checkout starts, a second 20 to 48 hours later, and 2 to 3 messages in total.
  • Use a profile filter (Placed Order zero times since starting this flow) to stop buyers receiving reminders. Trigger filters are checked only at entry, and splits route people rather than removing them.
  • Set the first-email delay where your own checkout-to-order curve flattens, and treat any “best delay” quoted without data as a guess.
  • If lots of checkouts never complete, fix the checkout. The email can only bring back people who still want to buy.

FAQs

How long should I wait before sending the first abandoned cart email?

Klaviyo’s pre-built flows use a 4-hour delay, and its guidance is 2 to 4 hours after someone starts a checkout (Klaviyo Help Center, as at 30 October 2026). Use that as a starting point, then set the delay near the point where your own buyers’ curve flattens. Klaviyo also notes that integrations which sync slowly may need a delay of at least 1 hour and 15 minutes.

Should I use the Started Checkout or the Added to Cart trigger?

Start with Started Checkout: it is the default for most pre-built abandoned cart flows. Added to Cart works as a separate second flow, but it only reaches identified shoppers, needs Track behavioral events on, and needs a filter that removes anyone who starts checkout.

How many abandoned cart emails should the flow have?

Klaviyo says 2 to 3 messages leads to optimal performance. Start with two and add a third only if it is clearly adding orders rather than unsubscribes.

Do I need to turn off Shopify’s abandoned checkout emails if I use Klaviyo?

Yes, if you do not want customers to get both. Klaviyo’s help article says to turn off Shopify’s automation to avoid sending the emails twice, right before enabling the Klaviyo flow so there is no gap. In Shopify admin: Apps, Messaging, Automations, open the automation, then “Turn off automation”.

Why did someone who bought still get a reminder?

Three things to check. The flow has no profile filter for Placed Order zero times since starting this flow, so nothing is checked before each email. The purchase was recorded under a different metric or integration than the one the filter uses (for example, a separate checkout or a Buy with Prime order, which Klaviyo says needs its own filters in the Added to Cart flow). Or the person is in a second flow, such as an Added to Cart flow without the overlap filter. Place a test order to see which.

Should the first abandoned cart email include a discount?

Klaviyo says it does not encourage a coupon in the first email, and suggests holding it until the final email or offering it only to people who have never purchased. Some shoppers would have come back on their own, so a first-email coupon can discount sales you were already going to make.

This is general information, not legal advice. ACMA says you need consent before sending marketing messages and must include a working unsubscribe. Whether a given reminder counts as a marketing message depends on its content, so ask a lawyer or ACMA.

Keep reading

Want to see where your checkout loses buyers?

A flow can follow up with shoppers who left checkout; it does not tell you why they left. Book a free 30-minute diagnostic: we look at where your store loses buyers after the click, using your own numbers, and tell you what to fix first. We do not run ads or email. No pitch. No email gate.

If the leaks turn out to be in checkout and on mobile, our Shopify CRO service is the part of our work that looks into them.

Free 30-min diagnostic

Seen enough?
Book a free diagnostic.

We'll look at where your store loses buyers after the click and what to fix first. No pitch. No email gate. 30 minutes.

More from Prism3