Klaviyo Abandoned Cart Flow Setup for Shopify

A practical build guide for a three-touch Klaviyo abandoned cart flow on Shopify — including triggers, filters, smart sending, and the conditional split between discounted and full-price shoppers.
Quick answer
On Shopify, trigger your Klaviyo abandoned cart flow on the Checkout Started metric (not Added to Cart), filter out customers who completed the order within the flow, and send three emails: a 1-hour reminder, a 24-hour benefit-led nudge, and a 48-72 hour final touch with a conditional discount split. Use smart sending and a 7-day re-entry block to avoid burning your sender reputation.
Klaviyo Abandoned Cart Flow on Shopify
A triggered Klaviyo email sequence that recovers Shopify checkouts started but not completed, typically sent across three touches over 72 hours.
A Klaviyo abandoned cart flow on Shopify is a behaviour-triggered email sequence fired when a shopper reaches the Shopify checkout, identifies themselves with an email, but does not place the order. Klaviyo receives the event via its native Shopify integration as a Checkout Started metric, which carries the cart contents, checkout URL, and customer profile.
A standard build is three messages over 1, 24, and 48-72 hours, with filters to suppress recent purchasers, dynamic product blocks pulling line items from the checkout payload, and conditional branches that decide who sees a discount and who does not.
This page assumes you already have the Klaviyo Shopify integration installed and that the Checkout Started metric is firing in your Metrics tab. If it isn't, finish that connection first — the rest of the build depends on it.
Everything below is the operational build, not the strategy debate. For background on why abandoned cart email works as a category, the parent guide on abandoned cart email covers psychology, timing theory, and benchmark recovery rates across platforms.
1. Trigger and entry filters
In Klaviyo, create a new flow and set the trigger to the metric Checkout Started. Do not use Added to Cart — that fires on every product page add, which floods the flow with shoppers who never reached checkout and tanks your open rates.
Add two flow filters. First: Placed Order zero times since starting this flow — this exits anyone who completes the purchase mid-sequence. Second: has not been in this flow in the last 7 days — this prevents re-entry loops for shoppers who abandon multiple times in a week.
Smart sending is on by default — keep it on
Klaviyo's smart sending window (default 16 hours) suppresses anyone who already received an email in that window. On a high-volume Shopify store this prevents the abandoned cart flow from competing with your campaign sends. Lower it to 8 hours only if your cart-to-campaign overlap is hurting recovery.
2. Three-touch cadence and dynamic blocks
Email 1 fires after a 1-hour time delay. Use a reminder tone — no discount, no urgency. The subject line references the product by name using the event variable {{ event.extra.line_items.0.title }}. Body copy includes a dynamic product block pulling the full cart contents and a button linking to {{ event.extra.checkout_url }}, which restores the exact Shopify checkout.
Email 2 fires 24 hours after the trigger. Shift the angle from reminder to benefit — shipping, return policy, social proof, or a low-stock signal if your inventory feed supports it. Still no discount. This is the email that does most of the heavy lifting for full-price recovery on apparel and beauty stores.
Email 3 fires at 48-72 hours, after a conditional split. Branch the flow on a profile property or tag: returning customers and first-time shoppers above a €100 cart value get a soft nudge with no discount; price-sensitive segments and abandoners below €100 get a 10% code with a 48-hour expiry. This is where margin protection happens.
3. What to expect — recovery benchmarks
Typical Klaviyo abandoned cart performance on Shopify, by vertical
| Vertical | Open rate | Click rate | Placed-order rate | Revenue per recipient |
|---|---|---|---|---|
| Apparel & accessories | 48-55% | 6-9% | 3.5-5% | €2.40-€4.10 |
| Beauty & personal care | 50-58% | 7-10% | 4-6% | €2.80-€4.80 |
| Home & lifestyle | 45-52% | 5-8% | 2.5-4% | €3.20-€5.50 |
| Consumer electronics | 42-50% | 4-7% | 2-3.5% | €4.00-€7.00 |
| Food & beverage | 46-54% | 6-9% | 3-4.5% | €1.80-€3.20 |
These ranges assume a clean list, smart sending on, and a three-touch cadence. If your placed-order rate sits below the low end after 30 days of traffic, the problem is almost always deliverability (engagement segment too broad) or the checkout itself, not the email copy.
4. Deliverability and discount guardrails
Add an engagement filter on emails 2 and 3: only send to profiles who have opened or clicked an email in the last 90 days, OR who started checkout in the last 30 days. This protects your sender reputation when you scale paid traffic and inflate your abandoned-checkout volume.
On the discount branch, generate codes via Klaviyo's dynamic coupon integration with Shopify rather than a static code. Static codes leak to coupon sites within weeks and erode margin on shoppers who would have paid full price. Set the code to expire in 48 hours to force a decision.
5. Testing and go-live checklist
Before activating, run a live test: add an item to cart on your storefront, reach checkout with a test email, and abandon. Confirm Checkout Started fires in the Klaviyo metrics feed within 5 minutes, then check that the flow shows the test profile queued for email 1 with the correct line items in the preview.
Once live, the highest-leverage A/B tests are subject line on email 1, send delay on email 2 (try 18h vs 24h vs 36h), and the discount threshold on email 3. Run each test for at least two full weekly cycles so weekend traffic patterns don't skew the result.
Frequently asked questions
Checkout Started, always. Added to Cart fires too early — most shoppers who add never reach checkout, and you have no email for them anyway. Checkout Started only fires when the shopper has entered an email at the Shopify checkout, so the trigger volume matches the recoverable audience.
One hour is the standard and tests well across verticals. Shorter (15-30 minutes) feels intrusive and often arrives before the shopper has finished comparing options. Longer (3-4 hours) misses the warm-intent window. Test 1h vs 2h if you want to refine, but don't go below 30 minutes.
Yes — turn Shopify's native email off in Settings > Checkout once your Klaviyo flow is live. Running both means shoppers get duplicate messages and you lose attribution clarity. Klaviyo's targeting, dynamic blocks, and reporting are strictly better.
Yes. The cleanest pattern is to add an SMS step between email 1 and email 2 (around 4-6 hours post-trigger) with a conditional split on Consents to Receive SMS = true. Keep the SMS short — under 160 characters with the checkout URL — and respect quiet hours in your shopper's timezone.
No. Discounting on the first touch trains shoppers to abandon on purpose and erodes margin on the segment that would have converted at full price. Reserve discounts for email 3, behind a conditional branch, and only for cart values or customer segments where margin allows it.
Add a flow filter: has not been in this flow in the last 7 days. This stops repeat abandoners — and bots — from cycling through the sequence multiple times per week. For high-traffic stores, tighten this to 14 days for the discount branch specifically.
On Shopify, Klaviyo exposes Started Checkout as the operational trigger — that's what most teams call the abandoned cart flow even though technically it's an abandoned checkout flow. True cart abandonment (added to cart, never reached checkout) requires the Active on Site metric and a separate browse-abandonment flow.
Klaviyo attributes a placed order to the flow if it happens within 5 days of an email click (default attribution window). You can adjust this in Account > Settings > Email > Conversion Tracking. Match the window to your typical purchase consideration time — 5 days is fine for apparel and beauty; bump to 7 for higher-AOV electronics.
Almost always a deliverability issue caused by sending to disengaged profiles. Tighten the engagement filter on emails 2 and 3 to 60 days, suppress profiles with three consecutive non-opens of any flow email, and check your Gmail and Yahoo sender reputation in Google Postmaster Tools.
Yes, with a conditional split on the line item's product type or tag. For example, branch shoppers abandoning skincare into a flow with skincare-specific social proof and a routine-builder block, separate from accessories abandoners. This lifts click rates 15-25% but adds maintenance overhead — only do it if you have three or more clearly distinct categories.
Test ideas before you ship them
Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.