What is klaviyo segmentation, and what does it actually change?
Klaviyo segmentation is the set of rules that decides which profiles receive a given campaign or sit inside a given flow, built from conditions on email and SMS engagement, order history and properties on the profile. Change the rule and you change the audience for every send that references it, often without anyone noticing until the volume numbers move in a weekly report. Getting klaviyo segmentation right is not a tagging exercise. It changes what gets sent, to whom, and how often, which is a bigger commitment than most teams treat it as when they first build a segment during a slow afternoon.
The intended reader here runs Klaviyo on Shopify Plus or a comparable subscription platform, at $3M to $30M in revenue, with a marketing manager or lifecycle lead who owns the account directly rather than an agency touching it once a quarter. If your list is small enough that engagement tiers and purchase-behaviour splits would produce near-identical audiences, this level of segmentation is not yet worth the maintenance it demands: build one engaged and unengaged split and revisit the rest once volume justifies it. Automated flows already generate 41% of email revenue across Klaviyo’s own base of 183,000+ brands (Klaviyo, vendor-reported), and every one of those flows depends on the audience feeding it being accurate, not just the copy inside it.
The proprietary part of this article is the part most guides skip: the actual filter values worth using, and the specific way segment definitions quietly drift once a live segment gets edited instead of replaced. Both are covered step by step below.
What do you need before you build a segment?
Before building any segment, you need three things settled: agreement inside the team on what “engaged” means at your sending volume, a decision on whether tiers are email-only, SMS-only or blended, and confidence that consent data and product-level order properties are already syncing correctly. That third point assumes your catalogue and consent capture are handled upstream; if you’re not confident they are, that’s a setup question, not a segmentation one, and worth fixing before any of the following steps.
Write your engagement windows down somewhere the whole team can see, before creating a single segment in Klaviyo. A segment called “Engaged” built by one person in March and edited by someone else in September, without either of them writing down what the window was supposed to be, is exactly how definitions drift. A shared document with three lines, the current windows, why they were chosen, who owns changes, removes most of the ambiguity that otherwise causes a segment’s definition to drift once someone else edits it.
Step 1: Define your engagement windows before building anything
Pick your windows before you open the segment builder. A workable starting set for a mid-sized list is engaged within the last 30 days, on the fence between 31 and 90 days, lapsing between 91 and 180 days, and lapsed beyond 180 days, though the right boundaries depend on your own purchase cycle: a brand selling a product people reorder every six weeks needs tighter windows than one selling a durable good bought once a year.
Bake the window into the segment name itself, not just the internal document: “Engaged-30”, not “Engaged”. Anyone opening the segment list six months from now should be able to tell what it does from the name alone, without opening the definition to check.
Send frequency should drop as a profile moves from left to right on this chart, from regular weekly campaigns for Engaged-30 down to a single win-back touch for Lapsed.
Step 2: Build the Engaged-30 segment with the exact filter values
In Klaviyo’s segment builder, under Lists & Segments, create a new segment and add a condition group joined with OR: “Opened Email” at least 1 time in the last 30 days, OR “Clicked Email” at least 1 time in the last 30 days. Join that group with AND to a second condition: “Email Marketing Consent” is “Subscribed”. Without the consent condition, an engagement segment will happily include someone who opened your last email before unsubscribing, which is not the audience you want for a live send.
If you are blending SMS into the same tier, add “Clicked SMS” or “Received SMS” conditions to the same OR group, with SMS Marketing Consent handled the same way as email consent in a separate AND condition. Keep the two channels in separate segments if your SMS list behaves very differently from email, which it usually does at this stage of a Shopify Plus brand’s lifecycle: SMS lists tend to be smaller, newer and more reactive to discounts than email lists built up over years.
Step 3: Build the lapsing and lapsed tiers without losing deliverability
For the lapsing tier, use a condition that captures people who were active recently but have gone quiet: “Clicked Email” zero times in the last 90 days, AND “Clicked Email” at least 1 time in the last 180 days. This catches people mid-drift rather than people who were never engaged in the first place, which matters because a brand-new subscriber with no send history yet should not land in a lapsing segment simply because they have not clicked anything in 90 days.
For the lapsed tier, add a floor condition to exclude people who never had a fair chance to engage: “Received Email” at least 1 time in the last 365 days, combined with “Clicked Email” zero times and “Opened Email” zero times over the same window. Move lapsed profiles out of your regular campaign sends entirely; they belong in a win-back or sunset flow, not the weekly newsletter audience. Continuing to send weekly campaigns to a segment that has proven itself unresponsive drags your engagement rate down across the whole list, and Klaviyo, like every ESP, weighs recent engagement when it decides how your mail gets treated by inbox providers.
Step 4: Layer purchase behaviour on top of engagement
Engagement tells you who opens mail. Purchase behaviour tells you who buys, and the two audiences overlap less than most teams assume. Build a “repeat, engaged” segment: “Placed Order” at least 2 times over all time, AND “Clicked Email” at least 1 time in the last 90 days. Build a separate “first-time, engaged” segment: “Placed Order” exactly 1 time over all time, with the same engagement condition. These two groups should never receive the same email copy: a repeat buyer responds to different signals, product recommendations, loyalty framing, early access, than a first-time buyer still deciding whether the brand is worth a second look.
Browsers who like the content but have not converted deserve their own segment too, “engaged, no purchase”: “Opened Email” or “Clicked Email” at least once in the last 30 days, AND “Placed Order” zero times over all time. This group is the segment most teams accidentally treat the same as a lapsed customer, when in practice they need a first-purchase incentive rather than a win-back message, since there is nothing to win back.
Set your order-value thresholds against your own average order value, not a round number lifted from somewhere else. As an illustrative comparison only, a “high spend” segment built against an average order value in the hundreds looks nothing like one built against an average order value in the tens, and copying a fixed threshold from a blog post produces a segment sized for someone else’s business, not yours.
Step 5: Add predictive segments once you have enough order history
Klaviyo’s predictive analytics surfaces properties like Historic Customer Lifetime Value, Predicted Customer Lifetime Value, Expected Date of Next Order, Churn Risk and Average Days Between Orders, computed from your account’s own order history. These only activate once Klaviyo has processed enough historical order volume for the model to be reliable; check the Predictive Analytics section of your account, or an individual profile page, for a note on whether the model is active before building anything around it. Forcing predictive segments before the model is ready produces numbers that look precise and mean nothing.
Once active, a useful predictive segment is “high value, at risk”: Predicted Customer Lifetime Value in your account’s top band, AND Churn Risk above the level Klaviyo flags on your own dashboard as high risk. Another is “due to reorder”: Expected Date of Next Order before a date a few days out from today, useful for a replenishment nudge timed ahead of when someone is statistically likely to need to buy again rather than a fixed number of days after their last order.
One caveat worth building into your expectations: predictive fields update on Klaviyo’s own processing schedule, not in real time the way engagement conditions do, so a flow triggered off Churn Risk will react more slowly to a sudden change in behaviour than one triggered off an actual click.
Step 6: Point flows and campaigns at the new segments, not the old ones
The work from the previous four steps gets wasted at exactly this point if you skip it. Build the tiered segments, then forget to update the audience on the flows and campaigns that were already running against a broader list, and the new segments sit unused while the old “Newsletter” list keeps receiving every weekly send regardless of engagement tier. Go through every live flow’s entry trigger and every recurring campaign’s audience and exclusion list, and point them at the specific tier they were meant to target.
Segments have an internal ID in Klaviyo separate from their display name, which means renaming a segment does not break anything referencing it, but deleting one and creating a replacement does; any flow, campaign or external automation still pointed at the old ID stops working silently. If you are migrating from a broad list to a set of tiers, add the new segments to flows and campaigns before removing the old list from anything, verify the audience counts make sense, then remove the old reference once you have confirmed the new one is live.
Step 7: Verify a segment before you trust it with a send
Open the segment’s “View Profiles” tab and sanity-check the count against what you expect in order of magnitude. A tier that should hold a few percent of your list showing up as a third of it is a sign a condition is too loose, usually a missing AND clause rather than a wrong number. Check the “Used In” tab to see what already references the segment before you change anything about its scope.
Send a seed or test send to a small internal distribution styled the same way the real send will be, and watch the segment’s profile count over the following day or two: because Klaviyo recomputes segment membership continuously, a count still climbing well after publishing usually means an upstream sync, consent import or order backfill, is still catching up, and you want that settled before the segment feeds a live send rather than discovering it mid-campaign.
What’s the step most teams get wrong?
The step most teams get wrong is editing an existing segment’s definition instead of creating a new one and retiring the old, so every flow and campaign already pointed at that segment inherits the change instantly, with no review step in between. A team under pressure to show a bigger audience before a board meeting widens “Engaged-30” to “Engaged-60” without checking what else uses it, and the win-back flow built to trigger for people who had gone quiet now excludes a group who are, by the new definition, still counted as engaged, so people who genuinely went quiet stop receiving the win-back message they needed.
The fix is procedural, not technical: before editing the scope of any live segment, check its “Used In” tab, and if the change would meaningfully shift who qualifies, build the new definition as a separate segment, migrate the flows and campaigns deliberately, confirm the new audience behaves as expected, then retire the old one.
Why do segment definitions drift after launch?
Segment definitions drift because segments are shared objects edited under time pressure, usually to satisfy an urgent campaign request or a stakeholder asking for a bigger number, and Klaviyo does not version definitions or warn you what else depends on a segment before you save a change to it. Nobody sees a diff. Nobody gets asked to approve the new condition. The segment simply updates, and every flow attached to it updates with it.
The underlying cause is almost always organisational rather than technical: no naming convention that signals the window, no single owner responsible for the definitions, and enough staff turnover that nobody left on the team remembers why a filter was built the way it was. A segment audit six months after launch regularly turns up conditions nobody can explain, built to solve a one-off problem that is long since resolved but never removed from the definition.
What breaks when two segments overlap in the same week?
A customer can qualify for two segments at once if their entry conditions are not mutually exclusive, which means they can land in a win-back flow and a full-price campaign audience within days of each other. Klaviyo’s Smart Sending settings, configured under account settings, control frequency within a defined window for an account overall, but they do not automatically stop two entirely separate flows and campaigns from reaching the same person with contradictory messages in the same week.
The fix is explicit exclusion logic built into each flow’s entry conditions and each campaign’s audience, not a hope that the send calendar keeps things apart. If a win-back offer and a new-arrivals campaign could both reach a lapsing customer in the same week, exclude the win-back segment from the campaign’s audience directly, at send time, rather than relying on timing to keep them separate.
When should you use a list instead of a segment?
Use a list for a genuine opt-in group where membership should stay fixed once someone joins, such as a specific pop-up cohort, a giveaway entry list, or an SMS-only sign-up captured through a keyword. A profile joins a list through an action and stays on it until they leave or are removed by hand; nothing about their later behaviour moves them off it automatically. Engagement tiers, purchase-behaviour splits and predictive audiences belong in segments instead, because a segment is a dynamic set of conditions Klaviyo recalculates continuously, moving profiles in and out on their own as behaviour and properties change.
Building an engagement tier as a list is a mistake that shows up slowly: the list looks correct on the day it is created, then quietly stops reflecting reality as people’s behaviour moves on, with nothing in Klaviyo to flag that it has gone stale.
How often should you review segment definitions?
Review the core engagement and purchase segments on a quarterly cadence at minimum, and immediately after any period that shifts normal buying rhythm, a seasonal peak, a new product launch, a pricing change. A segment built around last year’s typical order value or purchase cycle quietly stops matching reality once behaviour moves, and nothing in Klaviyo will tell you that on its own; the count simply looks smaller or larger than expected and someone has to notice.
A useful review checks three things: whether profile counts are trending in the direction you would expect, whether the “Used In” tab still matches what you believe is live, and whether the time window itself still fits your purchase cycle. A brand that used to see repeat purchases every six weeks and now sees them every ten needs its lapsing and lapsed windows moved out to match, or it will start treating perfectly normal customers as churned.
Segmentation only earns its keep if the flows built on top of it stay accurate as those definitions move, and that is a lifecycle flows problem as much as a data one: it’s the difference between a flow that reacts to who someone actually is right now and one still reacting to who they were when the segment was built. Before committing engineering time to rebuilding a flow structure around tiers like these, run the expected impact through the flow revenue calculator, and check whether your list size and order volume put you in the range this level of segmentation is built for in our notes for scaling brands.
Sources
- Klaviyo, analysis of 183,000+ brands: automated flows generate 41% of email revenue (vendor-reported).