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:
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.
Your logo
Email Studio offers a Logo block first under Content, and the Header block carries a logo too. Both use your brand logo by default. It is not copied into the template: the e-mail carries a reference, and the logo is resolved at the moment the e-mail is rendered – in the studio preview, in a test, in a journey or a broadcast. Change the logo once in Settings → Brand and every template that uses the brand logo follows, including the ones you built before. Until the brand has a logo, the header shows the brand's name in its place – never a broken image and never the word "Logo". A template can also carry its own image instead: switch the header's logo to This template's own image and pick one.
Copy can use the same brand fields: {{brand.name}}, {{brand.website}}
and {{brand.logo_url}} resolve the same way.
Three things to rely on
- 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.
- 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.
- 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.