This guide walks you through building a multi-channel abandoned cart recovery flow in Klaviyo using both SMS and email. Following these steps takes roughly 90 minutes and produces a live, automated sequence that typically recovers 5–15% of abandoned carts — one of the highest-ROI workflows any e-commerce brand can deploy in 2026.
What You'll Build
- A triggered Klaviyo flow that activates when a user abandons their cart
- A three-touch sequence combining email and SMS messages at optimised send intervals
- Dynamic product blocks that auto-populate with the exact items left behind
- A/B split logic to test subject lines and SMS copy without duplicating flows
- A conversion tracking setup so Klaviyo attributes recovered revenue accurately
What You'll Need
- A Klaviyo account on the Free, Starter, or Growth plan (all support flows as of 2026)
- An e-commerce store connected via a Klaviyo integration — Shopify, WooCommerce, BigCommerce, or a custom API source all work
- Klaviyo SMS enabled and a verified sending number (US short code, AU long code, or SG virtual number depending on your market)
- At least one active product catalogue synced so dynamic product blocks render correctly
- TCPA/CASL/Spam Act compliance in place — SMS requires explicit opt-in; do not skip this
Step 1: Verify Your Klaviyo–Store Integration Is Sending Cart Events
Why does this step matter?
The entire flow depends on Klaviyo receiving a Started Checkout event from your store. If that event is missing or delayed, no message ever sends. Check this first, before building anything.
Navigate to Analytics → Metrics in Klaviyo. Search for Started Checkout. You should see recent activity. If the metric shows zero events in the last seven days and your store has traffic, your integration needs attention — reinstall the Klaviyo pixel or check your API connection.
For Shopify users, go to Shopify Admin → Apps → Klaviyo and confirm the Onsite Tracking toggle is enabled. This fires the browser-side events Klaviyo needs.
Common pitfall: Headless Shopify stores using a custom storefront often miss the pixel entirely. You need to fire the Klaviyo JavaScript SDK events manually on your checkout page. See the Klaviyo JS API docs for the correct event schema.
Step 2: Create the Flow and Set Your Trigger
Go to Flows → Create Flow → Build Your Own. Name it something unambiguous, like Abandoned Cart — SMS + Email — 2026. Clear naming prevents confusion when you have multiple recovery flows running.
Set the trigger to the metric Started Checkout. Do not use Added to Cart as your trigger — it fires too early and generates excessive noise. Started Checkout signals genuine purchase intent.
How should you configure the trigger filter?
Add a trigger filter: Placed Order zero times since starting this flow. This is critical. Without it, customers who complete their purchase will still receive recovery messages — a poor experience that damages brand trust.
Set the flow filter (not the trigger filter) to: Placed Order zero times in the last 24 hours. Flow filters are checked at each step, so they catch late completions between messages.
Step 3: Build the First Email — Send at 1 Hour
Add a Time Delay of 1 hour after the trigger. Then add an Email action.
Use the Klaviyo drag-and-drop editor. Your first email should do three things only: remind the customer what they left behind, show the exact products, and present one clear call to action.
Insert a Product Block and configure it to pull from {{ event.extra.checkout.line_items }}. Klaviyo's dynamic product blocks render product images, names, and prices automatically from the cart event payload. Set a fallback image in case a product image URL is missing.
Subject line formula that performs consistently well in 2026: You left something behind, [First Name]. Personalisation tokens like {{ person.first_name }} lift open rates by roughly 20–25% compared to generic subject lines, based on Klaviyo's 2025 benchmark report.
Pro tip: Keep this email short. One product block, one headline, one CTA button. Brevity at the one-hour mark performs better than a long-form message because the customer is still warm.
Step 4: Add the First SMS — Send at 3 Hours
Add another Time Delay of 2 hours after the first email (3 hours total from trigger). Then add an SMS action.
Klaviyo SMS messages use Liquid templating, identical to emails. Keep your SMS under 160 characters to send as a single segment — this reduces cost and improves deliverability.
Example SMS copy:
Hey {{ person.first_name }}, your cart is waiting. Complete your order here: {{ event.extra.checkout.checkout_url }} Reply STOP to opt out.
The checkout_url property is populated by Shopify and most major platforms. It takes the customer directly back to their cart with items pre-loaded. Always include opt-out language — it is legally required under TCPA (US), Canada's CASL, Australia's Spam Act 2003, and Singapore's PDPA.
What if the SMS fails to send?
Klaviyo skips SMS silently if the profile has no phone number or has not opted in. This is correct behaviour — do not add error handling logic. The flow continues to the next step regardless.
Step 5: Build the Second Email — Send at 24 Hours
Add a Time Delay to reach 24 hours from the original trigger. Add a second Email action.
This email should introduce a soft incentive. Do not offer a discount in email one — you train customers to abandon carts deliberately. By the 24-hour mark, a modest offer is appropriate for customers who still haven't converted.
Try a value-based angle instead of a straight discount: free shipping, a bonus product, or a limited-time bundle. These convert at comparable rates to percentage discounts but protect your margin better.
Add social proof here. A short testimonial block or a star rating widget increases trust at the decision stage. Klaviyo integrates natively with Okendo, Yotpo, and Judge.me — all three support dynamic review blocks inside Klaviyo emails as of mid-2026.
Step 6: Add the Second SMS — Send at 48 Hours
Add a final Time Delay to reach 48 hours. Add a second SMS action.
This is your last touch. Make it direct and create urgency without being aggressive. If you are offering an incentive, reference it explicitly:
{{ person.first_name }}, your free shipping offer expires tonight. Grab your cart: {{ event.extra.checkout.checkout_url }} Reply STOP to opt out.
After this SMS, add an Update Profile Property action to tag the profile as abandoned_cart_sequence_complete. This lets you suppress these contacts from future re-triggers for a set period — 30 days is a reasonable cooldown window.
Step 7: Set Up A/B Testing on Your Subject Lines
Why should you A/B test inside the flow rather than separately?
Klaviyo's native A/B split block runs directly inside a flow. This means your test runs on real triggered traffic, not a one-time campaign send, giving you statistically significant results faster.
Click the email action in your first message. Select Add Variation. Change only the subject line between the two variants — keep body copy identical. Let the test run until each variant has at least 250 deliveries before drawing conclusions. Klaviyo flags statistical significance automatically in the flow analytics panel.
Test one variable at a time. Subject line, send time, and incentive amount are the three highest-impact variables to work through in sequence.
Step 8: Configure Conversion Tracking
Go to Flow Settings → Conversion Metric. Set it to Placed Order with a conversion window of 5 days. This tells Klaviyo to attribute a completed purchase to this flow if it happens within five days of any message being opened or clicked.
Five days is the industry standard window for abandoned cart attribution. Going shorter under-counts recoveries; going longer over-counts them by capturing organic completions.
Check your flow analytics weekly for the first month. The key metrics are: revenue per recipient (benchmark: $3–$8 for most e-commerce niches), email open rate (benchmark: 45–60% for triggered flows), and SMS click rate (benchmark: 15–25%).
Step 9: Activate and Monitor
Before activating, use Klaviyo's Flow Preview tool to send a test version to your own email and phone number. Confirm the dynamic product block populates correctly, the checkout URL resolves, and the opt-out link in SMS is present.
Set the flow status to Live. Klaviyo will begin processing new Started Checkout events immediately.
Set a calendar reminder for 14 days out to review your first performance data. Make no changes before then — flows need enough volume to produce meaningful signal.
If you want to review your broader marketing content system alongside this flow, the free Lenka Studio social media toolkit includes a content calendar template that works well alongside your Klaviyo automation schedule — useful for planning promotional campaigns that run parallel to your recovery flows.
Frequently Asked Questions
How many messages should an abandoned cart flow have?
Three to four touches — typically two emails and one or two SMS messages — is the established sweet spot in 2026. Fewer messages leave recoverable revenue on the table; more messages accelerate unsubscribes. The sequence in this guide (email at 1 hour, SMS at 3 hours, email at 24 hours, SMS at 48 hours) reflects current Klaviyo benchmark data.
Does Klaviyo SMS work for businesses in Australia and Singapore?
Yes. Klaviyo supports SMS sending in Australia, Singapore, Canada, and the US as of 2026. Sender ID requirements differ by country — Australian businesses typically use a long code or an approved alphanumeric sender ID, while US businesses use a 10DLC-registered number or short code. Register your number through Klaviyo's carrier compliance portal before activating SMS sends.
What if my store does not send a checkout_url in the cart event?
If your platform does not pass a checkout_url, use Klaviyo's Site URL event property or build a custom URL using your store's cart persistence logic. WooCommerce, for example, requires a custom snippet to pass the cart URL into the Klaviyo event payload. Check the Klaviyo Help Centre for platform-specific setup guides.
How is this different from a welcome flow or a browse abandonment flow?
An abandoned cart flow triggers on Started Checkout — meaning the customer reached the checkout page. Browse abandonment flows trigger on Viewed Product, which is earlier in the funnel and requires a softer, less urgency-driven tone. Cart abandonment is a higher-intent signal and typically converts at two to three times the rate of browse abandonment sequences.
Should I offer a discount in every cart recovery flow?
No. Leading with a discount conditions customers to abandon carts deliberately to wait for an offer. Reserve incentives for the 24-hour or 48-hour message, and test non-monetary incentives like free shipping or a bonus gift first. Many brands see comparable recovery rates without discounting, which protects gross margin significantly at scale.
Next Steps
Once your abandoned cart flow is live and collecting data, the logical next build is a post-purchase flow to drive repeat orders — often the second-highest-ROI sequence in Klaviyo after cart recovery. You may also want to layer in predictive analytics: Klaviyo's Predictive Analytics feature (available on Growth plans and above) can score customers by predicted lifetime value, letting you personalise incentive amounts dynamically rather than offering the same discount to every contact.
If you want a second pair of eyes on your Klaviyo setup, flow architecture, or broader e-commerce marketing stack, the team at Lenka Studio works with SMBs across Australia, Singapore, Canada, and the US to build and optimise marketing automation systems that scale. Get in touch to talk through your setup — no commitment required.




