What does a Klaviyo abandoned cart template need to work?
A Klaviyo abandoned cart template needs four parts: one trigger that matches your data, a cart block that reads the trigger’s line items, a checkout link that restores the cart, and a filter that ends the sequence when the shopper orders. Everything else, including copy, colour and imagery, is secondary and safe to test.
This page gives you the working structure we build lifecycle flows around, then tells you what breaks when you change each part. It is written for operators at $3M–$30M in revenue on Shopify Plus or a paid subscription platform, who already have Klaviyo connected and want the build, not a tour of the feature. If Klaviyo is not yet syncing orders cleanly, fix that first with the Klaviyo order sync guide, because every filter below depends on order data arriving.
Klaviyo reports that 41% of email revenue across its 183,000+ brands comes from automated flows (vendor-reported). Abandoned cart is usually the first of those flows, which is why a small mistake in it costs more than a small mistake in a campaign.
If your store is under $3M, this build is more machinery than you need. A single well-written reminder will do most of the work, and the Klaviyo abandoned cart flow article covers that lighter version.
What is in the template, at a glance?
The template is three emails, each with a single job, sharing one cart block and one button. The table shows the job, the dynamic content and the thing to leave out for each email, so you can see the whole design before you build it.
| Job | Dynamic blocks | Leave out | |
|---|---|---|---|
| 1. Reminder | Put the cart back in front of the shopper | Greeting with fallback, cart loop, checkout button | Discount, urgency language |
| 2. Friction removal | Answer the questions that stall a purchase | Cart loop (shorter), shipping and returns line, checkout button | Repeating the first email’s copy |
| 3. Last nudge | Give a reason to finish now, if you have one | Cart loop, optional coupon block, checkout button | More than one incentive |
Take from the table that only the cart loop and the checkout button appear in every email. Those two are the load-bearing parts, and the rest of this page spends most of its time on them. Delays between emails are deliberately missing from the table: the right gap depends on your buying cycle, so treat it as metric to confirm from your own flow report.
The abandoned cart email examples article shows finished copy from other brands. This page is the scaffold that copy would sit inside.
How do you build the Klaviyo abandoned cart template step by step?
Build it in five steps, in this order, because each step depends on the one before. Teams that start with the email design and leave the trigger and filters until last usually ship a flow that looks right and sends to the wrong people.
Step 1: Choose the trigger and set the flow filters
Pick the trigger that matches what your store actually sends. Klaviyo’s Shopify integration provides events for a cart being added to and for checkout starting, and the two carry different data. A checkout-started trigger has an email address, because the shopper typed one at checkout. A cart-added trigger may only identify a known, logged-in profile.
For most stores at this size, the checkout trigger is the safer base, since it always has a reachable person. Use the cart trigger as a second flow only if you can identify enough carts to make it worth a separate sequence. Both live in the same family of flows described in Klaviyo flows.
Then set the flow filters before you write a word. Add one that excludes any profile who has placed an order since starting the flow. Add another for profiles you should never email, such as suppressed addresses or profiles that fall under a rule your team has set for a segment. The exact filter options change with Klaviyo’s interface, so check them in the flow builder rather than trusting a screenshot from a blog.
The step teams get wrong is the exit. They add a filter on the flow and forget that the filter is only evaluated at the moments Klaviyo evaluates it. Place a test order midway through a test run and confirm the second email is skipped. If it isn’t, the flow is mailing paying customers.
Step 2: Build the cart block from the event payload
The cart block is a loop over the line items in the trigger event. In Klaviyo’s template language, you iterate the list of items and print fields for each one: product title, variant, quantity, image and price. The syntax lives in Klaviyo’s own documentation, and the field names differ between the checkout and cart events, so read them from the event in a real triggered profile rather than copying them from a forum post.
The working method is short. Open a profile that has triggered the flow, view the trigger event, and read its properties. Whatever appears there is what your loop can use. Then build the block to print only what is present.
Three details decide whether the block survives real data. First, wrap each field in a fallback, so a missing image shows nothing rather than a broken icon. Second, cap the number of items shown, so a cart with a long list does not stretch the email. Third, if your catalogue uses variants, print the variant title beside the product title, because two identical names with different sizes look like a bug.
Keep the block as one saved, reusable component. When you change it once, all three emails change. If you paste the loop into each email separately, you will eventually fix it in two of the three, and the third will keep sending the old version for months.
Step 3: Write the three emails
Write email one as a plain reminder. The shopper left; you are putting the cart back where they can see it. One short paragraph, the cart block, one button. Nothing about scarcity and no discount. The subject line does most of the work here, and abandoned cart subject lines covers the options worth testing.
Write email two to remove friction. Most stalled checkouts stop on a question: shipping cost, delivery time, returns, or whether the item fits. Answer the two or three your customer service inbox hears most, in plain sentences, above a shorter cart block. Take the questions from your own support tickets, not from a generic list. This is where a business with a clear returns policy has an advantage, and where one with a vague policy has nothing to say.
Write email three as the last nudge. If you have a legitimate incentive, this is the only place it appears. If you do not, use it to say plainly that the cart will not be held, provided that is true for your inventory. Never write a scarcity line the store cannot back up.
Each email gets exactly one button, and it points at the checkout URL from the event. Do not add a second link to a collection or your homepage. Every extra link is a way out of the cart.
Step 4: Set the delays and the sending rules
Set the wait before each email as three separate values, and record them somewhere your team can read. The first delay should be long enough that a shopper who is still deciding is not interrupted, and short enough that the cart is still fresh. Where exactly that sits is metric to confirm for your store. It depends on how long your customers take to buy.
Then decide how smart sending and quiet hours apply. Smart sending skips a message to a profile who has recently received another, which protects the shopper and can quietly delay or drop a step in your sequence. Turn it on only after you have decided which of your other flows should outrank abandoned cart when they collide. A welcome email and a cart reminder landing together is a real scenario.
Keep one thing in mind about volume. At a few orders a day the delay values barely matter. At high volume, the delay is a lever that moves revenue and complaint rates at once, so change one delay at a time and give it a full cycle before you read the result.
Step 5: Test with a real triggered profile
Test with a real cart on a real profile, not a preview with sample data. Sample data always fills every field, so it hides exactly the gaps that break live sends: a product with no image, a variant with no title, a cart with one item versus a cart with a dozen.
Run four checks. Trigger the flow with a one-item cart and read every email. Trigger it again with a long cart. Click the button on a phone, logged out, and confirm the cart is intact when it opens. Then complete a test order and confirm the flow stops. Skipping the third check is the most common reason a flow “works” and still recovers nothing.
What breaks if you change each part of the template?
Each part fails in a different, specific way, and knowing the failure lets you change the part on purpose. The table pairs each element with the change teams usually make and what follows from it.
| Element | Common change | What breaks |
|---|---|---|
| Trigger | Switch from checkout to cart event | Profiles with no email enter and never receive anything, and the flow looks lower-performing than it is |
| Cart loop | Paste a loop written for one event into another | The block renders empty or prints the wrong fields |
| Checkout link | Point the button at a collection page | The cart is lost and the shopper starts again |
| Exit filter | Remove it to “simplify” the flow | Buyers keep receiving reminders and complaints rise |
| Discount | Move it into email one | Repeat customers learn to abandon carts to get the code |
| Delays | Shorten all three at once | You cannot tell which change moved the result |
Read the table as a list of things to test one at a time. Changing two rows in the same week makes the flow’s results impossible to interpret.
Two of those changes deserve more explanation. Moving the discount earlier looks like an obvious win, because the first email is the most opened. It also lands on shoppers who would have come back without an incentive, so revenue attributed to the flow rises while margin falls. The only way to see it is a holdout group.
Shortening the delays is the second. A short first delay catches shoppers who were interrupted by a doorbell, which is real revenue, but it also emails people who are still on your site. Check flow analytics for how many orders arrive shortly after the first email, then decide whether the reminder caused them.
How should you adapt the template to your store?
Adapt the template by changing the content of email two and the incentive in email three, and leave the structure alone. Those are the two places where your business differs from the next one. The trigger, the loop, the button and the exit filter should be the same for everyone.
For a store selling higher-priced or considered items, the second email carries the weight, and it should be longer. A customer buying a mattress needs sizing, returns and delivery information. A customer buying a low-priced consumable needs almost none of that, and a short second email is the honest choice.
For a store with a subscription option in the cart, check what the event payload prints for a subscription line. Some setups show the subscription plan as a separate property or a different product, and the loop can print a confusing title. Look at a real triggered cart before you assume it renders cleanly.
For a store with regional pricing or several currencies, confirm the price in the block matches what checkout shows. A block that prints the base currency price under a local checkout is a trust problem, and it is easy to miss in a US-only test.
Finally, decide what the template does not cover. It does not replace the checkout page’s own messaging, and it does not handle SMS. If text messages are part of your plan, the Klaviyo SMS marketing article covers that channel and its consent requirements, which you should confirm with counsel. The abandoned cart text piece covers the message itself.
Should you use AI to write the abandoned cart copy?
AI is fine for drafting variants of subject lines and second-email copy, and a poor choice for the loop, the filters and the trigger. A drafted sentence that reads badly costs a rewrite. A wrong filter costs customers.
Use a model to generate several versions of email two’s friction answers from your real support tickets, then edit them against your actual policy. Do not let it invent shipping times or return windows, since it will produce plausible ones that your store does not offer. The rule is the same one behind AI email marketing: the model drafts, a person owns the claims.
Where AI does not belong is anything that decides who gets emailed. Segmentation and exit logic run on your data, and a wrong answer there costs more than the minute a human takes to check it.
How do you know whether the template is working?
Measure it against a holdout group, not against zero. A flow’s attributed revenue counts every order placed by someone who entered it, including shoppers who would have come back on their own, so the raw number always looks better than the truth.
Set up a split at the start of the flow that sends a small share of triggered profiles nothing at all. After a full buying cycle, compare orders per triggered profile between the group that received the emails and the group that did not. The gap is your real lift. The size of the holdout and the length of the cycle are values you set from your own volume, so mark them metric to confirm in your plan.
Then read the flow’s own report for three things: which email produces the orders, where unsubscribes and complaints concentrate, and whether revenue per recipient falls off after email three. Those tell you whether to add a fourth email, cut one, or leave the structure alone. The flow revenue calculator helps you turn your own recipient counts and order values into a working estimate before you commit engineering time, with your inputs and none of ours.
At $3M–$30M, this is also the point where the template stops being a one-off build. A scaling brand usually runs abandoned cart beside welcome, post-purchase and win-back flows that share suppression rules, and the abandoned cart template is where a shared-rule mistake first becomes visible. The abandoned cart guide covers the wider strategy this template sits inside.
Who should not use this template?
Do not use this template if you cannot yet trust your order sync, if you are under the revenue floor where a single reminder does the job, or if your checkout sits in a flow Klaviyo cannot see. A flow that cannot tell who has bought will email buyers, and no amount of copy fixes that.
Also skip it if your cart data is unreliable. A shop with a heavily customised checkout may not send a complete event, and the cart block will print blanks. Fix the data first. Where the cart is captured on a separate app, the Shopify abandoned cart app article covers the alternative.
Who should own a flow like this?
Abandoned cart is a Lifecycle flows problem: a trigger, a set of filters and a cart block that all have to agree with your live order data. The template is the shape of it, and keeping it correct as your catalogue, checkout and other flows change is ongoing work. If you want that owned rather than patched, see how we build and run lifecycle flows.
Sources
- Klaviyo, benchmark data across 183,000+ brands: 41% of email revenue comes from automated flows (vendor-reported). No other external figures are quoted; the template structure is written from how lifecycle flows are built and tested.