How-to guides

How to set up a Klaviyo abandoned cart flow (and monitor it)

Step-by-step setup of a Klaviyo abandoned cart flow: trigger config, filters, content sequencing, and the diagnostic checks that confirm it's still firing weeks later.

Published


title: "How to set up a Klaviyo abandoned cart flow (and monitor it)" description: "Step-by-step setup of a Klaviyo abandoned cart flow: trigger config, filters, content sequencing, and the diagnostic checks that confirm it's still firing weeks later." slug: "how-to-set-up-klaviyo-abandoned-cart" publishedAt: "2026-05-19" updatedAt: "2026-05-19" howToSteps:

  • name: "Confirm tracking is installed" text: "Open your storefront in a regular browser and view source. Search for 'klaviyo' to verify the onsite tracking snippet is loaded. If absent, enable Onsite Tracking in Settings → Integrations → Shopify (or your platform's equivalent)."
  • name: "Verify the trigger event is firing" text: "In Klaviyo, go to Analytics → Metrics → Started Checkout (or Added to Cart for legacy flows). Confirm the chart shows steady recent volume. A flat right edge means tracking is broken and the flow won't fire regardless of how you configure it."
  • name: "Create a new flow from the Abandoned Cart template" text: "Flows → Create Flow → Templates → Abandoned Cart. Klaviyo's template includes pre-wired trigger, filters, and a default email sequence you can customize. Starting from the template avoids the most common configuration errors."
  • name: "Configure the trigger event" text: "Set the trigger to Started Checkout. Add a trigger filter for cart value > $0 to exclude empty-cart edge cases. Set the time delay before the first email — 1-4 hours is standard for most brands."
  • name: "Set flow filters carefully" text: "Add 'Placed Order zero times since starting this flow' to exclude profiles who complete checkout. Avoid filters that reference the trigger event itself ('Started Checkout zero times since…') — these create self-blocking logic that prevents anyone from entering."
  • name: "Build the email sequence" text: "Standard sequence: email 1 at 1-4 hours (cart contents, simple reminder), email 2 at 24 hours (reviews, social proof), email 3 at 72 hours (incentive if AOV justifies). Adjust for vertical — high-AOV products may justify 5-8 emails over weeks."
  • name: "Turn Smart Sending OFF on each email" text: "Open each email in the flow's email settings and toggle Smart Sending OFF. Smart Sending suppresses sends to profiles that received any email in the last 16 hours — for abandoned cart specifically, that's almost always wrong."
  • name: "Test with a real cart abandon" text: "Open an incognito browser, add to cart, start checkout, abandon. Wait 5 minutes. Check Analytics → Metrics → Started Checkout to confirm your test profile recorded. Then watch the flow's 'Latest entries' tab — your profile should appear within 10 minutes."
  • name: "Activate the flow" text: "Set the flow status to Live. Until you do, no profiles will be added even if the trigger fires. Confirm Live status in the flow editor's top-right corner."
  • name: "Set up ongoing monitoring" text: "After activation, schedule a weekly check of Started Checkout event volume, flow entry counts, and per-email send delivery. The flow can break silently when tracking snippets get stripped during theme updates or when integration tokens expire." faq:
  • q: "What's the right delay before the first abandoned cart email?" a: "Between 1 and 4 hours. Earlier feels intrusive; later loses recovery opportunity. 1-2 hours works for most DTC; high-consideration verticals (furniture, jewelry) can push to 4 hours."
  • q: "Should I add an incentive in the abandoned cart sequence?" a: "Test it. Many brands find that the first 1-2 emails (reminder + social proof) recover most of the recoverable carts without discount. Save incentives for the final email and only on carts above a threshold AOV."
  • q: "How long should the sequence run?" a: "Standard DTC: 3 emails over 72 hours. High-AOV verticals: 5-8 emails over 14-21 days. The sequence length should match consideration cycle, not best practice from blog posts."
  • q: "Should Smart Sending be on or off for abandoned cart?" a: "Off. Always off. Smart Sending will suppress the abandoned cart email if the profile received any other email in the last 16 hours. For a flow whose entire value depends on timing, that suppression destroys recovery rates."
  • q: "Will Klaviyo notify me if the flow stops firing?" a: "No. The flow editor will continue to show Live status even when the underlying trigger event has stopped recording. Detection of that drift requires monitoring of the underlying metric, not the flow status."
  • q: "What's a realistic recovery rate for abandoned cart?" a: "Industry-wide, abandoned cart flows recover 5-15% of abandoned revenue. Brands with tight integration health, AOV-matched sequencing, and accurate filters can hit 15-25%. Recovery below 5% almost always indicates a configuration or tracking problem." related:
  • klaviyo-abandoned-cart-flow-not-firing
  • klaviyo-checkout-started-event-not-working
  • how-to-set-up-klaviyo-browse-abandonment
  • klaviyo-flow-not-sending-emails

An abandoned cart flow is the single highest-ROI flow most DTC brands run on Klaviyo. It's also one of the most commonly misconfigured. The flow looks simple — someone abandons, you send them an email — but the actual mechanics involve trigger event integrity, flow filter logic, Smart Sending interactions, and template rendering that all have to be right for the flow to fire as expected.

This page walks through the build step by step. It assumes you have Klaviyo connected to Shopify (or WooCommerce). If you don't, that's the first thing to fix — without an active ecommerce integration, Klaviyo has no Started Checkout event to trigger on, and no abandoned cart flow will work.

Most people who follow these steps end up with a flow that works on day one and breaks 60-90 days later when something upstream changes — a theme update, a plugin upgrade, an OAuth token expiry. The "how to verify your setup is working" section below is what catches the day-one configuration errors. The "what can quietly break this later" section is what you'll come back to when revenue dips and you can't figure out why.

Prerequisites

Before building the flow, confirm:

  • Klaviyo is connected to your ecommerce platform. Settings → Integrations → Shopify (or WooCommerce). Status should show "Connected" with a recent sync timestamp.
  • Onsite Tracking is enabled. In the same integration page, the Onsite Tracking toggle should be ON. This is the snippet that records client-side events.
  • You have a sending domain configured. Settings → Domains. If you're still sending from a Klaviyo subdomain, set up a branded domain before launching the flow — it materially affects deliverability.
  • You have a test email address you can send to. Don't test on your business email; use a personal Gmail or similar so you can see how the email renders in a real inbox.

Step 1: Confirm tracking is installed

Open your live storefront in a regular browser (not your admin). Right-click and View Source. Use Cmd-F (Mac) or Ctrl-F (Windows) to search for "klaviyo" in the source. You should see a script tag pulling from static.klaviyo.com — this is the tracking snippet.

If the snippet isn't there, no client-side events will fire and the flow won't trigger reliably. To re-inject it, go to Settings → Integrations → Shopify and toggle Onsite Tracking off and back on. For WooCommerce, reinstall or re-authenticate the Klaviyo plugin.

This step matters because tracking snippet absence is the single most common root cause of "abandoned cart not firing" tickets. If you skip the check now, you'll spend hours later trying to fix a flow that's actually fine — the problem is upstream.

Step 2: Verify the trigger event is firing

In Klaviyo, go to Analytics → Metrics. Find "Started Checkout" in the metric list and click it. The chart should show steady event volume during your store's traffic hours.

If the chart shows recent events: tracking is healthy and you're clear to proceed. If the chart is flat on the right edge — events have stopped firing — the integration is broken. Do not proceed with the flow build until tracking is fixed. The flow will not work otherwise.

For some legacy flows, the trigger is Added to Cart instead of Started Checkout. Check both metrics if you're unsure which your template uses.

Step 3: Create a new flow from the abandoned cart template

In Klaviyo, go to Flows → Create Flow. Select Templates → Abandoned Cart. Klaviyo provides a pre-wired template that includes the trigger, default filters, and a 3-email sequence. Starting from the template is meaningfully safer than building from scratch — most "I can't figure out why my flow won't fire" cases are configuration errors that the template would have prevented.

Name the flow something specific: "Abandoned Cart — Q2 2026" or similar. Klaviyo lets you have multiple abandoned cart flows running simultaneously (for different segments or product categories), so versioned naming pays off later.

Step 4: Configure the trigger event

The default trigger is Started Checkout. For most brands this is correct. Open the trigger node and review:

  • Trigger event: Started Checkout.
  • Trigger filter: Add a filter on the event's value property: greater than 0. This excludes test or zero-value carts. Some brands also filter on cart contents to exclude specific SKUs (like gift cards or samples).
  • Trigger delay: The time between the event firing and the first email. 1-4 hours is the standard range. 1-2 hours works for most DTC. High-consideration verticals (furniture, jewelry) can push to 4 hours.

Step 5: Set flow filters carefully

Flow filters run on every profile entering the flow. The most important filter is one that excludes profiles who completed checkout: "Placed Order zero times since starting this flow." This is correct logic — it removes profiles who've converted from the flow without sending them additional abandoned cart emails.

Avoid this filter, which is a common trap: "Started Checkout zero times since starting this flow." This filter prevents entry by anyone who's just started checkout — which is the only kind of person the flow should be sending to. It's a self-blocking logic that prevents every entry. If you see this filter in an inherited setup, remove it.

Step 6: Build the email sequence

The default Klaviyo template gives you three emails. Customize:

  • Email 1 (1-4 hours): Cart contents, simple "you left this behind" reminder. Don't lead with a discount. Include the product image, name, price, and a clear "complete checkout" button.
  • Email 2 (24 hours): Reviews and social proof. Surface 1-3 reviews of the abandoned product. Reinforce return policy and shipping reassurance.
  • Email 3 (72 hours): Final reach-out. This is where an incentive belongs if your AOV justifies it — 10% off, free shipping, or a small bundle add-on. For luxury brands or high-AOV products, skip the incentive and emphasize service/quality.

Adjust the sequence to your vertical. Jewelry, furniture, and high-AOV brands often run 5-8 emails over 14-21 days. Fast-moving consumer goods can compress to 2 emails over 24 hours.

Step 7: Turn Smart Sending OFF on each email

Open each email in the flow's settings. Find the Smart Sending toggle. Turn it OFF for every email in the abandoned cart sequence.

Smart Sending is Klaviyo's deduplication feature — it skips sending to any profile that received an email in the last 16 hours (default). For broadcast campaigns this prevents fatigue. For abandoned cart, it suppresses exactly the email you most want to send. A customer who received your daily campaign two hours ago and then abandoned a cart will not get the abandoned cart email if Smart Sending is on.

The flow has its own dedupe logic (profiles can't re-enter the flow while already in it), so Smart Sending is redundant here. Off across the board.

Step 8: Test with a real cart abandon

Open an incognito browser. Add a product to cart. Start checkout. Enter an email address you control (personal Gmail). Leave the page without completing.

Wait 5 minutes. Then check Analytics → Metrics → Started Checkout. Your test profile should appear in the recent events list with the right cart contents. If it doesn't appear, tracking is broken — go back to step 1.

Then check the flow's "Latest entries" tab. Your test profile should appear within 5-10 minutes. If Started Checkout fired but the profile didn't enter the flow, a filter is blocking entry — re-check step 5.

Finally, check that the first email arrives at the expected delay. If the email is "skipped" due to Smart Sending, re-check step 7.

Step 9: Activate the flow

In the flow editor's top-right, change status from Draft to Live (or Manual to Live). Until you do, no profiles will be added even if the trigger fires.

Confirm the activation by reloading the flow and checking the status indicator. The flow should now show Live with no warnings.

Step 10: Set up ongoing monitoring

After activation, the flow will work — until something upstream changes and breaks it silently. Schedule a recurring check:

  • Weekly: Started Checkout event volume in Analytics → Metrics. Confirm it's steady week-over-week.
  • Weekly: Flow entry count. The Flow → Performance view shows entries per day. Watch for sudden drops.
  • Monthly: Per-email delivery and engagement rates. Watch for skipped sends, complaint spikes, or unusual unsubscribe rates.

This is the work that catches drift before it becomes a revenue cliff.

Common mistakes

  • Self-blocking flow filter. "Started Checkout zero times since starting this flow" prevents every entry.
  • Smart Sending left on. Suppresses abandoned cart emails when the customer received any other recent send.
  • No trigger filter on cart value. Zero-value or test carts flood the flow with junk entries.
  • Wrong delay timing. Sending the first email within 5 minutes of cart abandon feels intrusive; waiting 24+ hours loses recovery opportunity.
  • Discount in email 1. Trains customers to wait for the discount and abandon intentionally.
  • Template uses placeholder product data. Test rendering with a real cart to confirm product images, prices, and details populate.

How to verify your setup is working

Run the test in step 8 monthly. Cart abandon tests are the fastest end-to-end integrity check — they exercise the tracking snippet, the trigger event, the flow filters, the email rendering, and the delivery layer in one pass.

Also check, weekly:

  • Started Checkout event volume is steady (no flat-line on the right edge of the chart)
  • Flow entry count is steady (no sudden 80%+ drops day-over-day)
  • Email 1 delivery rate is at or above 98%
  • No surge in "Skipped — Smart Sending" in profile activity logs

If any of these look off, walk back through the configuration before assuming the flow is fine.

What can quietly break this later

Shopify theme updates strip the tracking snippet. Frequent failure mode. Confirm with View Source after every theme change.

WooCommerce or WordPress plugin updates break webhooks. Less frequent than Shopify but more silent — failed WooCommerce webhooks don't always retry, so events go missing without errors.

OAuth tokens expire. Shopify tokens are stable, but some integrations (subscription platforms, custom apps) refresh on a 90-day cycle and can silently fail to refresh.

SKU renames break product-property filters. If your flow filters on product type or category strings, catalog renames break filter matches without warning.

Each of these is invisible from Klaviyo's UI — the flow editor will show Live, the metrics dashboard won't show errors. Detecting the drift requires watching the underlying metric volume, not the flow status. That's exactly what Playbook is built to do: hourly scans surface event-volume drops within an hour, deep-linked to the Klaviyo screen where the fix lives.

Frequently asked questions

What's the right delay before the first abandoned cart email?
Between 1 and 4 hours. Earlier feels intrusive; later loses recovery opportunity. 1-2 hours works for most DTC; high-consideration verticals (furniture, jewelry) can push to 4 hours.
Should I add an incentive in the abandoned cart sequence?
Test it. Many brands find that the first 1-2 emails (reminder + social proof) recover most of the recoverable carts without discount. Save incentives for the final email and only on carts above a threshold AOV.
How long should the sequence run?
Standard DTC: 3 emails over 72 hours. High-AOV verticals: 5-8 emails over 14-21 days. The sequence length should match consideration cycle, not best practice from blog posts.
Should Smart Sending be on or off for abandoned cart?
Off. Always off. Smart Sending will suppress the abandoned cart email if the profile received any other email in the last 16 hours. For a flow whose entire value depends on timing, that suppression destroys recovery rates.
Will Klaviyo notify me if the flow stops firing?
No. The flow editor will continue to show Live status even when the underlying trigger event has stopped recording. Detection of that drift requires monitoring of the underlying metric, not the flow status.
What's a realistic recovery rate for abandoned cart?
Industry-wide, abandoned cart flows recover 5-15% of abandoned revenue. Brands with tight integration health, AOV-matched sequencing, and accurate filters can hit 15-25%. Recovery below 5% almost always indicates a configuration or tracking problem.