Customer segmentation is splitting your customers into groups that behave differently, so you can measure each group on its own and treat it differently. A segment is a rule, for example "bought at least three times, never refunded, nothing in the last 90 days".
For a business that sells online, the segments worth building are behavioral: what people bought, how often, how recently, what they refunded and where they stopped. I'd build those before any persona.
A single dashboard is an average, and an average of people who behave nothing alike describes nobody. Picture an offer whose revenue per buyer holds steady for three months. It looks like a healthy business. Underneath, a group of early buyers who used to reorder every few weeks has gone quiet, and a wave of cheaper first-time buyers from a new ad campaign is filling the gap. The total stays flat right up until the new buyers stop coming, and by then the people who used to carry the business haven't bought in months.
Segmentation is how you see that while there's still time to do something about it. This guide covers what customer segmentation is, the four classic types and which one matters for a funnel, RFM analysis, examples you can copy, segmenting visitors who haven't bought yet, and how to build segments that change what you do next.
Why one customer list hides what matters
Every list of buyers mixes people at very different points in their relationship with you. Some bought yesterday. Some bought five times and then stopped. Some bought once and asked for their money back. Send them all the same email and you'll annoy the new buyer, under-serve the loyal one and remind the refunder why they left.

The same goes for reports. A conversion rate that includes bot traffic is lower than your real one. An average order value that mixes wholesale-sized orders with first-time trials tells you nothing about either. Refund rate across all buyers can look fine while one traffic source refunds at three times the rest. Segmentation pulls those groups apart so each number means something.
The four types of customer segmentation
Textbooks list four types. They're all real, but they're not equally useful to someone selling through a funnel.

| Type | Groups people by | Example | Where the data comes from |
|---|---|---|---|
| Demographic | Who they are | Women 45 to 60 | Surveys, ad platform targeting, guesses |
| Geographic | Where they are | Buyers in Canada | Shipping address, IP country |
| Psychographic | What they value | Prefers natural remedies | Quiz answers, surveys, interviews |
| Behavioral | What they do | Bought three times, nothing in 90 days | Orders, refunds, page views, clicks |
Behavioral segmentation is the one I'd start with, every time. It comes from data you already have, it's exact (an order either happened or it didn't), and it points straight at an action. Demographics describe the market you're buying ads in. Behavior describes the people who actually gave you money. Geographic segments matter when shipping, pricing or payment rules change by country, and psychographic data becomes useful the moment you run a quiz funnel, because the buyer tells you what they care about in their own answers.
RFM analysis: the simplest behavioral model
RFM stands for recency, frequency and monetary value. It scores each customer on three questions: how long since the last purchase, how many purchases, and how much they've spent. It's old, it's simple, and it still beats most fancier models for a business with repeat purchases.

| Recency | Frequency | Monetary | Who they are | What to do |
|---|---|---|---|---|
| High | High | High | Best customers | Keep them close; first to hear about new offers |
| Low | High | High | Valuable, drifting away | Win-back campaign, before they're gone |
| High | Low | Any | New customers | Get the second order |
| Low | Low | Low | One-time, long ago | Cheap channels only, or leave them |
The classic RFM formula gives each customer a score from 1 to 5 on each dimension by splitting your list into fifths, then reads the three digits together (555 is your best, 155 is a big spender who's gone quiet). You don't need the scoring to get the value. Most of it is in the second row: people who spent a lot, bought often and then stopped. They already trust you, and nothing you'll do this month is cheaper than a sale to them. That's the lifetime value you already paid to acquire.
Customer segmentation examples for funnel businesses
These are the segments I'd build first on any offer that sells through a funnel, with the rule behind each and what to do with it.
| Segment | Rule | What you do with it |
|---|---|---|
| New buyers | First purchase in the last 30 days | Onboarding emails, the second-order offer |
| Repeat buyers | Two or more orders in the last year | Early access, bundles, referral asks |
| Lapsed VIPs | High lifetime revenue, 3+ orders, no refunds, nothing in 90 days | A personal win-back offer |
| Upsell takers | Bought an upsell in the last 30 days | Compare against non-takers to judge the offer |
| Refunders | Refunded within two weeks of buying | Keep out of promotions; read which product and source they came from |
| Checkout abandoners | Started a checkout, no purchase | Recovery email or a call center follow-up |
Two things make a segment useful. It has a time window, because "bought twice" means something different over a year than over a lifetime. And it has an action attached. If you can't say what you'd do differently for the people in it, it's a report, and you probably have enough of those.
Visitor segmentation: people who haven't bought yet
Customer segments only cover the people who paid. On most funnels that's a small slice of the traffic, and the rest is where the funnel loses its money. Visitor segmentation (the wider version is usually called audience segmentation) groups anonymous visitors by what they did on your pages: whether they watched the VSL (video sales letter), clicked buy, reached the checkout, came back, which ad sent them, and whether they were a person at all.

| Visitor segment | What it tells you |
|---|---|
| Watched the video, left before the pitch | Whether the problem is the video's middle or the offer |
| Clicked buy, never purchased | Interest was there; the checkout or the price lost them |
| Reached the checkout, didn't buy | The size of your checkout leak, by source and device |
| Three or more page views in 7 days | Engaged visitors who are still deciding |
| Google Ads visitors who left after one page | Whether a campaign's traffic matches the page |
| Bots, VPNs, proxies and automation | Traffic to exclude before you trust any rate |
That last row is the one I'd build before anything else. A split test judged on traffic that includes bots is judged on noise, and a campaign that looks cheap per session can turn out to be buying mostly automated visits. Exclude that segment from your reports and every rate you read afterwards means more.
The other thing visitor segments are good for is joining up the two halves of the funnel. The people in "reached the checkout, didn't buy" are the same people whose revenue you want to track once some of them come back and buy, and a good segment follows the person across both.
How to segment customers: a strategy in six steps
A customer segmentation strategy doesn't need a workshop. It needs a decision to make and data you trust.

- Start from a decision. "Who gets the win-back offer?" or "Is this traffic source worth more budget?" A segment built to answer nothing in particular gets looked at once.
- Choose behavior you can measure. Orders, refunds, order count, recency, pages reached, source. Skip anything you'd have to guess.
- Write it as rules with a time window. "Lifetime revenue of $600 or more, never refunded, three or more orders, no order in the last 90 days" is a segment. "Our loyal customers" is a wish.
- Check the size. Twelve people is a phone list, not an email campaign. Two-thirds of your buyers is not a segment either. Adjust the thresholds until the group is big enough to matter and specific enough to treat differently.
- Act on it. Send the campaign, filter the report, make the offer. Then keep a comparison group: the same segment without the offer, or everyone else.
- Measure and keep it fresh. Judge the segment on revenue, not opens. And make sure the membership updates, or you'll email a win-back to someone who bought yesterday.
Customer segmentation in ElasticFunnels
When we built Audiences into ElasticFunnels, the starting point was the problem above: every report on the platform already had the data to answer "which buyers" and "which visitors", but only as one big total. An audience is a saved group of people that every other part of the platform can use. You'll find them under Reports, then Audiences.
- Customers and visitors. A customer audience groups buyers by email. A visitor audience groups anonymous visitors by profile or session, built from sessions, events, clicks and quiz answers.
- Three ways to create one. Start from a direct-response template (retargeting, upsells and order value, buyers and lifetime value, VSL and page engagement, traffic source and quality, refund and payment risk), each showing how many people it holds on your own data. Or build it on the Rules tab, which needs no AI credits. Or describe it in plain words on the Ask AI tab.
- Use it everywhere. Filter any analytics dashboard to only that audience, or to everyone except it. Pick it as the audience of an email campaign. Export the member list as CSV. A customer audience also filters visitor analytics, and a visitor audience filters revenue, because each refresh stores the other ids the same people are known by.
- It stays current. Audiences refresh automatically, and whenever you save one. Orders are counted per checkout, so a front end and the upsells bought within 24 hours of it are one order, and test orders never count.
Here is the lapsed-VIP audience from the table above: customers with $600 or more in lifetime revenue who never refunded, had at least 3 orders, and no order in the past 90 days.
FROM conversions WHERE PROFILE total_revenue >= 600 AND PROFILE is_refunder = false AND PROFILE total_orders >= 3 AND NOT HAS conversion(type = "purchase" AND purchased_at >= days_ago(90)) IDENTIFY BY email
When you read a definition like this, notice that the PROFILE conditions (lifetime revenue, never refunded, order count) look at the customer's whole history. total_orders counts real orders: purchases less than 24 hours apart, like a front end and its upsells, are one order, and test orders don't count. There's no WITHIN line, so the "no order in 90 days" check reads the whole history too. Leave WITHIN out whenever you mean "ever".
A visitor audience reads the same way. This is the "reached the checkout, didn't buy" template:
FROM events, conversions
WHERE HAS event("checkout-loaded")
AND NOT HAS conversion(type = "purchase")
WITHIN 7d
IDENTIFY BY session
Advanced customer segmentation examples
Simple rules get you most of the value. The segments below are the ones I'd reach for once the basics are running, because each answers a question a plain filter can't. Every definition here was run against a real brand's data before it went into this post, and each can be written by hand or described to the AI builder in plain words.
1. Lapsed VIPs who took an order bump, with their details attached. The same win-back list as above, narrowed to buyers who have already said yes to an order bump. They're the ones most likely to take a bundle offer. ENRICH WITH pulls each person's name, lifetime value and order count into the rows the builder shows while you preview the audience, so you can check who you're about to email before you save it.
FROM conversions
WHERE
PROFILE total_revenue >= 600
AND PROFILE total_orders >= 3
AND PROFILE is_refunder = false
AND NOT HAS conversion(type = "purchase" AND purchased_at >= days_ago(90))
AND HAS conversion(type = "purchase" AND sale_type = "bump")
IDENTIFY BY email
ENRICH WITH customer("first_name", "last_name", "email", "lifetime_value", "total_orders")
2. Repeat buyers who never take anything but the front end. People who came back to buy again but have declined every bump, upsell and downsell in six months. Either the post-purchase offers don't fit them, or they're price-sensitive buyers who want the core product only. COMPUTE LIST adds a column showing which front-end product each one bought, which usually tells you which.
FROM conversions
WHERE
HAS conversion(type = "purchase" AND sale_type = "main")
AND NOT HAS conversion(type = "purchase" AND sale_type IN ("upsell", "downsell", "bump"))
AND PROFILE total_orders >= 2
WITHIN 180d
IDENTIFY BY email
COMPUTE LIST conversion(product_codes WHERE type = "purchase" AND sale_type = "main") AS front_end_product
3. Abandoned the checkout, then bought within a week. A sequence: two events joined on the same person, with a time gap between them. This is the group your recovery emails and calls are working on, and the computed column shows how much revenue came back through it.
FROM conversions
WHERE
HAS conversion(type STARTS_WITH "abandon") AS a
JOINED TO conversion(type = "purchase") AS p ON email_hash
WHERE days_between(a.created_at, p.purchased_at) >= 0
AND days_between(a.created_at, p.purchased_at) <= 7
WITHIN 90d
IDENTIFY BY email
COMPUTE SUM conversion(total WHERE type = "purchase") AS recovered_revenue
The >= 0 matters. Without it, someone who bought first and abandoned a second checkout later would count as recovered.
4. Fast refunders, with what they refunded. Refunds that land within two weeks of the purchase usually mean the offer promised something the product didn't deliver. A refund months later is a different problem. Joining each refund to its own order finds them, and the two computed columns show the amount and the product, so you can see whether it's one product or one promise.
FROM conversions
WHERE
HAS conversion(type = "refund") AS r
JOINED TO conversion(type = "purchase") AS p ON order_id
WHERE days_between(p.purchased_at, r.created_at) <= 14
WITHIN 90d
IDENTIFY BY email
COMPUTE SUM conversion(total WHERE type = "refund") AS refunded,
LIST conversion(product_codes WHERE type = "refund") AS refunded_product
5. Real Meta visitors who saw the pitch and never reached the checkout. A visitor audience across three sources: the session (Meta traffic, no bots, no VPNs), the page events (the video reached the call to action) and the conversions (no purchase). It separates "the offer didn't land" from "the ad sent the wrong people", which a campaign's cost per purchase can't do on its own.
FROM sessions, events, conversions
WHERE
HAS session(ad_platform = "meta_ads" AND is_bot = 0 AND is_vpn = 0)
AND HAS event("video-showed-cta")
AND NOT HAS event("checkout-loaded")
AND NOT HAS conversion(type = "purchase")
WITHIN 14d
IDENTIFY BY profile
COMPUTE COUNT event("page-view") AS page_views
6. Meta buyers who kept their money in, with 90-day revenue. Identified by visitor profile rather than email, so the audience can filter visitor analytics as well as revenue. Apply it to the dashboard and you see what Meta traffic is worth after refunds, next to every other source.
FROM sessions, conversions WHERE HAS session(ad_platform = "meta_ads") AND HAS conversion(type = "purchase") AND NOT HAS conversion(type = "refund") WITHIN 90d IDENTIFY BY profile COMPUTE SUM conversion(total WHERE type = "purchase") AS revenue_90d
A few rules of the language that trip people up. PROFILE fields look at the whole customer history, while HAS, COUNT and JOINED TO only see what happened inside the WITHIN window when there is one (1 to 730 days). Leave WITHIN out and they see the whole history. IDENTIFY BY decides who a member is: an email for customers, a profile or a session for visitors. And neither COMPUTE nor ENRICH WITH changes who is in the audience. COMPUTE adds its columns to the member list and the CSV export, with products shown by name; ENRICH WITH adds customer fields to the preview.
Every feature is on every plan, Audiences included.
Using ElasticFunnels? Follow the step-by-step tutorial. Start from a template with a live count, build a VIP audience with two rules and filter your dashboard by it, with a short clip for every click: How to segment customers.
- Build the bot and VPN exclusion before any other segment. Every rate you read afterwards gets more trustworthy.
- If you only build one customer segment, make it lapsed high-value buyers. It's the cheapest revenue on your list, and the one most businesses notice last.
- A segment without a time window is a label. Decide the window first, then the thresholds.
- I'd ignore demographic segments for anything but ad targeting. What someone bought tells you more than their age bracket ever will.
- Keep refunders out of your promotions. Selling them a second time usually buys a second refund.
Segmentation sounds like a data project and mostly isn't. It's a handful of rules written down, each one pointing at a decision you were going to make anyway, now made with the right people in front of you. Start with two or three, act on them, and let the ones that change nothing quietly go.





































