Templates & personalization
A template is a reusable message you personalize per recipient. Drop in variables like {{ contact.first_name }}, fall back to a default when a field is empty, and show or repeat blocks with conditions and loops — across the subject, preheader, sender and body alike.
What you'll need
- A workspace with at least one contact
- Contact fields or event properties to personalize on
What a template contains
Every template stores the full message, not just the body — so personalization works everywhere.
- subject and preheader — the inbox preview line.
- from_name, from_email and reply_to — who it appears to come from.
- html (or mjml) and a text part for plain-text clients.
- Version history — every save is a new version you can preview and revert to.
Insert variables
Reference any contact field or event property with double braces and a dot-path. Unknown fields render empty unless you set a default.
- | default: "…" — fallback when the value is missing.
- | upcase / | downcase — change case.
- | raw — output trusted HTML without escaping.
Hi {{ contact.first_name | default: "there" }},
Your plan: {{ contact.plan | upcase }}
City: {{ contact.address.city }}Conditions and loops
Show a block only when a condition holds, or repeat a block over a list (e.g. line items passed in as variables).
{% if contact.plan == "pro" %}
Thanks for being on Pro.
{% else %}
Upgrade any time.
{% endif %}
{% for item in order.items %}
- {{ item.name }} × {{ item.qty }}
{% endfor %}Preview and ship
- 1
Open Templates → your template
Edit the subject, sender and body. Saving creates a new version automatically.
- 2
Preview with real data
Render the template against a sample contact to see exactly how variables, defaults and conditions resolve before you send.
- 3
Reuse it
Select the template in a campaign or automation, or pass its template_id with variables to POST /v1/messages.
Frequently asked questions
What happens if a variable is missing?
It renders as empty. Add | default: "…" to substitute a fallback so you never send “Hi ,”.
Can I personalize the subject line?
Yes — variables, defaults and conditions work in the subject and preheader, not just the body.
Can I revert a bad edit?
Yes. Every save is versioned; open the version history and restore any earlier version.
Start sending in minutes
Create a free account, connect your domain and reach your audience across every channel — no credit card needed.
Free plan forever · No credit card required · Set up in minutes