The Future of Personalization Is Logic, Not Guesswork

We need to talk about what personalization actually means.

Greg Lakatos

Why most “personalization” is just sophisticated batching and how to fix it

We need to talk about what personalization actually means.

Most marketing teams think they’re personalizing when they’re really just segmenting. You create audiences for “high-value customers in California” and send those groups targeted messages. It works better than spray-and-pray, sure. But it’s not personalization. It’s batching.

Real personalization happens at the individual level, in real-time, based on context that changes from moment to moment. And here’s the thing: the tools to do this have been sitting in your Braze instance the whole time.

The Segmentation Trap

Let’s say you’re launching a flash sale. The traditional approach:

  • Build a segment of active users
  • Send everyone the same message
  • Maybe A/B test two subject lines
  • Call it “personalized” because you used their first name

Seems reasonable, right? But here’s where it breaks down:

Sarah just made a purchase yesterday. She gets your flash sale email anyway. Now she’s annoyed because she just paid full price.

Marcus lives in Texas, where half of your sale items aren’t available due to regional restrictions. He clicks through to find nothing he can actually buy.

Yuki is in Tokyo, where your “24-hour sale” actually started 18 hours ago. She has 6 hours left, not 24.

Your “personalized” message just became irrelevant noise to three different people for three different reasons.

This is the segmentation trap: you’re making decisions at campaign build time based on who users were, not who they are or what they need right now. When you build a segment, you’re taking a snapshot. You’re saying “these people qualified at 2 pm on Tuesday.” But what about the person who purchased at 2:15 pm? Or the person whose subscription expired overnight?

Your segments are always outdated the moment you press send.

Finally, use this phase to perform a thorough audit of your existing setup. Catalog what’s currently sending, understand the data powering each message – from triggers to personalization – as well as priority within the migration. Consider what messages you need to migrate (core marketing automations, reusable content components) and what can stay in the legacy platform. This is a great time to note any red flags as well, such as very complex journeys, automations that haven’t been reviewed recently, or messages relying on old and outdated data. This level of clarity sets the foundation for your team to be efficient and intentional.

What Real Personalization Looks Like

Real personalization makes decisions at the moment of send, not the moment of build. It asks:

  • What do I know about this person right now?
  • What’s true about their situation at this exact moment?
  • What makes sense for them today, not last week?

Instead of “Send message A to segment X,” you’re saying “Evaluate this person’s current state and determine what they should see.”

The bridge from batch segmentation to individual personalization is logic. Think of it like this:

Segments say: “If you’re in this group, you get this message.”

Logic says: “When it’s time to send to you, let’s check your current situation and decide what makes sense.”

One is predetermined. The other is dynamic.

The Logic Layer: Where Personalization Actually Happens

In Braze, this logic layer has three components that work together:

  1. Liquid – Your conditional logic engine
  2. Connected Content – Your real-time data bridge
  3. Catalogs – Your dynamic content repository

These aren’t just features. They’re the infrastructure that makes your Golden Profile actionable. You built the foundation with clean data and proper identity resolution. Now this is where that data transforms into contextual experiences that adapt to each user, every time.

How This Actually Works

1. Liquid: Smart Templates That Adapt to Each User

Instead of creating dozens of segments for every possible combination of user attributes, you create one message that checks those attributes at send time and adapts accordingly.

The problem: You want to send a promotional message that varies based on engagement level, product preference, VIP status, location, and device type. With segments, you’d need hundreds of different audiences just to cover the combinations.

The solution: One message template that says:

“When sending to this user, check their preferred category, engagement level, VIP status, location, and device type. Then show them the content that matches their current state.”

Same outcome. Zero segments to maintain. And here’s the bonus: you’re not just saving on segment management, you’re also saving massive amounts of development time. Instead of building, testing, and maintaining dozens of separate message variants, you build one intelligent template that does the work for you.

Real example: Welcome Back Campaign

Instead of building separate segments for:

  • Lapsed users who like electronics
  • Lapsed users who like apparel
  • Lapsed users who like home goods
  • (Multiply by VIP status, location, etc.)

 

You build one message that checks each user’s preferences when it’s their turn to receive it. The message adapts automatically. You maintain one template instead of dozens of segments.

 

Technical Deep Dive (Optional)

This section is intended for technical marketers or developers implementing the solution. Non-technical readers can skip ahead.

Liquid lets you write if/then logic directly into your message templates. Here’s how the above example looks in practice:

 

But this gets more powerful when you chain conditions:

  • Check if they’ve engaged with previous messages
  • Adapt content based on device type or platform
  • Modify CTAs based on user preferences
  • Adjust timing based on calculated fields

You’re not guessing what users might want. You’re evaluating their current state and responding accordingly.

2. Connected Content: Real-Time Data From Outside Braze

Liquid works with data that’s already in Braze. But what about data that changes too fast to sync? Inventory levels, weather conditions, event availability, pricing, product recommendations from your ML models.

This is where most personalization strategies hit a wall. If you can’t get the data into Braze fast enough, you can’t personalize with it, right?

Wrong. Connected Content lets you fetch fresh data at the moment you send each message. Not data from an overnight sync. Data from right now.

Real scenario: The Media Company Problem

A media streaming company wants to send “new episodes available” notifications. But content availability varies by user location (licensing restrictions), device type, and changes within hours due to rights issues.

You can’t segment by every combination. The complexity explodes, and the data changes too fast.

The solution: At send time, for each user, the message checks availability right now:

  1. Call the content availability API with this user’s ID and location
  2. Get back a list of episodes available to them at this moment
  3. If there are episodes, show them
  4. If there aren’t, don’t send the message at all


The result:

  • Users only get notifications for content they can actually watch
  • No wasted sends
  • No frustrated clicks to empty screens
  • No complex segment maintenance


This happens in milliseconds per user, right before their message goes out.


Technical Deep Dive (Optional)

This section is intended for technical marketers or developers implementing the solution. Non-technical readers can skip ahead.

Here’s what Connected Content looks like in practice:

The API call happens at send time, pulling live data into your message before it goes out. The message only sends if there’s actually content available to that specific user, in their specific region, right now.

Another example: Inventory-Aware Recommendations

An e-commerce brand’s ML recommendation engine updates constantly. Inventory changes throughout the day. Prices fluctuate based on demand.

Traditional approach: Sync recommended products to user profiles overnight. Send recommendations based on yesterday’s data. Deal with angry customers who click through to out-of-stock items.

Smart approach: At send time, for each user:

  1. Call the recommendation API to get their personalized product IDs right now
  2. Look up current details for those products (price, inventory)
  3. Filter out anything that’s out of stock
  4. Show only available products with current pricing

 

The user gets recommendations that are accurate at the moment they receive them.

3. Catalogs: Dynamic Content Libraries You Can Query Instantly

You need to personalize with data about thousands of items (products, content, locations, events), but you can’t create user attributes for all of them.

Catalogs are Braze’s answer to this challenge. Think of Catalogs as a dynamic lookup table you can query at send time, like a spreadsheet that updates constantly:

When you send a message, you can:

  • Look up specific products by ID
  • Check current inventory counts
  • Pull in real-time pricing
  • Filter by availability or category

 

All without creating attributes for every product on every user profile.

Technical Deep Dive (Optional)

This section is intended for technical marketers or developers implementing the solution. Non-technical readers can skip ahead.

Catalogs excel at managing structured data that changes frequently. Here’s a simple lookup:

This queries your Catalog at send time, pulls current product details, and filters based on availability.

The Power of Combining All Three

Here’s where it gets magical. You combine smart templates + real-time data + dynamic lookups to create experiences that feel psychic to users but are just smart logic to you.

For each user being sent this message:

  1. Check their preferred category (Liquid)
    IF they like electronics, focus there
  2. Call recommendation API (Connected Content)
    Get their top 5 recommended products right now
  3. Look up those products (Catalogs)
    Get current price, inventory, descriptions
  4. Filter based on availability (Liquid)
    Only show products with inventory > 0 
  5. Apply VIP discount if applicable (Liquid)
    Check if user is VIP, show special pricing  
  6. Deliver the final message
    Perfectly personalized, completely current

Every user gets recommendations that are:

  • Based on their preferences
  • Generated by your ML model right now
  • Showing current inventory and pricing
  • Filtered for availability
  • Personalized to their status

 

And you did this with one message template, not thousands of segments.

 
Technical Deep Dive (Optional)

This section is intended for technical marketers or developers implementing the solution. Non-technical readers can skip ahead.

Here’s what the full integration looks like:

You’ve now:

  • Called your recommendation engine for this specific user
  • Looked up current product details from Catalog
  • Checked inventory availability
  • Applied conditional pricing logic
  • Delivered a message unique to this person, at this moment

 

All without creating a single segment. Messages always send. They just adapt based on what data is available.

What This Means for Your Marketing Program

Instead of This Workflow:

  • Building 50 segments for your holiday campaign
  • Maintaining separate campaigns for each user type
  • Creating new segments every time requirements change
  • Dealing with irrelevant sends due to stale data

 

You Get This Workflow:

  • Building one flexible message template
  • Maintaining logic rules that evolve with your strategy
  • Adding new conditions without creating new campaigns
  • Every message is contextually perfect because the data is current

 

The Mental Shift

Stop thinking: “Which segment should get this message?”

Start thinking: “What should this message check before it goes to each person?”

That’s the shift from batch to individual. From predetermined to dynamic.

Getting Started Tomorrow

If you’re not using these capabilities yet:

  1. Audit your segments: Which ones exist just to handle conditional content? Those are Liquid candidates.
  2. Identify your fastest-changing data: Inventory, availability, pricing, recommendations. That’s Connected Content territory.
  3. Map your content libraries: If you’re managing hundreds of products/articles/offers, you need Catalogs.

 

Find your “if only” statements: “If only we could check X before sending…” That’s your use case.

The Compound Effect

The real power isn’t in using one of these tools. It’s in combining them.

When you layer Liquid logic + Connected Content data + Catalog lookups, you create messages that feel like magic to users because they’re contextually perfect. But to you? It’s just logic. Readable, maintainable, testable logic that evaluates each person’s situation at the moment of send.

And unlike segments that multiply exponentially with each new condition, logic scales linearly..

One template. Infinite variations. That’s the future of personalization

Ready to unlock the full potential of your data?

Talk to Ragnarok about implementing a robust data dictionary and elevating your personalization efforts to new heights. Your customers will thank you for it.

Facebook
Twitter
LinkedIn