Documentation overview

Personalizing your messages

Every email, SMS, push notification and website message can carry each recipient's own data – their name, what they've spent, what they last bought – and can even change its copy per person. This manual covers the two tools that do it: fields and smart blocks.

Both fill in at send time, per recipient. The recipient preview in the email editor shows the real result – use the arrows above the preview to step through actual people from your audience.

Fields – insert a value

Open {{p}} Personalize in the email editor (journeys or Email Studio). Search for what you want – try "name" or "spent" – and click it. That copies a small placeholder you paste anywhere in your text.

What's available:

  • About the person – first name, last name, email, phone, company, customer ID.
  • Computed from their purchases – total spent, order count, last purchase date, days since last purchase. These come from your connected data and update automatically.
  • Your data – every field you've imported and every event property your website or systems send. This list grows as your data does.

A fallback keeps copy readable when a value is missing: {{p.first_name|there}} writes the person's name, or "there" when you don't have it. Always give names a fallback – "Hi ," is how a brand looks careless.

Smart blocks – insert behavior

The second tab of the Personalize window holds smart blocks: sections of your message that change per recipient. Click one to copy it, paste it into your text, then edit the words to yours.

  • Different copy for big spenders – one message for customers over a spend threshold, another for everyone else.
  • Products they're likely to buy – lists up to three recommended items from your catalog, with prices. (Your catalog needs to be connected – see Connecting your data.)
  • Only for recent customers – a section only people who bought recently will see.
  • Greeting that never breaks – the name-with-fallback pattern, ready to paste.
  • Their total spend, formatted – an amount written as money, e.g. $1,234.50.

An example – a win-back email whose middle section adapts per person:

text
Hi {{p.first_name|there}},

We miss you. It's been {{p.days_since_last_purchase}} days.

{% if facts.total_spent > 500 %}
As one of our best customers, here's 20% off your next order.
{% else %}
Here's 10% off to welcome you back.
{% endif %}

You might like:
{% for item in catalog.also_buy %}
{{ item.name }}  {{ item.price | money: item.currency }}
{% endfor %}

You don't need to write this by hand. Ask the AI in Chat: "Write a win-back email that gives 20% off to customers who spent over $500 and 10% to everyone else, with product recommendations." The AI writes the blocks for you, and you edit the words.

Three things to rely on

  1. The preview is the truth. With a recipient selected, the editor preview shows exactly what that person receives – conditions resolved, products filled in, prices formatted.
  2. A broken block never stops a send. If a block is written wrong, the message still sends with the text as you typed it – you'll see the issue in the preview before it ever matters.
  3. Missing data reads clean. A field with no value renders as empty, never as raw code in front of a customer. Write sentences that survive an empty value, and use fallbacks for names.