LUCENTCOMMERCEGET A FREE STORE AUDITFREE AUDIT

RETENTION · ANALYTICS · MARKETING · 18 JUNE 2026 · 7 MIN READ

Customer segments that are worth building

A segment earns its existence when something specific happens differently because of it. Most stores have thirty segments and four decisions.

A product page with the three things a buyer actually reads marked

Segment by what you will do differently, not by what you can measure. A segment is worth building when you can name the action that changes for the people inside it — a different email, a different offer, a different homepage, a decision not to discount. Shopify’s own segments are dynamic groups defined with ShopifyQL, and the attributes it documents are almost entirely behavioural: number_of_orders, amount_spent, first_order_date, last_order_date, products_purchased, orders_placed, rfm_group, predicted_spend_tier and the email, SMS and product subscription statuses. Four or five segments built from those will outperform thirty built from demographics.

IN SHORT

  • Shopify documents segments as "dynamic groups of customers that meet specific criteria defined through ShopifyQL queries", so membership re-evaluates rather than being a saved list.
  • The documented segment attributes are behavioural: order counts and dates, amount spent, products purchased, RFM group, predicted spend tier and subscription statuses.
  • A segment with no distinct action attached to it is a report, and it should live in a report rather than in the customer list.
  • Segments smaller than a few hundred people will not produce a readable difference in a campaign, however precisely defined they are.
  • Shopify counts sessions only when visitors consent to cookies, so on-site behavioural segmentation is built on a subset of traffic that varies by market.
  • Most stores reaching for a CDP need three good segments and a working ESP sync, not a new system of record.

The test a segment has to pass

Ask one question before creating any segment: what happens differently for these people, and who does it? If the answer is "we send them the newsletter but with their first name", that is not a segment. If the answer is "they get a replenishment email at week ten instead of the general campaign, and Priya owns it", that is a segment.

This sounds obvious and it is routinely ignored, because building segments feels like progress. A store ends up with thirty of them — "VIPs", "Engaged", "London", "Lapsed", "High AOV", "Newsletter subscribers who have not bought" — and four campaigns, three of which go to everybody. The cost is not storage. It is that nobody trusts the segment list any more, so when a genuinely useful segment is created it is indistinguishable from the twenty-six that do nothing.

The honest counsel is usually to delete most of them and keep the ones with an owner. A segment without an owner is a report with delusions.

What Shopify gives you before you buy anything

It is worth knowing the native ceiling, because a lot of segmentation tooling is sold against a gap that is not there. Shopify documents segments as "dynamic groups of customers that meet specific criteria defined through ShopifyQL queries" — the membership is a query, not a list, so it re-evaluates rather than going stale the week after you export it.

The segment query language documents attributes that cover most of what a retention programme needs. Dates: first_order_date and last_order_date. Counts and value: number_of_orders ("The number of orders for the customer (all time)") and amount_spent ("The total amount spent (all time)"). Behaviour: products_purchased, which filters by product ID, tag or purchase date, and orders_placed. Shopify’s own modelling: rfm_group and predicted_spend_tier, both enums. And the marketing permissions: email_subscription_status, sms_subscription_status and product_subscription_status.

The operators are the ordinary set. Numeric and date attributes take =, !=, >, >=, <, <= and BETWEEN; enums and strings take = and !=; list attributes take CONTAINS and NOT CONTAINS; the function attributes like products_purchased take MATCHES and NOT MATCHES.

Two of those deserve a caution rather than enthusiasm. rfm_group and predicted_spend_tier are Shopify’s models of your customers, not yours. They are documented as enums; what each value means for your catalogue and your purchase cycle is not something to assume. Before you build a campaign on a predicted tier, look at who is actually in it and whether the grouping matches how your business thinks about a good customer. A store selling mattresses and a store selling coffee have opposite definitions of a healthy repeat interval, and a generic model cannot know which you are.

Five segments that usually earn their place

These are not a template. They are the five that most often survive the "what happens differently" test in a mid-market store, and each is defined by a decision rather than a demographic.

  • Bought once, and the window has closed. number_of_orders = 1 with last_order_date older than your median repeat interval. The action is a specific second-purchase prompt, and the reason it works is that the first repeat is the hardest one — this is where an offer is worth the margin.
  • Repeat buyers who are not subscribed. number_of_orders >= 2 with email_subscription_status not subscribed. These people like you and you cannot reach them. The action is an on-site or in-parcel ask, not a campaign, because by definition you cannot email them.
  • Bought the durable, never bought the consumable. products_purchased MATCHES the hardware, NOT MATCHES the refill. This is the highest-intent list most catalogues contain and most stores have never written the query.
  • High value, gone quiet. amount_spent above a threshold you choose with last_order_date beyond your normal cycle. The action is a human one — a service call, a note, a restock alert — and it is worth a person rather than an automation.
  • Subscription lapsed or paused. Via product_subscription_status. The action differs from every other lapse because the customer has already demonstrated they wanted the thing on a schedule; something broke, and the useful question is what.

The arithmetic nobody runs first

Segments get precise faster than they get useful. A query that resolves to 180 people is satisfying to write and cannot tell you anything. If your campaign open-to-purchase rate is a few per cent, a segment of 180 produces single-digit orders, and single-digit orders are noise — you cannot tell a good offer from a bad one at that volume, and you will conclude whatever you wanted to conclude.

Before building a segment, check its size, then ask what result would make you change the programme. If the honest answer is that no realistic result would be readable, either widen the definition until it is or accept that this is a one-off list for a human to work through rather than a segment to test against. Both are legitimate. Pretending the second is the first is how teams end up with confident conclusions from twelve orders.

The same arithmetic applies to splitting. Four segments that each get a meaningfully different message beat twelve that each get a slightly different subject line, because the four produce readable differences and the twelve produce twelve small samples.

On-site segmentation is a different problem

Segmenting email is straightforward because you are working from order history, which is complete. Segmenting the storefront — showing a different homepage, a different recommendation, a different banner — runs into a constraint worth stating plainly.

Shopify’s analytics documentation defines sessions as the "number of online store visits" and notes that they are "only counted when visitors consent to cookies through your cookie banner". Consent rates differ by market and by banner design, so the behavioural picture you can act on is a subset of your traffic, and a subset of uneven size across regions. That does not make on-site personalisation pointless, but it does mean the segment you target on-site is not the same population as the segment you email, and comparing their performance directly is a mistake.

It also means the reliable on-site signals are the ones that do not depend on a cookie history: what is in the cart now, what the customer just viewed in this session, and whether they are logged in. Logged-in state is the underrated one. A returning customer who has signed in gives you their entire order history with no inference required, which is a good argument for making accounts worth having rather than for buying a personalisation engine.

When you do not need a CDP

The pitch for a customer data platform is that your customer record is scattered across Shopify, the ESP, the helpdesk and the loyalty app, and a CDP unifies it. The scattering is real. The conclusion usually is not.

Most mid-market stores asking the question have a simpler problem: the ESP’s sync from Shopify is incomplete or lagging, so the marketing team cannot segment on order data and reaches for a system that can. Fixing the sync is weeks of work and costs a fraction as much. A CDP on top of a broken sync inherits the broken sync.

The cases where a CDP genuinely earns its place have a shape: several selling channels whose customers are the same people, a retail estate whose transactions do not reach Shopify, or a business where the marketable audience is much larger than the buyer base. If you are one store, one ESP and one helpdesk, spend the money on the three segments above and a person to run them.

How to keep the list honest

Put a name and a date on every segment, review the list quarterly, and delete anything that has not driven a distinct action since the last review. The Shopify Admin API exposes a segment’s id, name, creation date and query, so the audit can be automated if the list has grown past what anyone will read.

And write the query’s intent down somewhere the marketing team will see it. amount_spent > 500 AND last_order_date < -180d is unambiguous to whoever wrote it and opaque six months later. "Customers worth more than £500 who have not ordered in six months — Priya calls these" is the version that still means something after a handover.

Questions this raises

How should you segment ecommerce customers?

By behaviour that maps to a decision. Order count, time since last order, what was bought, and marketing permission cover most of what a retention programme needs, and all four are available as documented Shopify segment attributes. Demographic segments are easy to build and rarely change what you do.

Are Shopify customer segments dynamic?

Yes. Shopify documents them as dynamic groups of customers meeting criteria defined through a ShopifyQL query, so membership is re-evaluated against the query rather than frozen at the moment you created it.

What can you filter on in a Shopify segment?

The documented attributes include `first_order_date`, `last_order_date`, `number_of_orders`, `amount_spent`, `orders_placed`, `products_purchased`, `rfm_group`, `predicted_spend_tier`, and the email, SMS and product subscription statuses. Numeric and date attributes support comparison operators and `BETWEEN`; function attributes like `products_purchased` use `MATCHES` and `NOT MATCHES`.

Should I use Shopify’s RFM groups or build my own?

Look at who is in Shopify’s groups before deciding. `rfm_group` is a documented enum, but what counts as a healthy purchase interval depends entirely on your catalogue — a mattress retailer and a coffee roaster have opposite definitions of lapsed. If the grouping matches your commercial reality, use it; if it does not, build the segment from raw dates and counts.

How small is too small for a segment?

If the expected number of orders from a campaign to that segment is in single digits, no result will be readable and you should treat the list as a set of individual people to contact rather than a test cohort. Work backwards from your usual conversion rate before building the query, not after the campaign disappoints.

Do I need a CDP to segment properly?

Usually not. The common trigger is that order data is not reaching the ESP reliably, and fixing that sync is cheaper and faster than adding a platform on top of it. A CDP earns its place when several channels sell to the same people and Shopify is not the only transaction system.

NEXT STEP

Free store audit

A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes.