Email Templates
Email Templates are reusable email bodies stored in your workspace. Write them in MJML, HTML, or Markdown, render them with Liquid (including {% include %} of another template by key), and optionally define an input schema for structured context.
Use them when several workflows need the same branded message, or when you want one template composed from shared partials. They are consumed only through the workflow Render Template block.
When to use
- Share branded MJML/HTML across workflows via Render Template
- Include a partial template by key with
{% include "template_key" %} - Preview a template against sample data before you wire it into a workflow
Create an email template
Open Templates → Email Templates and choose Add Template.
- Set Name, optional Description, and Key.
- Create — the editor opens.
- Choose MJML, HTML, or Markdown, write the body, set Preview data and Input schema as needed, then Save.
| Setting | What it does |
|---|---|
| Name / Description | How the template appears in lists |
| Key | Stable id for includes and Render Template lookup. Set at create only: max 16 characters, letters/digits/_/-, must start with a letter or _ |
| Format | mjml (preferred for structured email), html, or md |
| Input schema | Expected context when rendering; can sync from Liquid variables in the body |
| Preview data | Sample values for the live preview only |
Write Liquid
Templates support Liquid expressions and tags — for example {{ args.name }}, {% if %}, {% for %}, and filters. Reference workspace secrets and config with env.* as described in Variables.
Include another workspace email template by key:
{% include "welcome_header" %}
Use in workflows
Add a Render Template block and select the email template by key. The runtime evaluates Liquid against the provided context and returns text.
Limits
- Key is fixed after create and must be unique in the workspace.
Where email templates are used
| Place | How |
|---|---|
| Workflows | Render Template block (lookup by key) |