Playbook

Klaviyo Flow Anatomy: What Each Layer Actually Does

Misconfiguring a single layer of a Klaviyo flow - a filter set wrong, a delay left on default, a split that routes the wrong people - can quietly undermine results you'll never be able to trace back to the source. Here's a plain-English breakdown of how email automation flows are actually built, layer by layer, so you stop treating them as black boxes you turn on and forget.

By The Kaydence TeamJuly 10, 20266 min read

A lot of DTC brands set up a flow once, see some revenue numbers in the Klaviyo dashboard, and leave it alone forever. That's not necessarily wrong - good flows do run themselves. But 'set it and forget it' only works if you understood what you were setting in the first place. Most people don't. They copied a template, filled in their copy, and moved on. So when a flow isn't performing, they have no idea where to look.

The Trigger Defines Everything Downstream

The trigger is the single event or condition that starts a contact's journey through a flow. Every decision you make after it - timing, content, splits - only makes sense relative to what the trigger tells you about that person. Klaviyo supports three main trigger types: metric-based (someone placed an order, viewed a product, started checkout), list or segment membership, and date-based (useful for anniversary or birthday flows). The trigger isn't just a starting pistol. It carries context. An 'Active on Site' trigger tells you someone is browsing right now. A 'Placed Order' trigger tells you they just converted. A 'Joined List' trigger tells you they opted in but haven't bought yet. Your entire Klaviyo flow setup should reflect what you know at that moment - nothing more.

Trigger Filters vs. Flow Filters: Two Different Jobs

This is where a lot of brands quietly break their flows. Klaviyo gives you two filtering layers, and they behave differently in ways that matter a lot.

  • Trigger filters run at the moment someone would enter a flow. They decide whether this person, based on what's true right now, should enter at all. Example: only let someone into your browse abandonment flow if they have NOT placed an order in the last 30 days.
  • Flow filters run continuously throughout the flow. Every time a contact is about to receive the next email, Klaviyo re-checks the filter. If the condition is no longer true, the person is removed before the next send. Example: if someone converts after entering your abandoned cart flow, a flow filter that checks 'Has NOT placed order' removes them before email two hits their inbox.
  • Skipping flow filters is one of the most common mistakes in Klaviyo flow setup. Someone buys, and your next automated message is still telling them to come back and complete their purchase. That erodes trust, not recovers it.

Time Delays Are a Strategy, Not a Default

Klaviyo's default time delays are fine as starting points. They are not strategy. The right delay between emails in a flow depends on your product category, your average consideration window, and what the previous email asked the person to do. For a consumable with a 30-day repurchase cycle, a post-purchase email sequence might look like: email 1 at one hour post-purchase, email 2 at day 7, email 3 at day 25. For a high-ticket item - say, a $1,200 furniture piece - you might run email 1 at one hour, email 2 at day 3, and email 3 at day 10, giving the customer more space to consider. The principle: think about what's actually happening in the real world between your emails. What is the customer doing? What objections are they sitting with? Set your delays around that, not around what the template suggested.

Conditional Splits: One Flow, Multiple Paths

A conditional split checks something true about a contact at the moment they reach it, then routes them down one of two branches. This is where flows get powerful - and where they get complicated fast if you overdo it. The most useful splits in DTC email automation are usually simple. Take a post-purchase flow split on 'Has placed order before?': the YES branch skips the brand introduction and leads with a loyalty angle; the NO branch includes social proof and a first-purchase incentive. One split, two meaningfully different messages, no separate flow required. The trap is nesting splits five levels deep trying to account for every possible scenario. Start with one clean split on the condition that actually changes your message. Add complexity only when you have the volume to see which path is winning.

A split that nobody wins tells you nothing. Aim for at least 250-500 contacts per branch over 4-6 weeks before drawing conclusions. If a branch consistently falls short of that, collapse it back into one path and revisit when your flow performance and list size support it.

A/B Tests Inside Flows Are Different From Campaign A/B Tests

Klaviyo lets you add an A/B test directly into a flow. Contacts are split randomly between the two variants, and you can test subject lines, send times, or entire email versions. The important difference from campaign testing: flow A/B tests accumulate results slowly because they depend on the trigger firing over time, not on a one-time send to your whole list. Wait until each variant has at least 500-1,000 unique recipients and a statistically comparable open or click count before calling a winner. Declaring a winner after 200 contacts across both variants is noise, not signal. Pick one meaningful thing to test per email, and let it run.

Smart Sending and Quiet Hours: The Guardrails Most People Leave on Defaults

Smart Sending is a Klaviyo setting that prevents a contact from receiving more than one flow email within a set window (16 hours by default - confirm in your account settings, as this can be adjusted). It's a useful guardrail against hammering someone who's in multiple flows at once - but it's worth thinking about whether every email in every flow should have it on. Transactional emails (order confirmation, shipping update) should usually bypass Smart Sending entirely. Time-sensitive emails - an expiring offer, a back-in-stock alert for a product that sells fast - probably shouldn't be held back because someone got a different email yesterday. Quiet Hours restrict sending to a time window. Klaviyo will hold the email and deliver it when Quiet Hours end, not skip it. Know the difference between a hold and a skip before you assume your emails went out when you expected.

Putting the Layers Together

When you understand what each layer does, you can audit any flow quickly. You ask: Does the trigger reflect what I actually know about this person? Do my trigger filters keep the wrong people out? Do my flow filters remove people when their situation changes? Are my delays based on real behavior or just defaults? Does each split change something meaningful about the message? That's the whole job. It's not glamorous, but it's the difference between a flow that produces results you can trust and one that produces numbers you can't explain.

This is the architecture Kaydence builds when it generates flows for your store - trigger logic, filters, timing, and splits configured around your actual product and audience, ready to import directly into your Klaviyo account. You review every email, revise anything you want, and decide when to go live. The done-for-you service is available now if you'd rather not start from a blank canvas.

Keep reading

See it on tempo.

Kaydence is the done-for-you Klaviyo email team - we build, write, and run your flows, campaigns, and creative. Book a free teardown and we’ll show you what we’d ship first.