Which one to use
A template built in the designer and one managed through the API are the same object, and it is content either way. The difference is where your team would rather work.Design a template
Build it in the visual editor: drag-and-drop blocks, per-channel content, test-data previews, and version history.Best when PMs, designers, and developers work on content together.
Template API
Manage it as JSON: create, update, and publish from your codebase, review changes in Git, and test payloads in CI.Best when templates live in code, or you would rather not click through a UI.
How it works
Beyond content, a template carries the settings that shape a send:- Channels it can go out on
- Reusable routing, primary and fallback
- A Brand for consistent styling
- Conditional logic to show or hide content by data or preference
- Variables that personalize each recipient’s version
- Translations so each recipient gets their language
Draft, publish, and version history
Editing a template updates its draft. Publishing snapshots the draft as the active version. A normal send renders the published version, so recipients never see an unfinished edit. Version history lets you compare versions side by side and roll back. A message’s log records the version it used, so you can trace a rendering change to a publish. covers reviewing a draft before you publish it.How a template is performing
Sends, deliveries, opens, clicks, and errors are reported per template, split by channel and provider. shows them in the Courier app, and returns the same series over the API for your own dashboards.Send it by ID or alias
Both paths end the same way. Pass the Template ID and the data its variables need to :template field accepts either form:
An alias is the readable name your code keeps while the template behind it changes. You assign one in the template’s settings, under Alias, not over the API. It then sits exactly where the ID sat, and nothing else about the request changes.
Three rules govern them:
- A template can have many aliases. Old and new names can both resolve during a rename.
- An alias points at one template at a time. Moving it to another template repoints every send that uses that name.
- An alias works anywhere the ID works. Nothing else in the request changes.
FAQ
Can I manage a template in code and in the designer?
Can I manage a template in code and in the designer?
Both operate on the same template. One team can edit in the designer while another manages it through the API. Coordinate publishes so a draft edit isn’t overwritten.
What is the difference between a draft and a published template?
What is the difference between a draft and a published template?
Edits go to the draft. Publishing makes the draft the active version. Normal sends render the published version.
Can I reference a template by a stable name?
Can I reference a template by a stable name?
Assign an alias and pass it as
template on the send, so your code references a human-readable name instead of the generated ID.