KlaviyoEmail MarketingAutomation

Hyper-Personalization at Scale: Beyond Dynamic Tags

BS&Co TeamFebruary 10, 20267 min read

Hyper-Personalization at Scale: Beyond Dynamic Tags

Most brands think they're doing personalization. They're not.

They're using dynamic tags — {{first_name}}, {{last_purchased_product}} — and calling it personalized. That's not personalization. That's mail merge with extra steps.

Real personalization means writing copy that actually responds to what a specific person has done. Not "Hi {{first_name}}, check out our new arrivals." More like: "Hey John, I saw you bought the watermelon basil drink back in March. Here are three recipes you can make with it this weekend."

That's a different thing entirely. And until recently, it wasn't possible at scale.

What Most Brands Are Actually Doing

Here's the typical "personalization" setup:

  • First name in the subject line
  • Product recommendations based on browse history
  • Maybe a dynamic block showing the last product they viewed

This is better than nothing. But it's not personal — it's automated. The email doesn't actually know anything about the person. It's just pulling variables into a template and trying to make something fit.

The result is emails that feel like they were written by a robot. Because they were.

What Real Personalization Looks Like

Real personalization means the copy itself changes based on who's receiving it and what they specifically did. Not the product recommendations. The actual words.

Here's an example. Say you're running a win-back campaign for lapsed customers. The typical approach:

Hi {{first_name}}, we miss you! Here's 15% off your next order.

The personalized version:

Hey Sarah — I noticed you bought our recovery gummies a couple times back in 2023 but haven't been back since. Everything okay? If the gummies weren't working for you, I'd love to hear about it. Either way, here's a discount if you want to give us another shot.

That email knows:

  • What she bought (recovery gummies)
  • How many times she bought (a couple)
  • When she stopped (2023)

It's not just inserting variables to try to cobble something together. It's actually writing copy that responds to her specific behavior.

How This Actually Works

The technical flow:

  1. Pull the data — Export a segment from Klaviyo (e.g., lapsed customers who haven't purchased in 270+ days). Include their purchase history. You can automate this later using webhooks & AWS Lambda functions.
  2. Structure the data — Transform it into something usable. For each person: what did they buy, when, how many times, what categories.
  3. Pass to an LLM — Feed the structured data to Claude or GPT with a prompt that writes personalized copy based on the purchase history. If you're worried about PII or data security, use AWS Bedrock.
  4. Get back individualized copy — The model writes 2-3 sentences specific to that person's behavior.
  5. Push back to Klaviyo — Store the personalized copy as a custom property on their profile. Again, automate this using Lambda.
  6. Use in emails — Pull the custom property into your email template with a dynamic block.
  7. Send — The email goes out with copy that's actually written for that specific person.

Where This Gets Interesting

Once you have the pipeline working, the use cases multiply:

Win-back campaigns

Reference what they bought and when they stopped. Ask if something went wrong. Make it feel like a real person noticed they left.

Repeat purchaser → subscription

"Hey John, I saw you bought the protein powder three times in the last six months. Have you thought about subscribing? You'd save 15% and never run out." You can also do a "pre-check" — checking not just if they bought 2x+ but that they actually bought the same product 2x+.

Post-purchase flows

Instead of generic "thanks for your order," reference the specific product and give them something useful. Bought a spice blend? Here are three recipes. Bought running shoes? Here's a break-in guide for that specific model.

Abandoned cart

Instead of "you left something behind," write copy that speaks to what they were actually looking at and why it might be right for them. Reference reviews for that product, reference if it's on sale, reference use cases. Learn more in our guide to Shopify cart abandonment strategies.

What Makes This Hard

This isn't a plug-and-play solution. The complexity is in:

Data extraction: Klaviyo's API gives you purchase history, but you need to pull it, structure it, and make it usable. This isn't just a CSV export — it's a full pipeline.

Prompt engineering: Getting the LLM to write copy that sounds human (not robotic, not over-the-top) takes iteration. You need guardrails on tone, length, and what it should and shouldn't say.

Reinsertion: Pushing the generated copy back into Klaviyo as a custom property requires API work. And you need to think about when this runs — on a schedule? Triggered by segment entry?

Knowing when to use it: Personalized copy isn't always better. For a flash sale, you don't need it. For a win-back campaign targeting high-value lapsed customers? That's where it matters.

The Bigger Point

The gap between "personalization" as most brands practice it and actual one-to-one copy is massive. Most brands are doing mail merge. A few are starting to do real personalization.

This will become a nonnegotiable. Right now, it's a differentiator.

If you're a brand doing $5M+ and your email program is mature, this is worth exploring. If you're earlier stage, get your flows and segmentation right first. Personalization at scale is an optimization on top of a working foundation — not a substitute for one.

What You'd Need to Build This

If you want to experiment:

  1. A segment to target — Start small. A few thousand people is fine. High-value lapsed customers are a good test case. Use our Audience Builder to create the segment.
  2. Their purchase history — Exported from Klaviyo or pulled via API. We strongly suggest using the API.
  3. An LLM — Claude or GPT. You'll need to write a prompt that takes purchase data and outputs personalized copy.
  4. A way to get it back into Klaviyo — Either manual (upload a CSV with custom properties) or automated (API integration). Use the API whenever possible for better results.
  5. An email template — With a dynamic block that pulls the custom property. Our Flow Builder can help set up the flow structure.

Start manual. See if it moves the needle. Then automate.

The first test we ran showed higher engagement and revenue per person than generic campaigns. Small sample size, but directionally interesting. The real unlock isn't the first campaign — it's having the infrastructure to do this repeatedly, at scale, without thinking about it.

That's where this is going.

Ready to implement hyper-personalization?

We've built the infrastructure to do this for multiple brands. If you're doing $5M+ and want to explore AI-powered personalization, let's talk.

Want results like these for your brand?

We help ecommerce brands build email and SMS programs that drive real revenue. Let's talk about what we can do for you.