Browse vs Cart vs Checkout Abandonment on Shopify
Browse, cart and checkout abandonment flows in Klaviyo on Shopify: what triggers each, who can enter, and the filters that stop three flows emailing one person.
Quick answer: In Klaviyo, browse abandonment starts from a Viewed Product event, cart abandonment from Added to Cart, and checkout abandonment from Started Checkout (also written Checkout Started). Each is a later, stronger signal than the last. Browse and cart only work for visitors Klaviyo has already identified, such as someone who clicked a Klaviyo email or submitted a form, so an anonymous first-time visitor does not qualify. Build checkout first, then cart, then browse, and give each earlier-stage flow a filter that removes anyone who has moved further down the funnel.
Browse is the lighter nudge and cart is the firmer one. That is true, and it is not what goes wrong in a real Klaviyo account. What goes wrong is this. Three flows are live. A shopper looks at a product, adds it to the cart, starts a checkout, and gets a browse email, a cart email and a checkout email in one afternoon. Or the reverse: the shopper closest to buying gets nothing, because a lower-intent email went first and Smart Sending skipped the better one.
This guide covers what each trigger means, who can actually enter each flow, the order I would build them in, and the exclusion logic that stops one person being emailed three times. Every platform fact comes from Klaviyo’s, Shopify’s or the ACMA’s own pages, read on 31 October 2026. Klaviyo changes its wording often, so check the live page before relying on a detail.
Prism3 does not run email or Klaviyo for clients. Our work is conversion after the click, organic and AI-search visibility, and measurement. These flows still help decide a Shopify store’s cost per customer, and they only work as well as the tracking and the store behind them.
Three flows, three different moments
“Abandonment” covers three separate events in Klaviyo, and each one needs different things switched on.
| Flow | Trigger event | Who can enter and what must be on |
|---|---|---|
| Browse abandonment | Viewed Product | An identified visitor viewing a product page. On Shopify, Viewed Product comes from Klaviyo’s app embed |
| Cart abandonment (Added to Cart) | Added to Cart | An identified shopper adding an item. Needs the app embed and the “Track behavioral events” setting |
| Checkout abandonment (Started Checkout) | Started Checkout, also written Checkout Started | Anyone who gave a valid email or phone number at checkout |
Where the table comes from:
- Browse. Klaviyo’s browse abandonment article says the flow needs Viewed Product tracking, which on Shopify comes from the app embed. Klaviyo’s Shopify data reference (updated 18 November 2025) describes the event as recorded when an identified user views a product.
- Cart. Klaviyo’s guide to the Added to Cart flow (updated 25 March 2026) says it is triggered by Shopify’s Added to Cart event, is aimed at casual shoppers who have not started checkout, needs the app embed and Track behavioral events switched on, and depends on events from identified shoppers.
- Checkout. Klaviyo’s abandoned cart guide (updated 7 October 2026) says Started Checkout fires once the customer has filled out their contact information and proceeded to the shipping page (the exact moment depends on the integration), and that most pre-built flows use it. Klaviyo’s Shopify data reference adds that a Checkout Started event can be recorded once Shopify sends checkout information with a valid email address or phone number.
These are three different gates, not one staircase. The checkout gate is the widest, because the shopper typed their own contact details into your checkout. The other two are only open to people Klaviyo already knew before they arrived.
Klaviyo names the checkout metric two ways
Klaviyo’s articles call the checkout event “Started Checkout” in some places and “Checkout Started” in others. Its Added to Cart setup article uses “Checkout Started (Shopify)” in the profile filter, and its browse article lists “Started Checkout”. This matters for the exclusions below: a filter built on a metric name your account does not record will not match anyone as intended. Open Analytics, then Metrics, and use the exact name your integration shows.
Who can actually enter: the part most posts skip
Comparisons say browse abandonment reaches “known” visitors. Few say who counts as known, and the answer changes how much to expect from the flow.
What makes a browser known
Klaviyo’s web tracking article says it plainly: “A visit or interaction with your site alone does not make a browser known.” A browser becomes identifiable when:
- the person clicked a Klaviyo email or SMS link to your site at some point;
- the person subscribed or opted in through a Klaviyo form;
- the person submitted an email address or phone number through a Klaviyo form (buttons that only open a URL or close the form do not count);
- for stores with custom tracking, the person logged in. Klaviyo says this is not included with native ecommerce integrations.
For Shopify, Klaviyo’s onsite tracking article (updated 25 March 2026) lists a slightly different set: submitting a Klaviyo or Shopify form, entering details at checkout, or logging in to a Shop or customer account. The Klaviyo form route depends on syncing profiles from Klaviyo to Shopify.
Two things follow.
Known does not mean subscribed. Klaviyo ties identification to actions such as a click-through or a form submission, not to a subscription status. And a subscriber browsing from a fresh browser is not known until something identifies that browser.
Anonymous visitors cannot be emailed. Klaviyo says that if anonymous visitor tracking is on, it stores onsite events in the visitor’s browser and adds them to the profile after the visitor is identified. That fills in history later. The same article describes Viewed Product as recorded when an identifiable person views a product page, and a flow cannot email a person it cannot name.
The checkout flow is different. The shopper tells you who they are inside your own checkout, so the event arrives tied to an email or phone number. That makes checkout the most dependable of the three, and browse the least predictable.
Why the known group stays small
Identification lives in a cookie, and browsers shorten its life. Klaviyo’s cookie article (updated 3 April 2026) says the identifying cookie, __kla_id, is set to expire after two years, but that browsers can cut that short. As at 31 October 2026 it lists:
- Safari: script-set data is deleted after 7 days of browser use without interaction with the site.
- Brave: JavaScript-set cookies are capped at a 7-day expiry.
- Firefox: storage for known trackers is purged daily unless the visitor has interacted with the site in the last 45 days.
- Chrome: 400 days.
When the cookie expires or the visitor clears cookies, Klaviyo says the visitor is anonymous again until something re-identifies them.
In practice, someone who clicked your welcome email on an iPhone in September may be anonymous again in October.
Klaviyo also says that, based on your Customer Privacy settings in Shopify, it may not track onsite events for visitors in the EU, EEA, UK and Switzerland without their consent. If you sell to those regions from Australia, those visitors may be missing from your browse and cart audiences by design.
Identified is not the same as consented
Identification is a tracking fact. Consent is a permission fact. The two are separate.
Klaviyo’s consent article (updated 29 October 2026) says a profile with the status “never subscribed”, meaning it has neither subscribed nor opted out of email marketing, can still receive emails if it is not suppressed, and it gives an abandoned cart flow email as the example. The same article tells you to exercise caution when contacting those profiles and recommends emailing only profiles with express consent. Klaviyo’s article on explicit and implicit consent says to check the applicable consent rules before emailing never-subscribed contacts, and states that its information is not legal advice.
In Australia, the ACMA’s page on avoiding spam says that if you plan to send marketing emails or messages, you must first have consent from the person who will receive them. Consent can be express or inferred, and the ACMA says it is up to you to prove you have it. On inferred consent, the ACMA says it is not as reliable as express consent and does not cover sending messages after someone has just bought something from your business. Its fact sheet on email and SMS unsubscribe rules says an unsubscribe request must be actioned within five working days.
This is general information, not legal advice. I am not going to say whether a particular browse email counts as marketing or whether your wording is compliant; that depends on the content and the facts, so ask a lawyer or the ACMA. A flow that can email never-subscribed people should be a decision you make on purpose, not a default you discover later. For SMS, Klaviyo says consent is collected separately and email consent does not permit texting; our guide to SMS marketing consent in Australia covers that side.
Measure your own reach instead of borrowing a rate
Vendor blogs quote a share of product-page viewers that Klaviyo can identify, and they disagree. I could not trace any of those figures to Klaviyo’s documentation, which publishes no such rate, so none appears here. You can get a rough local answer in ten minutes:
- In Klaviyo, go to Analytics, then Metrics, and open Viewed Product. Note the number of unique people over the last 30 days.
- In GA4 or Shopify Analytics, note the number of sessions that viewed a product page over the same 30 days.
- Divide the first by the second.
The units differ (people against sessions), so treat the result as a rough order of magnitude, not a rate. Illustrative only: if GA4 showed 20,000 product-page sessions and Klaviyo showed 1,000 people with a Viewed Product event, the ratio would be about 5%. It tells you how big your browse audience is before you spend a week designing emails for it.
If the two tools disagree on something they both count, such as orders, sort that out first. Our guide to email attribution in Klaviyo, GA4 and Shopify explains why the revenue each credits to email will not match.
Which flow to build first, and when to skip browse
Klaviyo’s advice is to run Added to Cart and Started Checkout as separate flows, because shoppers who start checkout usually show stronger purchase intent and may need different timing or messaging. It says nothing about the order to build them in, so what follows is my judgement.
1. Build checkout first. It has the most dependable audience, the strongest intent and the shortest path to an order. Our guide to the abandoned cart flow on Shopify covers timing and structure in full.
2. Add Added to Cart second, once the metric is confirmed. Klaviyo says to test Added to Cart tracking before you build, and the flow needs Track behavioral events switched on. If the metric is not recording, the flow is silent and you will not know why.
3. Add browse last, and decide whether it earns its place. Postpone it if:
- your known audience is small (check the ratio from the section above);
- Viewed Product is not recording, or you changed theme and have not switched the app embed on again (Klaviyo says a new theme needs that);
- the checkout and cart flows are not yet exclusion-proofed.
Build it if you have a real audience of known, recent visitors who look at several products before buying, and you can write something lighter than a cart reminder. Klaviyo’s browse article says browse messages should be a lighter touchpoint than cart messages and recommends a first delay of at least one hour. It also suggests audience cuts: zero orders over all time (first-time browsers, possibly with an offer), at least one order (returning customers, typically without a discount), or a minimum number of product views since the flow started.
If you run a welcome flow, note that signing up through a Klaviyo form identifies the browser. A new subscriber can enter browse while the welcome series is still running. The browse article’s zero-flow-emails-in-the-last-X-days audience option is one way to keep them from getting both.
The exclusion logic that stops three flows emailing one person
Klaviyo’s help pages give filter lists for each flow. Side by side, a pattern shows.
| Flow | Klaviyo’s timing guidance | Profile filters Klaviyo lists |
|---|---|---|
| Browse | First delay of at least one hour | Placed Order zero times since starting this flow; Started Checkout zero times since starting this flow; has not been in this flow in the last 30 days (Klaviyo’s example); Added to Cart zero times since starting this flow, if you run an Added to Cart flow |
| Added to Cart | The template includes delays; the article gives no values | Checkout Started (Shopify) zero times and Placed Order (Shopify) zero times, both since starting this flow, joined with AND |
| Started Checkout | First message 2 to 4 hours after checkout starts, second 20 to 48 hours later; the pre-built flow uses a 4-hour first delay | Placed Order zero times since starting this flow; has not been in this flow in the last X hours, days or weeks |
(Sources: Klaviyo’s browse abandonment article, updated 7 October 2026; its Added to Cart flow article, updated 25 March 2026; its abandoned cart guide, updated 7 October 2026.)
The rule underneath is simple. A later-stage event cancels an earlier-stage flow. Browse excludes people who add to cart, start checkout or order. Cart excludes people who start checkout or order. Checkout excludes people who order. Each flow only keeps the people the later flows have not claimed.
Why these are profile filters and not trigger filters
Klaviyo’s trigger and filter article (updated 7 October 2026) separates two things that look alike:
- Trigger filters narrow the triggering event itself. For metric-triggered flows, they are checked only when the person first enters.
- Profile filters check a person’s attributes or history. They are checked on entry and again before flow actions. If someone fails before a message, that message is skipped, but they move on to the next step, where they are checked again.
Klaviyo’s abandoned cart guide adds that profile filters are rechecked before each message, which is why “Placed Order zero times since starting this flow” stops a reminder reaching someone who bought after the first one. Put your exclusions in profile filters, not trigger filters, or they are checked once on the way in and never again. Additional filters apply to a single message only, so they are no substitute for flow-level exclusion.
One shopper, one afternoon
One known shopper, with the exclusion filters in place. The clock times and delays are illustrative; only the 1-hour minimum for browse and the 2 to 4 hour guidance for checkout come from Klaviyo.
| Time | What the shopper does | What happens with the filters on |
|---|---|---|
| 10:00 | Views a product | Enters browse. First email due 11:00 (1-hour delay) |
| 10:20 | Adds it to the cart | Enters the Added to Cart flow. Browse now fails its “Added to Cart zero times since starting this flow” check, so the 11:00 email is skipped |
| 10:40 | Starts checkout | Enters the checkout flow. The Added to Cart flow now fails its “Checkout Started zero times” check, so its email is skipped |
| 14:40 | Has not bought | The checkout flow’s first email goes out (4-hour delay). One email, the highest-intent one |
| 15:30 | Buys | ”Placed Order zero times” fails before the next message, so no further reminder goes out |
Without the filters, the same shopper gets a browse email at 11:00, a cart email later and a checkout email at 14:40: three emails for one product.
The hole: “since starting this flow” only looks forward
The filters above all say “since starting this flow”. By the plain meaning of those words, they count what happens after the person enters that flow. They do not look at what happened before.
That leaves a gap. Suppose a shopper starts a checkout at 10:00 and leaves. At 10:30 they open a product page and enter the browse flow. When the browse email comes due at 11:30, “Started Checkout zero times since starting this flow” passes, because the checkout began before the browse flow did. The shopper is waiting in the checkout flow and also gets the browse email.
The fix is a second condition that looks backwards. Klaviyo’s browse article uses “over all time” for orders and “in the last X days” for flow emails, so time frames other than “since starting this flow” appear in Klaviyo’s own examples. Alongside “Started Checkout zero times since starting this flow”, try adding “Started Checkout zero times in the last 24 hours” (pick your own window) to the browse flow, and the same pairing for Added to Cart. Check that your builder offers a time frame for the checkout metric. This is my reading of how the filters behave, not a Klaviyo-documented fix, so test it with a profile before you trust it (test steps below).
Smart Sending is a backstop, and it can skip the wrong email
Smart Sending is Klaviyo’s cap on marketing messages. Klaviyo’s article (updated 22 October 2026) gives the email default as 16 hours, says it applies to flow and campaign messages, says many pre-built flows have it on, and says a message skipped because of Smart Sending is not rescheduled automatically. It applies only to marketing messages.
Now follow the order of events. The browse email goes out at 11:00. The shopper starts checkout at 11:30, after it was sent, so no filter can pull it back. The checkout reminder is due at 15:30, inside the 16-hour window. If Smart Sending is on for that message, it is skipped and not rescheduled. The same thing happens in the backwards case above, where the browse email lands first and the checkout reminder is the one skipped. The highest-intent shopper gets the lightest email and misses the one that mattered.
Smart Sending is first come, first served. You want the stronger-intent flow to win. There are two options, and each has a cost:
- Leave Smart Sending on everywhere and accept that a shopper who moves up the funnel just after a browse email may miss their checkout reminder.
- Turn it off for the first message of the checkout flow only, which Klaviyo allows per message (clear “Skip recently emailed profiles”), and accept that a shopper might get two emails within a day.
I lean towards the second, because the checkout reminder carries the most value. That is a judgement for your store, not a rule.
The other flows, and Shopify’s own email
Welcome series, post-purchase flows and campaigns all compete for the same inbox. Our guide to segments in Klaviyo for DTC stores helps you build a “recently emailed” or “recent purchaser” audience that every flow can share.
One more sender is easy to forget. Shopify can email abandoned checkouts itself: a checkout counts as abandoned when it stays incomplete for more than ten minutes after the customer has given their email, and the recovery email applies to the Online Store and Buy Button channels (Shopify Help Center, abandoned checkouts). Klaviyo’s guide says to turn off Shopify’s built-in abandoned cart messages so customers receive only Klaviyo’s. If both run, a shopper can get a Shopify email, a Klaviyo checkout email and a cart email, none aware of the others.
Test it with one profile before you switch anything on
You can test the whole arrangement with one test profile in about an hour. The profile must be identified first, because onsite events only attach to known browsers.
- Confirm the metrics are recording. In Klaviyo, open Analytics, then Metrics, and look for Viewed Product, Added to Cart and your checkout metric. Klaviyo recommends waiting about 15 minutes after enabling onsite tracking before you test.
- Identify a test browser. Sign up with a test email through a Klaviyo form on your store, or enter your details at checkout. Klaviyo’s Shopify onsite tracking article lists both as ways a visitor is identified.
- Run the path both ways. View a product, add to cart, start checkout, leave. Then reverse it: start checkout, leave, view a product.
- Read the profile’s activity feed. Check each event appears under the metric name your filters use.
- Read each message’s skip reasons. Klaviyo’s skip-reason guide (updated 7 October 2026) lists reasons such as Fails Flow Filters, Fails Additional Filters, Smart Sending, Missing Email and Catalog Item Unavailable (a product in the email is out of stock or unavailable). They tell you whether the right email was skipped for the right reason.
- Check Shopify’s own automation is off, so a test checkout produces only the Klaviyo email.
- Place a test order, and confirm nothing further goes to that profile.
Missing Email is worth a note. Shopify can only send its recovery email if the customer entered an email address, and Klaviyo’s email flows skip a profile with no email. If a meaningful share of your checkouts are phone-only, an email flow is blind to them.
What none of these flows can fix
These flows bring back people who were interested and got interrupted. They do not change why the interruption happened.
A browse flow reaches only visitors Klaviyo can identify. Everyone else who views a product can only be helped by the page itself: clear delivery and returns answers, a fast mobile page, reviews where people look. Our guide to reading Shopify session recordings shows how to see where they stall.
A cart or checkout flow is a bandage if a large share of started checkouts never complete. Look at what the shopper met: a cost that appeared late, a payment method that failed, a hard mobile checkout. Our checkout leakage audit shows how to find the step where people drop out using your own numbers. Our CRO audit includes a tracking check for a related reason: if the events these flows depend on are wrong, every number built on them is suspect (see why attribution is broken on Shopify).
For how paid, organic, conversion and email fit together, see the DTC growth system overview.
Key takeaways
- Browse triggers on Viewed Product, cart on Added to Cart, checkout on Started Checkout (also written Checkout Started). Each is a later, stronger signal.
- Klaviyo’s docs tie Viewed Product and Added to Cart flows to identified visitors. A visit alone does not make a browser known; a Klaviyo email click, a form submission or entering details at checkout does.
- Identification fades: browsers can shorten the life of Klaviyo’s cookie, and a cleared cookie makes the visitor anonymous again.
- Known is not consented. Klaviyo says never-subscribed profiles can receive flow emails if not suppressed and tells you to check the consent rules; the ACMA says you need consent and must be able to prove it. Not legal advice.
- Build checkout first, then Added to Cart once the metric is confirmed, then browse only if your known audience justifies it. That order is my judgement.
- A later-stage event cancels an earlier-stage flow. Use profile filters, because trigger filters are checked only at entry.
- “Since starting this flow” only looks forward, so add a time-window version of the same condition.
- Smart Sending is first come, first served and does not reschedule, so a browse email can cause the checkout reminder to be skipped.
- Turn off Shopify’s own abandoned checkout emails when Klaviyo takes over, and test with one identified profile.
FAQs
What is the difference between browse abandonment and abandoned cart in Klaviyo?
Browse abandonment triggers on Viewed Product, so it follows someone who looked at a product page. Abandoned cart triggers on Added to Cart or Started Checkout, which come later in the buying path. Klaviyo says its Added to Cart flow is aimed at casual shoppers who have not started checkout, and that shoppers who start checkout usually show stronger intent. Browse and Added to Cart both need Klaviyo to have identified the visitor first.
Do I need all three flows?
No. Checkout is the one most stores should have first, because those shoppers give you their contact details in your own checkout. Add Added to Cart once that metric is confirmed. Browse is the most optional: build it only if you have a real audience of known, recent visitors, and measure your reach first.
Why does my browse abandonment flow send so few emails?
Because only identified visitors can enter it. A first-time visitor is anonymous until something identifies them, a returning visitor can become anonymous again when the browser deletes Klaviyo’s cookie, and on Shopify, visitors in the EU, EEA, UK and Switzerland may not be tracked without consent. The flow also removes anyone who orders, starts checkout or adds to cart. Check each message’s skip reasons to see which applies.
Can Klaviyo send browse abandonment emails to anonymous visitors?
Not on anything Klaviyo’s documentation describes. It says Viewed Product is recorded for an identifiable person, and that with anonymous visitor tracking on, it stores onsite events in the visitor’s browser and adds them to the profile once the visitor is identified. That builds history later; it does not email someone Klaviyo cannot name.
How do I stop someone getting browse, cart and checkout emails at once?
Use profile filters: browse excludes Added to Cart, Started Checkout and Placed Order; cart excludes Started Checkout and Placed Order; checkout excludes Placed Order. Add a time-window version of each so people already further down before entering are excluded too. Then check Smart Sending, which can skip the better email after a lighter one has gone.
Should I turn off Shopify’s abandoned checkout emails if I use Klaviyo?
Yes, if you do not want customers to get both. Klaviyo’s guide says to turn off Shopify’s built-in abandoned cart messages so customers receive only Klaviyo’s. As at 31 October 2026, Shopify’s help page puts it under Apps, Messaging, Automations (“Abandoned checkout emails by Shopify”); follow the current page for the steps.
Do browse abandonment emails need consent in Australia?
This is general information, not legal advice. The ACMA says you must first have consent, express or inferred, and that it is up to you to prove it. Its unsubscribe fact sheet says an unsubscribe request must be actioned within five working days. Whether a given browse email is a marketing message depends on its content, so ask a lawyer or the ACMA before relying on any default setting.
Keep reading
- Abandoned cart flow for Shopify in Klaviyo: structure and timing
- Shopify welcome flow in Klaviyo
- Klaviyo segments for Shopify DTC stores
Want to see where your store loses buyers after the click?
A browse or cart flow follows up with people who left; it does not show 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 tracking and conversion, our Shopify CRO service is the part of our work that covers 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
Afterpay vs Zip vs Shop Pay Instalments: Shopify AU
Afterpay, Zip and Shop Pay Instalments compared for Australian Shopify stores: merchant fees, payouts, approval, checkout placement and a worked margin example.
AI-Referred Orders on Shopify: What Is Real and What Is Hype
What Shopify has disclosed about AI-referred orders, why the 13x headline needs context, how to find AI traffic in GA4 and Shopify, and what to do now.
AI Visibility Tools for Shopify: What They Measure and Miss
What AI visibility tools for Shopify stores really count: mentions, share of voice and citations, where the data is sampled or unstable, and how to use them.