Klaviyo Abandonment Flows: Checkout, Cart, Browse, and Site
Short answer. Build Klaviyo abandonment flows in descending order of intent: checkout, added to cart, viewed product, then general site activity. Every lower-intent flow must stop when a stronger event occurs. The most important filter is not a time delay or a discount. It is
Placed Order zero times since starting this flow, followed by the stronger-intent events that should replace the current message.
Many Klaviyo accounts have an abandoned cart flow. Fewer have an abandonment system. Without coordinated filters, one shopper can enter browse, cart, and checkout flows during the same visit and receive several versions of the same reminder.
This guide explains the four observable stages, how to prioritize them, and what to test before any message goes live. Event names vary by ecommerce integration and can change in the interface. Confirm the metrics that actually exist in your account before copying a flow structure.
The four abandonment signals
| Flow | Observable behavior | Intent level | Launch priority |
|---|---|---|---|
| Checkout abandonment | Shopper identifies themselves and begins checkout | Highest | 1 |
| Cart abandonment | Identified shopper adds a product to cart but does not begin checkout | High | 2 |
| Browse abandonment | Identified shopper views a product but does not add it | Moderate | 3 |
| Site abandonment | Known profile visits without a stronger product event | Low | 4, optional |
Not every visitor is identifiable. Onsite tracking can associate behavior with a profile after qualifying interactions, such as submitting a form or arriving through an identified session. Privacy and consent settings can also limit tracking. The potential audience is therefore smaller than total site traffic, which is expected.
One shopper, one active abandonment message
The hierarchy is:
Checkout > Added to Cart > Viewed Product > Active on Site
Klaviyo does not automatically decide that the highest-intent flow should win. Your filters must enforce the hierarchy.
| Shopper's latest action | Flow allowed to send | Lower-intent flows that should stop |
|---|---|---|
| Visits the site only | Site abandonment | None |
| Views a product | Browse abandonment | Site |
| Adds the product to cart | Cart abandonment | Browse and site |
| Starts checkout | Checkout abandonment | Cart, browse, and site |
| Places an order | No abandonment flow | All four |
Use flow filters phrased as zero occurrences since starting this flow for actions that invalidate the abandonment. Klaviyo documents that profile filters are checked again before each message sends. A shopper who purchases during a delay should therefore be skipped at the next step.
Example journey
Taylor views a jacket at 10:00 a.m., adds it to cart at 10:20, and begins checkout at 10:45. The profile may enter three flows. If the architecture is correct, Taylor receives only the checkout reminder. Added to Cart and the checkout metric invalidate browse, while the checkout metric invalidates cart.
1. Checkout abandonment flow
Checkout is the strongest observable abandonment signal because the shopper has progressed into the purchase process and supplied enough information to be identified.
Trigger: the Shopify checkout-start metric shown in your Klaviyo account. Klaviyo documentation currently uses Started Checkout and Checkout Started in different contexts, so select the metric supplied by your integration rather than creating a custom lookalike.
Essential flow filters:
Placed Order zero times since starting this flow
Has not been in this flow in the last 7 days
If your store supports another checkout path, such as a separate accelerated checkout integration, include the corresponding purchase and checkout events in the architecture.
Starting sequence:
| Message | Timing | Job |
|---|---|---|
| Email 1 | About 1 hour after checkout | Restore the checkout and remove basic friction |
| Email 2 | 6 to 12 hours later | Answer shipping, returns, sizing, or trust objections |
| Email 3 | About 24 hours later | Provide proof or support, without inventing urgency |
| Optional email 4 | 36 to 48 hours later | Test a controlled incentive only when margin supports it |
Klaviyo's prebuilt abandoned cart flow includes integration-specific dynamic content and a return-to-cart link. Starting from the supported template is safer than manually rebuilding product variables before you understand the event payload. Review Klaviyo's official abandoned cart flow guide for the current dynamic block and integration behavior.
Do not send a discount by default. A universal coupon can reduce margin and train repeat shoppers to abandon checkout. Test it against a no-discount path, and exclude customers who already have an active offer.
Measure: recipients, clicks, placed orders after entry, revenue per recipient, skips caused by purchase, unsubscribes, and complaints. A high skip count after purchase is often evidence that the filter works, not a defect.
2. Added-to-cart abandonment flow
This flow covers an identified shopper who adds a product to cart but never reaches checkout. It complements checkout abandonment rather than duplicating it.
For Shopify, Added to Cart requires behavioral event tracking in the Shopify integration. The Klaviyo app embed and theme configuration must also be healthy for the surrounding onsite identity and product events.
Trigger: Added to Cart
Essential flow filters:
Checkout Started zero times since starting this flow
Placed Order zero times since starting this flow
Has not been in this flow in the last 7 days
Use the exact checkout event name shown in the account.
Starting sequence:
| Message | Timing | Job |
|---|---|---|
| Email 1 | 3 to 4 hours later | Remind the shopper what they added and provide a direct next step |
| Email 2 | 20 to 24 hours later | Resolve one likely objection or offer relevant assistance |
Keep the first cart message later than the first checkout message. The shopper has shown intent but has not progressed as far.
Measure: progression to checkout, placed orders, revenue per recipient, exits caused by stronger events, and total contact pressure. Do not attribute the same order independently to cart and checkout without understanding the account's reporting model.
3. Browse abandonment flow
Browse abandonment starts after an identified profile views a product without moving into cart or checkout. It is a lighter signal and deserves a lighter message.
For Shopify, Klaviyo says Viewed Product is enabled through the app embed. The metric should appear in Analytics > Metrics before the flow is built. Review the official browse abandonment guide and the Shopify onsite tracking guide for current setup details.
Trigger: Viewed Product
Essential flow filters:
Added to Cart zero times since starting this flow
Checkout Started zero times since starting this flow
Placed Order zero times since starting this flow
Has not been in this flow in the last 7 days
Starting sequence:
| Message | Timing | Job |
|---|---|---|
| Email 1 | 3 to 6 hours later | Bring the product back with useful context, not a false cart claim |
| Optional email 2 | About 20 to 24 hours later | Show proof, comparison help, or closely related products |
Klaviyo's official instructions use event properties such as product image, name, price, and URL for browse messages. Preview the email against multiple real events and provide a sensible fallback when a property is missing.
Do not write "You left this in your cart" when the event only proves a product view. The copy must match the observed action.
Measure: return visits to the product, added-to-cart progression, orders, revenue per recipient, unsubscribes, and stronger-event skips.
4. Site abandonment flow
General site activity is the weakest signal. A known profile may have opened the homepage, read editorial content, checked store information, or navigated for reasons unrelated to purchase.
Trigger: Active on Site
Essential flow filters:
Viewed Product zero times since starting this flow
Added to Cart zero times since starting this flow
Checkout Started zero times since starting this flow
Placed Order zero times since starting this flow
Has not been in this flow in the last 14 days
Starting sequence: one email after 4 to 8 hours, if the test is justified.
The message can orient a returning subscriber toward best sellers, new releases, a buying guide, or helpful content. It should not claim a specific product interest.
This flow is optional. Launch it only after checkout, cart, and browse behavior is stable and the team can measure incremental value. A broad site visit can be too weak to justify another automated email, especially for subscribers already receiving frequent campaigns.
How to build the filters in Klaviyo
For a metric-triggered flow:
- Select the trigger metric supplied by the integration.
- Add a profile filter for
Placed Order zero times since starting this flow. - Add every stronger-intent event that should invalidate the current flow.
- Add a re-entry limit using Has not been in this flow for the chosen period.
- Confirm channel eligibility and suppression behavior for every promotional message.
- Preview the trigger and inspect profiles that qualify.
Do not replace a since-starting filter with a generic "zero times in the last 24 hours" window. A fixed window can miss an earlier purchase or behave incorrectly in a sequence that lasts several days.
Testing the system before launch
Complete at least five paths with test profiles:
| Test | Expected result |
|---|---|
| View product only | Browse flow qualifies, cart and checkout do not |
| Add to cart without checkout | Cart qualifies, browse stops |
| Start checkout | Checkout qualifies, cart and browse stop |
| Purchase during a delay | All remaining abandonment messages skip |
| Return repeatedly within the re-entry window | Profile does not restart the same flow |
For a complex flow, place messages in Manual status first. Klaviyo will queue eligible recipients for review without sending automatically. Inspect the Needs Review profiles and skip reasons before switching actions to Live. Klaviyo documents this process in its flow testing guide.
Common failures
Checkout and cart messages send together
The cart flow is missing the checkout event as a since-starting filter, or it references the wrong metric. Inspect the profile timeline and use the exact metric produced by the ecommerce integration.
Browse abandonment never starts
Check the active Shopify theme, Klaviyo app embed, Viewed Product metric, profile identification, and privacy consent. Do not add a second tracking snippet until you understand why the supported implementation is not producing the event.
The email displays the wrong product
Preview the event payload used by the message. A cart email, checkout email, and browse email do not necessarily use the same variables or block configuration. Start from the integration-specific template when one is available.
Discounts appear in every path
Move incentives behind a branch based on margin, customer status, cart value, or a controlled experiment. A discount should solve a measured conversion problem, not compensate for unclear copy.
A dormant flow is reactivated without QA
Themes, catalogs, events, offers, consent logic, and templates change. Retest every trigger, filter, dynamic block, and destination before returning an old flow to Live status.
Launch order
| Priority | Flow | Why it comes here |
|---|---|---|
| 1 | Checkout | Strongest purchase signal and supported dynamic recovery path |
| 2 | Cart | Captures an earlier but explicit product commitment |
| 3 | Browse | Useful only after onsite tracking and stronger-flow exclusions work |
| 4 | Site | Weak signal, optional, and easiest to over-send |
Launch one layer at a time. Validate its event volume, filters, content, and overlap before adding the next.
FAQ
What is the difference between cart and checkout abandonment in Klaviyo?
Cart abandonment starts after an identified shopper adds a product to cart. Checkout abandonment starts after the shopper progresses into checkout and is identified there. Checkout is the stronger signal, so the cart flow must stop when checkout begins.
How many abandoned cart emails should I send?
There is no universal winning count. A reasonable starting point is two messages for cart, two or three for checkout, one or two for browse, and at most one for general site activity. Adjust from incremental orders, margin, unsubscribes, complaints, and total pressure.
Why does Klaviyo show many skipped profiles in checkout abandonment?
If the skip reason is that the shopper placed an order, the flow is behaving correctly. Klaviyo rechecks profile filters before messages send, so purchasers should not receive the remaining reminders.
Does Added to Cart work automatically on Shopify?
Klaviyo's current Shopify setup requires behavioral event tracking to be enabled, and the implementation should be tested on the active theme. Confirm that Added to Cart appears in Analytics before relying on it as a trigger.
Should browse abandonment include a coupon?
Not by default. A product view is a moderate signal. Start with useful product context or proof, then test an incentive only if the economics and incremental results support it.
Can I run Shopify recovery emails and Klaviyo flows together?
Only with deliberate coordination. Otherwise the shopper may receive duplicate checkout reminders. Decide which system owns each recovery message and disable or exclude the overlapping path.
Audit the whole journey, not one flow
The revenue leak is often between flows: duplicate messages, missing stronger-event filters, stale product variables, or a purchase event that arrives too late. Test the complete shopper path before optimizing subject lines.
Review your Klaviyo flow architecture with Deliver
Continue with:
Charlotte Rodrigues, CRM Lead at Deliver. Updated July 16, 2026.
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →