Theory Road.
← PerspectivesE-commerce

Klaviyo Email Flows for Ecommerce: The Six That Earn Their Keep.

Flows are the automated messages that run while you sleep, and we run them on our own stores. Here are the six that matter, how each one triggers, the filters that keep them from annoying customers, and how to measure them honestly.

By Theory RoadSeptember 21, 20269 min read

The Klaviyo email flows that earn their keep in an ecommerce store are six: a welcome series for new subscribers, an abandoned checkout flow triggered by Checkout Started, browse abandonment triggered by Viewed Product, a post-purchase sequence, a win-back flow for lapsed customers, and a back-in-stock notification. Each one triggers on an event from your store integration or on membership in a list or segment, and each one needs filters so it stops the moment the customer does what you asked. This piece covers the six flows, how the triggers and filters work, where SMS fits, the deliverability basics that keep flows landing in the inbox, how to measure them, and the mistakes that turn flows into unsubscribes.

A flow in Klaviyo is an automated sequence of emails, SMS messages, delays and conditional splits that a profile enters when a trigger fires and moves through on its own schedule, as opposed to a campaign, which is a single send to a list or segment at a time you choose.

The six flows and what each one does.

We run these on our own stores, and they are the same six we set up first on any store we take over. Everything else, price drop, VIP, sunset, cross-sell, is a variation on one of them.

The six core Klaviyo flows
FlowTriggerMain filter or exitJob
Welcome seriesAdded to list (sign-up form or checkout opt-in)Placed Order zero times since starting the flowIntroduce the brand, set expectations, earn the first order
Abandoned checkoutCheckout Started metric from the store integrationPlaced Order zero times since starting the flowRecover carts that reached checkout with contact details
Browse abandonmentViewed Product metric, requires the onsite tracking snippetNo Checkout Started or Placed Order since starting, plus a frequency capNudge identified visitors who looked and left
Post-purchasePlaced Order, optionally Fulfilled Order for delivery timingSplit by first order versus repeatConfirm, educate, request a review, earn the second purchase
Win-backSegment entry: last order older than your repurchase cyclePlaced Order since starting the flowBring back customers who have gone quiet
Back in stockSubscribed to Back in Stock for a variantItem in stock and profile has not purchased itSell the restock to the people who asked

How triggers actually work.

Klaviyo flows start from one of a handful of trigger types, and picking the right one is most of the setup. Metric triggers fire when a specific event lands on a profile: Checkout Started, Added to Cart, Viewed Product, Placed Order, Fulfilled Order, Refunded Order and so on. These events come from the store integration, whether that is Shopify, WooCommerce or BigCommerce, and from the onsite tracking snippet for browse events. List triggers fire when a profile is added to a list, which is how the welcome series starts. Segment triggers fire when a profile enters a segment definition, which is how win-back and VIP flows start without any customer action.

Two details cause most of the confusion. First, browse abandonment only works for profiles Klaviyo can identify: they clicked an email, filled a form, or are cookied from a previous session. Anonymous visitors do not enter it. Second, Checkout Started only fires when the customer reaches the checkout with an email or phone on the profile, so an Added to Cart flow catches earlier abandonment but with less intent and a smaller identified audience.

Flow filters are evaluated every time a profile is about to receive a message, and they are the difference between a flow and a nuisance. The single most important one is Placed Order zero times since starting this flow on the abandoned checkout flow. Without it, the customer who bought ten minutes after the first reminder gets the second and third reminders anyway.

Building the abandoned checkout flow.

Here is the one we build first, because it is closest to revenue and the pattern transfers to every other flow.

Create the flow and set the trigger.
In Klaviyo go to Flows, click Create Flow, choose Create From Scratch, name it, and pick the Metric trigger. Select Checkout Started from your store integration, not from the API or a form tool if more than one source appears.
Add the flow filter.
Open the trigger setup and add a flow filter: Placed Order zero times since starting this flow. Add a second filter if you sell consumables: Checkout Started zero times since starting this flow, so a customer who abandons twice in a day enters once.
Set delays and messages.
Add a Time Delay, then the first email, then a longer delay and a second email, then a third for the profiles that still have not purchased. The first message should read like a helpful reminder with the cart contents pulled from event data, not a discount. Reserve any incentive for the last message, and gate it behind a Conditional Split on customer history so you are not discounting a repeat buyer who would have returned anyway.
Add the SMS branch only where consent exists.
Insert a Conditional Split on SMS consent. On the consented branch, add one SMS after the first email. Confirm quiet hours are set in account settings so the SMS never sends overnight in the recipient's time zone.
Turn on Smart Sending and set the flow live.
Enable Smart Sending on each message so a profile that just received a campaign is not hit twice in a short window. Set each message from Draft to Live one at a time, and check the flow analytics after the first day for triggered counts, skipped counts and the reason for skips.
Suppress recent purchasers everywhere.
Add the same Placed Order filter to browse abandonment, and add a time-based filter such as Placed Order zero times in the last 30 days, so post-purchase and cart flows never overlap for the same profile.

Segments that drive win-back and VIP.

Win-back and VIP flows do not wait for an event; they wait for a segment definition to become true. Klaviyo segments update continuously, so a profile enters the flow the day it qualifies.

For win-back, define the segment on recency: Placed Order at least once over all time, and Placed Order zero times in the last N days, where N is longer than your typical repurchase cycle. Pull that cycle from your own order data (the median gap between first and second orders is a fine starting point) rather than a rule of thumb. For VIP, define it on purchase count and value: Placed Order at least a chosen number of times, or total order value above a threshold you set from your own customer distribution. Trigger a flow on segment entry that treats these customers differently: early access, a thank-you, a request for a review or referral, and no discount, because they are already buying.

SMS earns its place in the abandoned checkout, back-in-stock and shipping flows, but only for profiles that gave explicit consent to receive marketing texts. In Klaviyo, SMS consent is a separate property from email consent, collected through a compliant sign-up form, a checkout opt-in, or a keyword. Sending to a profile without that consent is a legal problem under the TCPA and similar laws, and Klaviyo will not send to it anyway if your flows are set up correctly.

Quiet hours live in the SMS settings and apply per recipient time zone; a message queued during quiet hours is held until they end. Set them, keep the frequency low, and put the compliance language on the sign-up. We treat SMS as the high-intent branch of a flow rather than a separate program, and we apply the same rules we use for lead-generation texting in the TCPA compliance checklist.

Deliverability basics that keep flows landing.

  • Dedicated sending domain: set up a branded sending domain in Klaviyo so mail is authenticated under your own domain with the proper DNS records, rather than a shared domain whose reputation you do not control
  • Warm-up: when moving to a new sending domain or a new account, send to your most engaged profiles first and expand over a couple of weeks, so mailbox providers learn the domain from good engagement
  • Sunset unengaged profiles: build a segment of profiles that have not opened or clicked in a long window and have not purchased, run a short re-permission flow, then suppress the rest; sending to people who never engage is what damages inbox placement for everyone else
  • List hygiene at the source: double opt-in or at least a confirmation step on forms that attract bots, and a bounce and spam complaint review every month

Flows are the highest-engagement mail you send, so they are also the first to suffer when the domain reputation slips because of a bad campaign. Deliverability is a property of the account, not the flow.

Measuring flows without fooling yourself.

Klaviyo attributes revenue to a flow when a recipient purchases within the attribution window after an open or click. That number rises with every profile you push through the flow, so on its own it rewards sending more. The two measures we use instead are revenue per recipient, which Klaviyo reports per flow and per message, and a holdout comparison.

For the holdout, add a random split at the start of the flow that sends nothing to a small slice of profiles, and compare purchase rate and revenue between the two branches over a month. For abandoned checkout the flow will usually win clearly. For post-purchase and win-back, the holdout often shows the discount was paid to people who would have bought anyway, which is the exact thing attributed revenue cannot show you.

Flow performance rolls up into the same revenue system we build for stores in our e-commerce work, and the flow set is the same whether you sell food and beverage or any other physical product.

A flow that discounts every time is not automation. It is a standing markdown with extra steps.

Mistakes that turn flows into unsubscribes.

  • One giant welcome email that tries to tell the whole brand story, sell, and collect a review in a single send, instead of a short series with one job per message
  • A discount in every flow, which trains customers to abandon carts on purpose and erases margin on orders that were coming anyway
  • No suppression of recent purchasers from cart and browse flows, so the customer gets a reminder for the thing sitting on their porch
  • SMS sent to profiles without explicit consent, or outside quiet hours, which is a compliance exposure and a fast route to carrier filtering
  • Browse abandonment with no frequency cap, sending a message every time an engaged customer looks at a product
  • Judging flows on attributed revenue alone and never running a holdout, so the flow that mostly discounts existing demand looks like the best performer

What are the most important Klaviyo flows for an ecommerce store?

Start with six: a welcome series, an abandoned checkout flow on the Checkout Started event, browse abandonment on Viewed Product, a post-purchase sequence on Placed Order, a win-back flow triggered by a recency segment, and a back-in-stock notification. Build the abandoned checkout flow first because it is closest to revenue, then the welcome series, then the rest.

What is the difference between a Klaviyo flow and a campaign?

A flow is automated: a profile enters when a trigger fires, such as an event from your store or entry into a segment, and receives messages on a schedule you designed once. A campaign is a one-time send to a list or segment at a time you choose. Flows handle the predictable moments; campaigns handle launches, promotions and news.

How do I stop Klaviyo cart emails going to people who already bought?

Add a flow filter on the abandoned checkout flow: Placed Order zero times since starting this flow. Klaviyo checks the filter before each message, so a customer who purchases after the first reminder is dropped before the second. Add a similar filter to browse abandonment, and a recency filter such as Placed Order zero times in the last 30 days where flows could overlap.

Can I send SMS in Klaviyo flows?

Yes, but only to profiles with explicit SMS marketing consent, which Klaviyo stores separately from email consent and collects through compliant forms, checkout opt-ins or keywords. Set quiet hours in SMS settings so messages are held overnight in the recipient's time zone, keep frequency low, and use SMS for the high-intent branches such as abandoned checkout and back in stock.

Work with us

Let’s talk about what’s next.

A short note on where the business is and where it needs to go. A senior partner replies within one business day.

t@theoryroad.com

Your briefUnder a minute

Tell us what you need.

Read by a person. Never sold, never added to a list.