All guidesEmail Flows

Checkout Abandonment Flow: The Highest-Intent Recovery Sequence

Build a Checkout Started flow in Klaviyo with the correct trigger, purchase exit, timing, new-vs-returning split, dynamic cart data, email and SMS sequence, and QA.

By 10 min readPublished July 10, 2026Reviewed for accuracy July 10, 2026
OutcomeAfter this lesson, you can
  • Build the trigger, timing, branches, and exits for this flow
  • Measure and improve the flow against a stable cohort
PrerequisiteRead this firstThe Complete Welcome Flow Guide for DTC Brands

What is a checkout abandonment flow?

A checkout abandonment flow triggers when an identified shopper starts checkout but does not complete the order. It is the highest-intent abandonment sequence because the shopper reached checkout and usually supplied enough identity and cart data to follow up reliably. Build it before Added to Cart and browse abandonment, then exclude anyone who purchases after entering.

How is checkout abandonment different from cart abandonment?

Checkout abandonment uses the Checkout Started event. Cart abandonment uses Added to Cart and depends more heavily on onsite identity. The creative system can be shared, but the flows need distinct triggers and exclusion logic so someone who advances to checkout does not receive overlapping cart reminders.

Comparison

Checkout vs cart abandonment

CriteriaCheckout abandonmentCart abandonment
TriggerCheckout StartedAdded to Cart
IntentHigher: shopper reached checkoutEarlier: shopper showed product intent
IdentityUsually captured during checkoutRequires an already identified browser/profile
ExclusionsPlaced OrderStarted Checkout and Placed Order
PriorityBuild firstBuild second
Export visual

What is the exact Klaviyo checkout flow build?

Trigger on Checkout Started, allow re-entry only after the chosen cooldown, and use a profile filter that requires Placed Order zero times since starting the flow. Wait roughly 30 minutes, split new from returning customers, and keep checking purchase eligibility before every message.

Checkout Started AbandonmentHow this flow is built in Klaviyov1.0.0 · approved · reviewed 2026-07-10
Re-entry Allow re-entry after 30 daysEntry filters Started Checkout · Can receive the selected channelExits Placed Order since entering
When someone Started Checkout11 message nodes across all branchesPlaced Order since entering
View full build
When someone Started Checkoutmetric trigger
Wait 30 minutes
Conditional splitPlaced Order at least once over all time
Yes · Returning customer
Email 1ASimple reminder, left something behindNo discount
SMS 1ASimple reminderQuiet hours ON
Wait 1 day
Email 2AStill unsure? Reassurance
SMS 2AReminder + trust signal
Wait 1 day
Email 3AFAQs answered, maximize experience
No · New purchaser
Email 1BSimple reminder, solve #1 objectionNo discount
SMS 1BSimple reminderQuiet hours ON
Wait 1 day
Email 2BStill unsure? ReassuranceDiscount
SMS 2BReminder + discount mentionDiscount
Wait 1 day
Email 3BFAQs answeredDiscount
Wait 2 days
Email 4Why did you not purchase?No discount
Read the text version

Trigger: When someone Started Checkout

Entry filters: Started Checkout; Can receive the selected channel

Exit conditions: Placed Order since entering

Re-entry: Allow re-entry after 30 days

  1. delay: Wait 30 minutes
  2. Conditional split: Placed Order at least once over all time
    • Yes · Returning customer
      1. email: Email 1ASimple reminder, left something behind
      2. sms: SMS 1ASimple reminder
      3. delay: Wait 1 day
      4. email: Email 2AStill unsure? Reassurance
      5. sms: SMS 2AReminder + trust signal
      6. delay: Wait 1 day
      7. email: Email 3AFAQs answered, maximize experience
    • No · New purchaser
      1. email: Email 1BSimple reminder, solve #1 objection
      2. sms: SMS 1BSimple reminder
      3. delay: Wait 1 day
      4. email: Email 2BStill unsure? Reassurance
      5. sms: SMS 2BReminder + discount mention
      6. delay: Wait 1 day
      7. email: Email 3BFAQs answered
  3. delay: Wait 2 days
  4. email: Email 4Why did you not purchase?
Export visual

What should each checkout recovery message do?

The first message restores the checkout with no discount. The second answers the strongest objection and may introduce the approved incentive for a new customer. The third adds FAQs, proof, guarantee, shipping, and returns. A final non-discount message asks why the shopper did not purchase and can collect useful objection data.

Returning buyers should not automatically receive a first-purchase code. They have already shown trust and may only need a reminder or service answer. New customers need more confidence, which is why the split is based on purchase history rather than the trigger itself.

How should SMS fit into checkout abandonment?

Use SMS only for people with valid SMS marketing consent. Pair concise texts with the early high-intent moments rather than duplicating the entire email. Respect quiet hours and stop both channels immediately after purchase. The email explains; the text restores the path at the moment intent is still high.

Which dynamic checkout data should the message use?

Use the checkout URL and relevant line-item details available on the actual Checkout Started event. Preview recent events, select multiple test profiles, and verify image, product, variant, quantity, price, currency, and restore-checkout URL. Event variables are case-sensitive, and payload shape can differ by integration or checkout setup.

If a variable fails, fall back gracefully. A broken product block should never create an empty email or a dead CTA.

What filters and exits prevent bad checkout messages?

At minimum, exclude anyone who placed an order after starting the flow. Add product, inventory, geography, or subscription filters only when the business rule requires them. Do not stack complexity without a reason; every extra filter creates another failure point.

Checklist

Checkout flow eligibility

  • Checkout Started event fires on a real test profile
  • Placed Order since starting the flow is zero
  • Checkout URL restores the expected cart
  • New and returning customer branches are mutually clear
  • SMS sends only with channel consent
  • Out-of-stock and excluded products cannot produce a broken message
  • Every message is skipped immediately after purchase
  • Re-entry cooldown prevents repetitive sequences
Implementation asset
Export visual

How do you QA a checkout abandonment flow before launch?

Complete one successful order and one abandoned checkout on test profiles. Confirm the abandoned profile enters, the successful buyer exits, the new/returning split routes correctly, each delay schedules correctly, links and coupons work, dynamic data renders, SMS consent is respected, and reporting attributes to the intended flow.

Run the flow in manual mode before live sending when volume permits. Inspect who would receive each message, not only how the template looks.

What should you test after the flow is live?

Test one meaningful variable at a time: first-message delay, objection angle, proof type, incentive timing, or the final feedback request. Judge recovery and revenue per recipient alongside unsubscribe and complaint guardrails. A higher attributed number is not automatically better if the test trained existing buyers to wait for discounts.

What is the ZHS checkout-abandonment rule?

Recover the path before cutting the price. Build Checkout Started first, exit purchasers immediately, split by purchase history, and use the least incentive required to resolve the real objection.

Need help implementing this?

We build and manage complete email & SMS programs for DTC brands. Get a custom plan for your brand.

Apply Now

Join 2,000+ ecommerce strategists

Get all my brand breakdowns, Klaviyo guides, and the exact systems behind $50 million in DTC sales, directly in your inbox.

We respect your privacy. Unsubscribe anytime.