• personalization
  • 1:1 marketing

Message Personalization: From First Names to Behavioral Data

Name variables, conditional branches, behavioral data - three steps toward messages that change per person.

Thumbnail showing a message template personalized with name and product variables and conditional branching

Say personalization and most people picture a greeting like "Hi Minhyuk." A message with your name in it does catch the eye for a second. But when everyone gets the same discount and only the name changes, it reads like a blast with a name filled in.

Getting past first names means the message reflects what a user viewed, what they bought, and what they just did. This post walks through that in three steps: connecting data, branching by condition, and pulling in behavior.

Put user data into variables

To put user data in a message, connect the data first. Send values like name, tier, interest category, and sign-up date as tags or user profiles, and you can pull them into any message as variables. In FlareLane you insert variables with Liquid1 syntax and set a default that goes out when the value is empty. Liquid works the same in every channel (push, Kakao Alimtalk, email, SMS, in-app) and in every situation, one-off sends and journey automation alike. For the full syntax, variable types and filters included, see the Personalized messages (Liquid) docs.

A template written with Liquid variables filling into an actual user message
FlareLane - a message written with Liquid variables

Set the default on a name variable to "there" and users with name data get their real name while everyone else gets "Hi there." No awkward blank is left when data is missing. You don't need to memorize the syntax either - pick variables in the console in a few clicks.

Branch by purchase category

Once variables feel routine, you can change the sentence itself based on a data value. Users whose last purchase was sneakers get the new sneaker drop. Outerwear buyers get outerwear news. Everyone else gets general new arrivals. One campaign, a different sentence for each person.

It's easy to confuse this with segments. Segments filter who you send to, like buyers from the last 30 days. Branches change the wording inside that audience. Use both and a narrowed audience each gets their own version in a single send.

Pull in behavioral data

In customer journey automation, the event that starts a journey carries its data straight into variables.

When a user action like a purchase happens, a matching message goes out automatically
FlareLane - a message based on user state

Pull the product name left in a cart and send "The running shoes in your cart are waiting," or drop a freshly shipped product name into a delivery update. The user is getting a reply to something they just did, and that lands differently than a bulk send.

More granular is not automatically better, though. McKinsey estimates personalization typically lifts revenue 10-15%, while noting that personalization done wrong breeds resistance instead. When a variable surfaces information a user never knowingly shared, the message starts to feel invasive.

A/B test the copy per user, then read the stats

Personalization doesn't stop at the data you drop into a message. Given the same nudge, some users respond to a calm product reminder. Others move only when a low-stock warning adds urgency. You can't guess who is which, so you A/B test both, record which one each user reacted to, and send that person the copy that fits them next time.

Take a cart abandonment journey. Here is how it is set up:

  • Entry and wait: the journey starts on a cart-add event and sends three hours later.
  • Preferred-copy branch: users who already carry a "preferred copy" tag skip the A/B test and get the copy they responded to last time.
  • A/B test: users without the tag split 50/50 across two copy styles. Variant A, the reminder, nudges gently with "Forgot something in your cart? Your saved items are still there." Variant B, the stockout warning, leads with scarcity: "Are your cart items still in stock? Popular ones sell out fast."
  • Tag the result: one day after the send, the journey checks whether a purchase happened since entry and writes the winning copy to that user's "preferred copy" tag. From the next campaign on, that tag sends each user the copy that works for them.
Journey canvas that splits cart abandoners 50/50 to A/B test a reminder and a stockout warning, then tags the winner
FlareLane console - a cart journey that A/B tests two message styles

While each user's preference builds up in a tag, the analysis screen shows the overall performance. The top row gives entered journeys, converted journeys with a rate, and total revenue for the period, and every node carries its own sends, clicks, conversions, and revenue. Put the Variant A push node next to the Variant B node and compare which copy leads on conversion rate and revenue.

Say that over a month the reminder (A) came in at a 3.1% conversion rate and $7,200 in revenue, and the stockout warning (B) at 2.4% and $4,800. For new users who have no preference yet, switch the default copy to the reminder and dial the stockout variant back. Just don't decide on clicks alone: if the stockout warning pulls more clicks on pressure but books less revenue, the reminder is the better earner. Reading conversion rate and revenue together is what points you to the copy that actually contributes to sales.

Journey analysis screen showing entered journeys, converted journeys, total revenue, and per-node send, click, and conversion stats
FlareLane console - journey analysis with per-node conversion and revenue

When choosing values, check that each one feels natural to receive. If you are deciding which of your data to turn into variables first, you can request a consult below.

Picking the right data for your messages

Bring the tags and event data you already collect. We will sort out together which values work as variables and which to leave out.

Contact us

Footnotes

¹ Liquid: an open-source template language created by Shopify. It lets you pull in and shape user data inside a message.


FlareLane

FlareLane

Contents Team, FlareLane (FlareLabs, Inc.)

Written by people who've actually run CRM marketing and growth, not just written about it.


FlareLane is a CRM marketing solution that automatically delivers push, SMS, KakaoTalk, and in-app/in-web messages aligned with each customer's behavior and journey. From startups to enterprises, we help everyone design and run hyper-personalized marketing and customer journey automation with ease.

Frequently asked questions

What shows up for a user who has no value for a personalization variable?

You set a default per variable so no blank ever ships. Give the name variable a fallback so 'Hi {name}' renders as 'Hi there' when a name is missing. Liquid lets you specify what fills in whenever a value is empty.

Which data is safest to use first in personalized messages?

Start with behavioral data the user clearly left behind: cart items, last purchase category, shipping status. Pull in something they never knowingly shared and it tends to backfire instead of helping. Check whether a value feels natural to receive before using it.

Do I have to rebuild personalization variables for each channel?

No, learn it once and reuse it everywhere. The same Liquid variable drops into push, Kakao, email, SMS, and in-app the same way, and it works whether the send is one-off or inside an automated journey.