Email Automations
Klaviyo Flow Filters vs Trigger Splits vs Exclusions: How to Stop Flows Overlapping
In Klaviyo, trigger filters decide who may enter a metric-based flow based on event data. Profile filters (flow filters) are checked at entry and again before actions, and can skip a message without always removing the person from the flow. Splits do not exclude people; they route everyone down different paths. Exclusions and purchase filters stop the wrong journey from continuing after someone buys or moves downstream. Use them together so flows do not stack.
Most ecommerce brands do not have too few flows.
They have too many journeys talking at once.
Cart emails while checkout has already started. Welcome offers after someone already bought. Browse reminders after the product is in the bag. That is not a creative problem. It is a hierarchy problem.
At Magicianly we say: flow hierarchy matters more than flow count. Better coordination is better. More automations are not automatically better.
By Emiel Dingemans, Founder of Magicianly
Why Do Ecommerce Flows Overlap?
Because each flow is usually built in isolation.
Someone builds a welcome series. Someone turns on cart abandonment. Someone adds checkout abandonment. Someone clones a browse flow from a template. Each piece can be reasonable on its own.
Together, one shopper can qualify for several of them in the same afternoon.
The symptoms look familiar:
- two abandonment sequences for the same intent;
- a discount in cart after the person already reached checkout;
- welcome content that keeps selling hard after the first order;
- post-purchase education competing with a winback that fired too early.
The fix is not "add more splits everywhere." The fix is to decide which control belongs at entry, which belongs before each message, which only routes content, and which must stop the journey entirely.
The broader system sits in ecommerce email flows. This article is the mechanics page.
What Is a Flow Trigger?
A flow trigger is the event or membership change that starts the journey.
Common ecommerce triggers:
- metric (Started Checkout, Added to Cart, Placed Order, Viewed Product);
- list or segment membership;
- date property;
- price drop or low inventory (where available).
Everyone who meets the trigger is a candidate for the flow. Filters and re-entry settings then decide whether they actually enter and how often they can come back.
Klaviyo documents triggers and filters in Understanding flow triggers and filters.
What Are Trigger Filters?
Trigger filters narrow entry using data on the triggering event (or custom object), not general profile history.
They are evaluated when someone first enters (for metric-based trigger filters). They are the right tool when only some events of that type should start the flow.
Examples:
- Placed Order includes Category A but not Category B (targeted cross-sell);
- Viewed Product value is above a threshold (high-AOV browse follow-up);
- Started Checkout only for a specific source or currency, when that dimension is available as a top-level property.
If the condition is about the person's wider history ("has never purchased," "is in the US," "has not placed an order since starting this flow"), that is usually a profile filter, not a trigger filter.
What Are Profile Filters (Flow Filters)?
Profile filters evaluate properties about the person or actions they have taken. Klaviyo checks them when someone enters the flow and again before flow actions such as sending an email or SMS.
Important behavior (easy to misread):
- If someone fails a profile filter at entry, they do not enter.
- If they fail a profile filter before an action, that action can be skipped, but the person may continue to later steps, where the filter is checked again.
- Some filters will keep failing for the rest of the flow; others can change as the person moves through time. That is why Klaviyo does not always remove someone completely after one skipped step.
The classic abandoned checkout example uses a profile filter such as: has placed order zero times since starting this flow. That keeps people in the recovery path only while they have not purchased.
Additional filters on a single message work like profile filters but apply to one action only. Skipping that message still lets the person continue.
What Are Splits? (And What They Are Not)
Splits route people. They do not exclude people.
Everyone who reaches a split continues through the flow, just on different paths. That is the opposite of a filter that is trying to keep someone out of a journey or skip them from a send.
Klaviyo now supports multi-branch splits: one split can define multiple paths (up to 20 paths including an Everyone else path). Paths are evaluated in order. The person takes the first path they qualify for. Profiles that match none of the configured paths go to Everyone else.
Multi-branch splits combine what used to be separate conditional and trigger split actions. Existing conditional splits and trigger splits keep working until Klaviyo migrates them; you do not have to rebuild overnight. Details: Multi-Branch Splits and Understanding flow branching.
Use splits when:
- first-time buyers and repeat buyers need different post-purchase content;
- high-value carts deserve a different recovery path than low-value carts;
- language or country should change the creative without building separate flows.
Do not use a split when the real goal is "this person should not be in this flow at all." That is a filter or a different trigger design.
What Do We Mean by Exclusions?
"Exclusions" is the practical Magicianly word for the rules that stop a flow from continuing once a higher-intent or completed action has happened.
In Klaviyo that usually shows up as:
- profile filters such as has placed order zero times since starting this flow;
- filters that remove people who started checkout from a shallower cart or browse path;
- message-level additional filters;
- separate flows for cart versus checkout so you are not recovering the same intent twice;
- welcome-series filters that stop hard-sell emails after someone purchases.
Exclusions are how hierarchy becomes real.
Quick Comparison
| Control | Main job | Who continues? |
|---|---|---|
| Trigger | Starts the flow | Candidates who fired the event or joined the list/segment |
| Trigger filter | Narrow entry using event/object data | Only matching events enter |
| Profile / flow filter | Gate entry and each action using profile/behavior | May skip an action; may still move forward |
| Split | Personalize path | Everyone continues, on different paths |
| Exclusion-style filters | Stop the wrong journey after purchase or downstream intent | Person leaves that recovery path or skips those sends |
Magicianly Defaults: Stop These Overlaps First
These are working approaches, not universal laws. Adjust to your stack and product, but start here.
1. Separate checkout abandonment from cart abandonment
Checkout started is a stronger signal than a looser cart add in many setups. Give checkout its own flow. Do not let the same person receive a full cart sequence and a full checkout sequence for the same attempt.
If your trigger structure still uses one metric for both, use filters so the shallower path exits when checkout starts or when the higher-intent flow takes over.
See the build detail in Klaviyo abandoned cart flow.
2. Exclude people who already purchased
Every abandonment and browse recovery path needs a clear "has not placed an order since starting this flow" (or equivalent) profile filter. Once they buy, recovery emails should stop. Education moves to post-purchase.
3. Suppress hard-sell welcome messages after a purchase
A welcome flow should still be able to deliver the promised offer and brand orientation. It should not keep pitching like the person never bought. Use filters or message-level rules so post-purchase buyers skip the remaining sell-hard emails, and let the welcome flow hand off cleanly to post-purchase.
4. Make browse exit when cart or checkout starts
Browse abandonment answers "why go back to this product?" It should not fight cart or checkout recovery for the same session. Filter browse so people who started checkout or placed an order leave that path. Build notes: Klaviyo browse abandonment flow.
5. Use splits for different messages, not as fake exclusions
First-time versus repeat buyer paths inside post-purchase are a good split. "Should this person be in post-purchase at all?" is not a split question. That is trigger and filter design.
6. Prefer one coordinated hierarchy over ten clever micro-flows
If two flows fight, do not add a third "catch-all." Decide which journey owns the shopper at that moment. An audit mindset helps: email marketing audit.
How Should You Decide Which Control to Use?
Ask four questions in order:
- Should this event start a journey at all? If only some events qualify, use a trigger filter.
- Should this person be allowed into the journey given their wider state? If not, use a profile filter at the flow level.
- Should this person get a different version of the journey? If yes, use a split.
- Should this journey stop because something more important happened? If yes, use exclusion-style profile filters or move them to the higher-intent flow.
If you find yourself chaining splits only to keep people out, you are probably using a routing tool as an exclusion tool.
Common Mistakes We See
- Building every template flow live with no cross-flow filters. Instant overlap.
- Using splits to "remove" people. They still get a path.
- Assuming a skipped message means the person left the flow. Profile filters can skip one action and continue.
- Discount ladders in both cart and checkout. Hierarchy fails twice.
- Open-based follow-up filters inside flows without remembering MPP. If that distinction matters, prefer clicks or purchases. Opens can be noisy for the reasons in Klaviyo open rates, MPP and bot clicks.
- Rebuilding every old conditional split on day one of multi-branch. Existing splits still work; migrate when you are already editing the flow.
So How Do You Stop Flows Overlapping?
Decide the hierarchy first: which journey owns the shopper at each stage.
Then assign the right control:
- trigger filters for event scope;
- profile filters for eligibility and stop conditions;
- splits for different creative paths;
- exclusions so purchase and higher intent always win.
That is how you get a retention system instead of a pile of automations. Lists and segments still matter for campaigns and consent; that decision is covered in Klaviyo segment vs list. Flows need their own discipline.
Frequently Asked Questions
What is the difference between a trigger filter and a profile filter in Klaviyo?
A trigger filter uses data from the triggering event (or custom object) to decide whether that event may start the flow. A profile filter uses profile properties or past behavior, and Klaviyo checks it at entry and before actions.
Do Klaviyo splits exclude people from a flow?
No. Splits route everyone who reaches them down different paths. If someone should not be in the flow, use filters or change the trigger design.
What is a multi-branch split?
A single split that can define multiple paths (up to 20 including Everyone else), combining what used to be separate conditional and trigger splits. Paths are evaluated in order; the first match wins.
Should cart and checkout abandonment be separate flows?
That is Magicianly's default for most ecommerce accounts. Checkout is higher intent. Separate journeys plus clear filters reduce stacked recovery emails for the same attempt.
Why did someone still move forward after failing a flow filter?
Because failing a profile filter before an action can skip that message without removing the person from the flow. Later steps can evaluate the filter again.
Where should "has not placed an order since starting this flow" live?
Usually as a profile filter on abandonment and browse flows, so recovery stops after purchase. Put similar stop logic on welcome hard-sell steps when someone buys mid-series.
Do I need to rebuild all old conditional splits?
No. Klaviyo states existing conditional and trigger splits keep working until a future migration. Use multi-branch splits for new work and when you are already redesigning a flow.
Related Reading
Email Automations
Ecommerce Email Flows: The Automations That Actually MatterMost ecommerce brands have a few automated emails running. Far fewer have a real lifecycle system. Here are the flows that matter and how they should work together.
Read NowEmail Automations
How to Build a High-Converting Klaviyo Abandoned Cart FlowA practical abandoned cart and checkout recovery framework built around reminders, objection handling and margin-conscious escalation.
Read NowEmail Automations
How to Build a High-Converting Klaviyo Welcome FlowA practical welcome-series structure built around fresh subscriber intent, offer delivery, trust and conversion.
Read NowAnalytics & Testing
Email Marketing Audit: How to Find What Is Actually Holding Revenue BackA useful email audit does not start with button colors. It starts with the business, then works down through lifecycle, deliverability, campaigns and testing to find the highest-impact constraint.
Read Now
