Article
My take on 1-2-1 personalisation at scale (the 5 layer technique)
Best for medium to large Shopify stores.

A few days ago I wrote an article about how running an LLM for every single one of your customers to generate unique campaigns for them doesn’t scale, but what we should be doing is identifying micro-segments, then layering on additional details so it feels 1-2-1 for each shopper.
The next natural question is what those segments should be.
Marketers have typically done segmentation on a number of axes, such as recency, frequency, and monetary value. A simple 5 dimensions in each of those will get you to 5x5x5 = 125 segments. Layer on age bands, gender, etc. and you might get into the thousands.
Marketers never do this though. Marketing platforms let you do it technically but it just isn’t realistic to build the deliverables or manually decide on a comprehensive strategy for all of those segments.
Bloomreach has one of the best audience builders I’ve seen (I led the UKI SC team so I know it well). You could slice and dice people any which way, and all the segments would update in real-time. No other platform did it as smoothly or as quickly (yes, I’m biased but I genuinely believe that and will do so until someone sends me a video proving otherwise! :P).
Being able to segment in this way looks great in a demo, but how practical is it really? How do I know what combinations to build? If I have 100 categories of product and sell 100,000 SKUs, and my audience is diverse, where do I start?
Knowing all that, and knowing the ultimate goal is something resembling 1-2-1 personalisation at scale, I’ve decided the approach should be something along these lines.
Thinking in 5 layers
Layer 1: Moment (Shopper State)
Let’s separate out three things and use them as axes to understand each person: behaviour (what someone is doing), the goal (what they are trying to achieve), and our brand’s relationship with them (prospect vs regular buyer, cart abandoner vs browser, etc.).
Key factors going into the Shopper State might be:
- Lifecycle position: prospect, first-time, returning, loyal, dormant
- Funnel position: researching, considering, abandoning, freshly converted, at-risk
- Built from observed behaviour and timing, not self-declared status
Some examples would be:
- one-time purchaser x cart abandoner x researcher
- prospect x checkout abandoner x considerer
- multi-purchasers x dormant x considerer
This is no different to building segmentations manually in marketing automation platforms. I’ve just put a framework around it by defining the axes more clearly.
Notice the Shopper State does not include WHAT someone is trying to do, only their current state (in other words, we don’t differentiate ‘jacket cart abandoner’ vs ‘jeans cart abandoner’ at this stage).
Layer 2: Meaning (Clustering)
Then, let’s layer on clustering. Knowledge that you can’t necessarily observe just by looking at behaviour alone. The clustering helps us understand a shopper’s taste - what they’re into right now.
Some examples might be:
- Everyday essentials browsers
- High-end fashionistas
- Medium priced work outfit seekers
- Tie collectors
These are more akin to what marketers would refer to as Personas back in the day, except we create hundreds of them, unique to your store.
Notice that at the meaning phase we don’t layer in Shopper State - we are only trying to identify who the person is and what they are trying to achieve.
This layer helps us shape the language to use when talking to someone, and each cluster is unique to the store.
Layer 3: Trajectory (intent over time)
Layer 3 looks at both long-term and short-term (realtime) intent. The interesting part is the direction the intent is going in, not the score alone.
- Latent intent: Drifts over weeks; she's been vaguely in-market for running shoes for a fortnight
- Live intent: Rises and dips inside a single session as she lands, browses, hesitates, drifts
Latent without live misses the moment the line crosses something actionable. Live without latent mistakes every excitable browser for a buyer. Both are needed.
Layer 4: Catalogue knowledge (what's available to surface)
Now we have Shopper State and cluster, we can look at what that group of people typically looks at, adds to cart, and buys. Two people both in the ‘High-end fashionista’ cluster are interested in the same goal (‘looking trendy') regardless of which Shopper State they’re in.
So we can analyse data to see what that cluster is looking at and buying. Recommendation engines no longer become broad but can be targeted directly. This might include cluster level recommendations, or items that the store wants to push:
- Product recommendations. Items related to what she's viewed, similar to what she's bought, complements to what's in her bag.
- Category recommendations. The slice of the catalogue worth pushing her toward.
- Trending items. What's moving across the store right now.
- Merchandiser priorities. What the brand wants surfaced this week (new drop, overstock, margin push).
- Cross-sell and upsell sets. Bundles that hold together.
- Editorial and lookbook content. Non-product assets the merchandising team has built.
No more general ‘you might like this’ recommendations based on the entire set of shoppers, but instead more focused on each cluster.
Layer 5: Orchestrator (the agent that composes everything)
The four layers above give us a very good sense of who the person is, what they want, what else they might consider, and how to talk to them.
Language
If I’m trying to sell a new jacket, I could pitch it differently for each of our hundreds of clusters:
- ‘The hottest trend in Milan right now’ - The high-end fashionista cluster.
- ‘Sharp fits for everyday wear’ - The style-conscious outerwear cluster.
- ‘All the features you need’ - The practical outdoor wear cluster.
Action
Now we can also decide for each cluster x Shopper State cell what action to take.
- High-end fashionista x cart abandoner x prospect x jackets - "5% off jackets" homepage banner
- High-end fashionista x cart abandoner x repeat purchaser x jackets - “100 loyalty points" email
- High-end fashionista x browser x prospect x jackets - Surface “How to choose a stylish jacket” article link
There could be thousands of unique actions to take.
Process summary
So the process in summary is:
- Picks the intersection. Reads moment, meaning, and trajectory to identify the cohort and the posture
- Selects from the candidate pool. Chooses the products, categories, or assets that fit this cohort right now, balancing fit with merchandiser priorities
- Writes the copy in the right voice. Wedding-guest framing here, loyalist tone there, urgency or calm depending on trajectory
- Builds the creative. Generates the image, lays out the email, assembles the on-site module
- Deploys across channels. On-site banner, PDP module, popup, email, SMS, push — wherever the moment is being lived
- Learns from the response and feeds it back. What worked at this intersection, what didn't, what the next shopper here should see instead.
I haven’t touched much on that last point — learning and feeding back — but it is key.
Why the layers work
With these five layers in place, recommendations, segmentation, and creative stop being three separate systems bolted to each other. The agentic orchestrator brings everything together in a way a human cannot do at scale.

With the layers outlined in this way the interesting cohorts emerge that you might never have noticed before. A returning loyalist abandoning a checkout inside the outfit-builder cluster is one cohort. A wedding-guest first-timer abandoning the same checkout is a completely different one. Same trigger, same funnel position, different worlds.
The voice for the loyalist isn't the voice for the first-timer. One needs friction removed inside her familiar wardrobe language, the other needs trust and delivery confidence established inside hers. Single-axis segmentation sends both the same discount code, because a flat segment list can't tell you which one needs which.
To make that concrete: two shoppers abandon checkout.
- The wedding-guest first-timer sees "Cutting it close? Express delivery still gets it there by the event." The objection is trust and timing.
- The outfit-builder loyalist sees "Finish the look. The jacket you were looking at last week pairs with what's already in your bag." No trust issue, no urgency; the lever is completion.
Same trigger, different copy, different products surfaced. Single-axis segmentation would have sent both a generic discount.

Or take two shoppers in the same performance-running cluster but in different moments.
- The active browser gets a seasonal email roundup in the language they already shop in.
- The at-risk dormant gets "Your usual model just dropped a new colourway" — reactivation framed in their taste vocabulary, not a generic win-back.
And trajectory changes the move too.
- A high-intent shopper hesitating on a PDP gets a comparison module, because they want to decide, not be sold to.
- The same high-intent shopper at checkout with intent falling gets "Your card's on file — one tap". The objection there isn't doubt, it's friction.
The winning formula?
I think this is the shape that wins, for two reasons.
First, generative copy needs reusable groupings. You can't write ten million one-to-one messages economically but you can write one per meaningful intersection. Composable axes give you intersections worth writing to, and worth recommending into.
Second, merchants need to be able to understand their customers deeply. Single-label segments are unfalsifiable: who really is a "VIP"? Clusters and movements across Shopper State are more intuitive. A shopper moved from active to at-risk, here's why. She's in the wedding-guest cluster, here's what that means. Her in-session intent is falling, here's what we'd do about it.
None of the marketing automation platforms or CRM tools right now, as far as I can see, have a setup that allows all five layers to operate.
Moment, meaning, trajectory, catalogue, orchestrator. At every intersection, a recommendation in the right voice with the right products. That's the shape I think wins.