Template Editor
Write and preview email templates in real time. The rendered HTML is stored and used at send time.
The template editor at /templates lets you write and preview email templates in
real time. The rendered HTML is stored and used at send time.
Variables
Use {{variable_name}} anywhere in the subject or HTML body to create a
variable. The editor detects them automatically and shows a panel where you can
enter sample values for the preview. At send time, pass the actual values via the
variables field.
Variable values are HTML-escaped when substituted, so they always render as text — a value like <b>hi</b> shows literally rather than as bold. Any HTML structure (links, formatting) must live
in the template body, not in the variable values you pass.
<h1>Hi {{first_name}}!</h1>
<p>Your order <strong>#{{order_id}}</strong> has shipped.</p>
<p><a href="{{tracking_url}}">Track your package</a></p>curl -X POST https://api.eusend.dev/emails \
-H "Authorization: Bearer eu_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"from": "orders@acme.com",
"to": "alice@example.com",
"template_id": "550e8400-e29b-41d4-a716-446655440000",
"variables": {
"first_name": "Alice",
"order_id": "1234",
"tracking_url": "https://track.example.com/1234"
}
}'Templates are rendered once when saved (not at send time), so the preview you see in the editor is exactly what will be sent. Variable substitution is the only step that happens per send.
Editor layout
The canvas is a visual editor — you write the email as it will look, with a style inspector alongside it for the block you have selected. Two mode tabs sit above it:
| Mode | What it shows |
|---|---|
| Write | The visual editor. Type {{ to insert a variable. |
| HTML | The underlying HTML, editable directly for anything the visual editor doesn't cover. |
Below the canvas, Variables lists every {{placeholder}} detected in the
template, Preview with sample data gives you an input per variable and renders
the result live, and Use in API shows the POST /emails body for sending this
template.
Saving stores the rendered HTML plus the editor document, so reopening a template gives you back the visual editor rather than raw markup. Editing the HTML mode directly and saving drops the stored editor document — the HTML you wrote stays authoritative.