Insights · klaviyo flow logic

Klaviyo flow filters vs trigger filters: which one decides who gets the email

One is checked once, at the door. The other is checked again before every email, and that is where the money leaks.

A Thermos flask and food jar on a rock beside a lake
Theo Tziapouras, founder and strategy at Engage Commerce
Theo TziapourasFounder and strategy
11 August 2026 1,205 words6 minute read
In short · six parts

Getting these two the wrong way round is the most expensive mistake in a Klaviyo flow, because nothing looks broken. The flow sends, the reports look healthy, and a share of the people receiving it should have stopped receiving it days ago.

A Klaviyo top performing flows card listing five live flows, each with the event that triggers it printed underneath the flow name and a live status pill beside it

Checked once at the door, or checked at every step

The trigger filter is the bouncer at the door. The flow filter is the steward who walks the room. One looks at somebody the moment the trigger fires, decides whether they come in, and then stops caring. The other checks everybody again before each email goes out, and shows people out when they no longer belong.

That's the whole idea, and everything else follows from it. Ask of any condition: does this describe the person at the moment they entered, or does it describe somebody who should still be getting this tomorrow?

What a trigger filter is for

The trigger is the event: a checkout started, a product viewed, an order placed, a list joined. The trigger filter narrows that event at the point it happens, and it's the right place for anything about the event itself.

Every row in that card names its trigger under the flow name, and they're all different events. That's the useful discipline: one flow, one moment, one job. If two flows share a trigger and differ only in their filters, they usually want to be one flow with a split.

What a flow filter is for

Flow filters answer a different question. Should this person still be here? They're checked before every message, so they're the right home for anything that can change while the sequence is running.

  • Has not placed an order since starting the flow, which is the one every cart flow needs
  • Is not already in another sequence you wouldn't want to overlap with
  • Still consents to email marketing, which is checked for you but worth understanding
  • Has not become a customer, for flows written to people who have never bought
  • Is not in your suppression segment, saved once and used everywhere

Somebody who fails a flow filter leaves quietly. They don't get the rest of the emails and they don't show up as a problem anywhere, and that's exactly why nobody notices a filter that's too tight.

The reminder that arrives after the order

Somebody starts a checkout, gets the first reminder, buys an hour later, and then gets two more emails asking whether they forgot something. The condition was written as a trigger filter, so it was true when they entered and never looked at again.

A woman sitting on a sofa with a laptop open on her lap, holding a pale blue purse over an opened pink delivery box with a phone beside her

It costs more than the embarrassment. Those sends go to people who were about to be your best customers, they train the reader to ignore the sequence, and complaints from irritated buyers are the expensive kind. The abandoned cart flow is the one to check first, because it's the one that leaks.

A conditional split isn't a filter

Splits get used as filters, and that's the second commonest fault we find. A split routes people down one path or another and keeps everybody in the flow. A filter removes them.

ControlWhen it's checkedWhat happens to the person
Trigger filterOnce, as the trigger firesThey either enter or they don't
Flow filterBefore every messageThey leave the flow the moment they stop matching
Conditional splitAt the point it sits in the flowThey carry on, down one branch or the other
Time delayNot a check at allThey wait, and the filters run again afterwards

The split is also the honest way to handle a discount. Route the people who need one down a branch that offers it, instead of filtering out the people who don't and losing them altogether.

One more thing about delays. A filter isn't watching while somebody waits, so the useful mental model is a queue with a check at the front of it. That's why a long delay with no filter after it is the most dangerous shape a flow can take.

The order to read a flow in

Open the flow and read it in this order, writing each answer down. It takes about ten minutes per flow and it finds most faults.

  1. Name the trigger, and say out loud what moment it describes
  2. Read the trigger filters: are any of them about the person, not the event?
  3. Read the flow filters: is the since starting the flow condition actually there?
  4. Walk each split and check both branches end somewhere sensible
  5. Check the delays, then confirm the filters run again after each one
  6. Send yourself through it, buy something in the middle, and see what arrives

That last step is the one people skip, and the only one that proves anything. Every flow we rebuild gets walked this way before it goes live, and the flow library each publish the trigger and the filters we use.

Theo Tziapouras, founder and strategy at Engage Commerce

Theo Tziapouras

Founder and strategy at Engage Commerce, the ecommerce agency for 7 and 8 figure DTC brands.

What is the difference between a trigger filter and a flow filter in Klaviyo?

A trigger filter is checked once, at the moment the trigger fires, and decides who enters the flow. A flow filter is checked again before every message, so somebody who stops matching leaves partway through. Anything that can change while the sequence runs belongs in the flow filter.

Why are customers still getting cart reminders after they buy?

Almost always a missing flow filter. The condition about not having placed an order needs checking before every email, not only at entry, and it needs to count orders since the person started the flow, not orders in general.

Should I use a flow filter or a conditional split?

Use a split when the answer changes which email somebody gets, and a filter when the answer means they should get nothing more. Filtering people out to avoid sending them the wrong message loses the ones who'd have been happy with a different message.

Do flow filters run during a time delay?

They're checked before the next message, not continuously through the wait, and that's the behaviour you want. Somebody who buys in the middle of a long delay gets checked again before the next email and leaves the flow at that point instead of receiving it.

How many filters should a flow have?

As few as will do the job. Every extra condition is another way for the flow to silently stop sending, and a flow that's gone quiet is much harder to spot than one that never worked. Two or three well chosen filters cover most ecommerce flows.

Not got your answer?Chat to us
End matter

Filters decide who leaves, splits decide what they read

Most flows that underperform aren't badly written. They're badly conditioned: a filter doing a split's job, a condition about the person sitting where a condition about the event belongs, and nobody able to see it because the reports only show what was sent. Read the logic before you rewrite the copy. The copy is usually fine.

Theo TziapourasFounder and strategy · Engage Commerce

Would you rather this was just handled?

Bring your Klaviyo account and the thing annoying you most. We will tell you what we would fix first, on the call, before you spend anything.

Engage CommerceTheo Tziapouras, founder of Engage Commerce

Book a call with our founder.

We're all about relationships built on trust, mutual respect and a shared vision for success. If that sounds like your vibe, let's make some waves together 🌊