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.
For what personalization means in marketing before the how of it, read personalization defined.
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.
Your brand's details
Four tokens fill in from Settings → Brand, so one template serves the brand as it is today:
{{brand.name}}– the brand's display name ("KAJOT INTACTO: your bonus is ready").{{brand.website}}– the website address.{{brand.logo_url}}– the logo's address, for an image of your own.{{brand.primary_color}}– the brand colour, for a button or a line.
They work in every e-mail (subject and body), SMS, push
notification and website message (headline, text and button), and in a
journey's webhook body. A fallback works as for people:
{{brand.website|our website}}. In a smart block the brand is there too:
{% if brand.logo_url %}…{% endif %} shows a section only when the brand
has a logo, and {{ brand.name | upcase }} writes the name in capitals.
The AI writers know these tokens too. When Email Studio, SMS Studio, a
journey's AI e-mail or SMS step, or the e-mail and SMS tools the chat runs
write a message for you, they use {{brand.name}} where the name stands
as it is: an SMS that opens with "{{brand.name}}:", a sign-off, the e-mail
footer. In Email Studio's editor you see the token; every preview (Email
Studio's, the chat's e-mail card and canvas, the journey canvas and its
steps, the Library picker), a test and the real message show your brand's
name. Where Czech or Polish would change the
name's ending ("v Kavárně Luna" for Kavárna Luna), the writer types the
name out in the right form instead.
Czech and Slovak names
Czech addresses people in the vocative: Petr becomes Petře, Jana becomes Jano, Novák becomes Nováku. Some brands also speak familiarly: Jan is Honza, and you call him Honzo. Tokens for both, computed from the customer's name at send time:
{{p.salutation}}– the greeting your brand chose under Brand profile → Market: formal ("Dobrý den, Petře") or familiar ("Ahoj Honzo"). One token in the template, the brand decides the register. The examples beside that setting are in your brand's content language – "Dobrý deň, Peter" and "Ahoj Peťo" for Slovak, "Hi Peter" and "Hey Peter" for English – and change as soon as you pick another language. A language without a greeting of its own greets in English until you write yours in the Greeting field. If you write your own Czech or Slovak greeting, the line under it also shows what a woman gets ("A woman gets: Milý Evo"), so a word that does not change with her is easy to spot.{{p.first_name_vocative}},{{p.last_name_vocative}}– the address forms in your brand's register: on a familiar brand the first name comes out as Honzo or Katko, on a formal one as Petře or Kateřino. Jan and Josef are always Honzo and Pepo – nobody says "Jane".{{p.first_name_formal_vocative}}is the formal form whatever the register;{{p.first_name_familiar}}and{{p.first_name_familiar_vocative}}the familiar form and its address form, first names only.{{p.dear}} {{p.title}} {{p.last_name_vocative}}– "Vážený pane Nováku" / "Vážená paní Nováková".{{p.by_gender:dostal/dostala}}– the masculine form, then the feminine, chosen by the customer's gender.
When the rules are not sure of a name it is used as written, and the name appears under Names to look at in Brand profile, where you give the form once. Slovak brands address in the nominative; other languages get the plain name from the same tokens, so one template serves every brand.
Four 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.
- Your customers' data is never read as code. A value goes into the
message exactly as it is stored: a customer whose name field holds
{{ … }}or{% … %}gets those characters in the body of an e-mail, an SMS, a push or a website message, and the rest of your message renders as you wrote it. In an e-mail's subject line and plain-text version, a value that spells a brand placeholder such as{{brand.name}}can still show your brand's name. In the body of an e-mail, every value, filtered or not, is written so the inbox shows it as typed, even with &, <, >, " or ' in it.