Most Shopify stores segment their Klaviyo list by product category, location, or “customers who bought in the last 90 days.” That’s fine as a starting point, but it treats a customer who bought once for $40 the same as one who’s placed six orders worth $600. RFM segmentation fixes that by scoring every customer on three separate dimensions, Recency, Frequency and Monetary value, so you can tell the difference between someone drifting away and someone who was never really engaged in the first place.
This isn’t a rehash of basic list segmentation. Building a proper RFM model in Klaviyo means working with the customer properties and order metrics that sync in from Shopify, deciding how you’ll score each dimension, and then building segments and flows off those score combinations rather than off a single filter. It takes more setup than a typical “abandoned cart” segment, but it’s also one of the more durable pieces of infrastructure you can build in an email programme, once it’s live, it keeps re-sorting your list as customer behaviour changes.
Below is how to actually build it, using the data Klaviyo already has from your Shopify integration, without inventing scoring thresholds that don’t apply to your store.
What RFM Segmentation Actually Measures
RFM is a scoring framework, not a single segment. Each customer profile gets scored on:
- Recency (R), how long ago their last order was placed
- Frequency (F), how many orders they’ve placed in total (or within a defined window)
- Monetary value (M), how much they’ve spent in total, or their average order value
Each dimension is usually scored on a scale (commonly 1-5, with 5 being “best”), and the three scores combine into a code like “R5-F4-M5” or a plain-English label like “Champion.” The point isn’t the exact scale you choose, it’s that you’re now segmenting on behaviour across three axes at once, instead of one filter in isolation.
This matters because recency alone is misleading. A customer who ordered 10 days ago but has only ever placed one small order isn’t the same as a customer who orders every six weeks and just happens to be 40 days into their usual cycle. Frequency and monetary value give recency context.
The Shopify Data Klaviyo Needs
Klaviyo’s Shopify integration syncs order and customer data as both events and profile properties, and RFM scoring depends on using the right ones:
- Placed Order and Ordered Product events, the event history Klaviyo uses to calculate order counts, dates and values over time
- Historic Number of Orders and Historic Total Spend, profile-level properties Klaviyo maintains from the Shopify order history, useful for frequency and monetary scoring without having to count events manually
- Predicted Customer Lifetime Value, Predicted Number of Orders, Average Days Between Orders, and similar predictive analytics properties, available once an account has built up enough historical order data for Klaviyo’s models to generate reliable predictions. Smaller or newer stores may not see stable predictive values yet, so treat these as a bonus layer once you have the volume, not a day-one requirement.
- Last order date, which you can reference in segment conditions as “what is the date of someone’s last Placed Order” relative to today
If your Shopify-Klaviyo integration is set up correctly, this data updates automatically as new orders come through, you don’t need a separate app or manual CSV import to run RFM in Klaviyo. Where it goes wrong most often is stores that migrated platforms or reconnected the integration at some point, which can leave historic order data incomplete for profiles created before the sync existed. Worth checking a sample of long-standing customer profiles for gaps before you build scoring logic on top of them.
Building the Score Bands
Klaviyo doesn’t have a native “RFM score” field you can just switch on, you build it using segment logic on top of the properties above. The practical approach is to define your own thresholds based on your store’s actual order patterns, rather than copying generic ecommerce benchmarks that assume a different price point or purchase frequency.
A reasonable way to set thresholds:
- Pull your order data (Shopify admin reports or a Klaviyo segment count) and look at the actual distribution of order counts and total spend across your customer base, for many stores this is heavily skewed, with a small group of repeat buyers and a long tail of one-time purchasers.
- Set recency bands relevant to your typical repurchase cycle. A skincare brand with a six-week reorder cycle needs tighter recency bands than a furniture store where 12 months between purchases is completely normal.
- Set frequency bands off your own order-count distribution, for many Shopify stores, “2+ orders” already puts someone in a meaningfully smaller, more valuable group than the store average.
- Set monetary bands using total historic spend, or average order value if you want to separate “spends a lot in one go” from “orders often but small.”
- Combine the three into named segments, rather than trying to manage 125 individual R-F-M code combinations.
The Segment Framework: Naming the Bands
Once you’ve got thresholds, the segments that tend to be genuinely useful for a Shopify store are:
- Champions, high recency, high frequency, high monetary. Recent, repeat, high-spend customers.
- Loyal customers, strong frequency and monetary history, even if their most recent order isn’t brand new.
- High value at risk, historically strong frequency and monetary scores, but recency has dropped below your threshold. This is the segment worth the most attention: they’ve proven they’ll spend, and they’ve gone quiet.
- New customers, one order, too recent to score frequency meaningfully yet.
- Lapsing, mid-tier frequency and monetary, recency slipping but not yet fully lapsed.
- Lapsed / At risk (low value), low frequency and monetary, and recency well past your threshold. Often not worth heavy discount investment to win back.
- Price-sensitive one-timers, a single low-value order and no repeat behaviour, useful to exclude from full-price promotional sends.
Build each of these as a Klaviyo segment using combinations of “Properties about someone” and “What someone has done” conditions (order count thresholds, historic spend thresholds, and last Placed Order date relative to today). Segments update in real time as new order events land, so a customer moves automatically from “Champion” to “High value at risk” the moment their recency slips past your threshold, no manual list management required.
Turning Segments Into Flows
The value of RFM isn’t the segments themselves, it’s what you do differently for each one. A few patterns that work well against Shopify order data:
- Champions: early access to new product drops, no discount pressure needed, over-discounting your best customers trains them to wait for sales.
- High value at risk: a dedicated win-back flow, distinct from your generic “we miss you” sequence, ideally referencing what they’ve bought before via Klaviyo’s product feed blocks pulling from Shopify.
- Lapsing: a lighter touch, a check-in email or a smaller incentive before they slide into the fully lapsed bucket, where win-back rates drop.
- New customers: a standard post-purchase flow focused on setting expectations and building toward a second order, rather than treating them like an established repeat buyer.
- Price-sensitive one-timers: exclude from high-discount broadcast campaigns, since they’ll likely only ever buy on deep discount and can quietly erode margin on full-price sends.
You can trigger flows directly off segment membership (using a “Someone is added to segment” trigger) or use the segments as suppression/inclusion filters on your existing flows and campaigns.
RFM vs Basic List Segmentation, the Real Difference
Basic segmentation answers “who bought X” or “who’s in this region.” RFM segmentation answers “how valuable and how engaged is this person, right now, relative to their own history”, and it updates dynamically as behaviour changes, rather than sitting static once someone’s tagged. It’s the difference between a mailing list and a genuinely prioritised customer view. The trade-off is setup and maintenance time: RFM segments need periodic review (order patterns shift with new product launches, seasonality, and pricing changes), whereas a “bought category X” segment barely needs revisiting.
A Practical Checklist for Building RFM in Klaviyo
- Confirm Shopify-Klaviyo integration is syncing Placed Order events and historic profile properties correctly
- Pull your store’s actual order-count and spend distribution rather than guessing thresholds
- Set recency bands based on your typical repurchase cycle, not a generic industry number
- Define 5-7 named segments (Champions, Loyal, High value at risk, New, Lapsing, Lapsed, Price-sensitive) using combined property and event conditions
- Build or adjust flows so each segment gets meaningfully different treatment, not just a different subject line
- Exclude low-value, one-time segments from full-price broadcast sends where appropriate
- Revisit thresholds every couple of quarters as order volume and product mix change
When to Bring in a Specialist
RFM segmentation is entirely buildable inside Klaviyo’s native segment builder, no third-party app required. Where stores tend to get stuck is translating the theory into thresholds that actually fit their own order data, and then wiring the resulting segments into flows that don’t just duplicate what a generic “abandoned cart” or “win-back” flow already does. If your Klaviyo account has years of Shopify order history sitting mostly untouched in list-based segments, that’s exactly the kind of gap Nexly’s Klaviyo and email marketing service is built to close, auditing what data you actually have, building the score bands correctly the first time, and connecting them to flows that change based on customer value rather than treating every subscriber the same.
FAQ
Does Klaviyo have a built-in RFM segmentation feature?
Not as a single toggle. Klaviyo gives you the underlying data, order counts, historic spend, last order date, and predictive properties once you have enough order history, but you build the actual RFM segments yourself using its segment builder and your own thresholds.
How much order history do I need before RFM segmentation is useful?
Basic RFM segments (recency, order count, total spend) work as soon as you have repeat customers to compare against one-time buyers. Klaviyo’s predictive analytics properties, like predicted lifetime value, need a longer history of orders before the models produce stable results, so treat those as an enhancement rather than a starting requirement.
Should RFM segments replace my other Klaviyo segments?
No, they work alongside product- or category-based segments, not instead of them. RFM tells you how valuable and engaged someone is; product segments tell you what they’re interested in. Combining both (for example, “Champions who’ve bought in the skincare category”) is often more useful than either alone.
How often should I rebuild or review my RFM thresholds?
Segments update automatically as new orders come in, but the thresholds themselves are worth reviewing every couple of quarters, especially after a pricing change, a new product line, or a shift in your typical repurchase cycle, a threshold set two years ago on old order values will misclassify customers today.
Can I use RFM segmentation for Shopify B2B or wholesale accounts?
The same logic applies, but order values and frequency will look very different from a DTC store, so build separate thresholds for wholesale accounts rather than scoring them on the same bands as consumer customers, otherwise every wholesale account will land in “Champions” by default simply because of order size.
Ready to see what’s actually happening in your Klaviyo account versus what your Shopify order data could support? Book a call with Nexly and we’ll walk through where your current segmentation is leaving value on the table.