One email template, reused from the receipt to the broadcast

Repeated product email — receipts, resets, welcomes — tends to live as HTML strings scattered through your codebase. Store each one as a template instead: author it in code or the dashboard, pass variables at send time, and call it from REST, the Node SDK, batch jobs, and automation steps.

  1. 1
    Create the templateStore a reusable subject and body, marking the parts that change with tokens like {{FIRST_NAME}}.
  2. 2
    Preview and editRender it in the dashboard editor with sample variables to see the real email.
  3. 3
    Send by idPass templateId and variables to the send endpoint instead of the full body.
  4. 4
    Override when neededOverride the stored subject, html, or text at send time when one message needs to differ.

Follow the work from start to outcome.

  1. 1

    Create the template

    Store a reusable subject and body, marking the parts that change with tokens like {{FIRST_NAME}}.

  2. 2

    Preview and edit

    Render it in the dashboard editor with sample variables to see the real email.

  3. 3

    Send by id

    Pass templateId and variables to the send endpoint instead of the full body.

  4. 4

    Override when needed

    Override the stored subject, html, or text at send time when one message needs to differ.

Catch a template mistake before your customer does.

Render a stored template with sample variables in the dashboard before anything goes out. What you preview is what sends: a {{TOKEN}} you forgot to fill stays visible instead of collapsing into blank copy.

Subject

The whole message in one place

Subject, HTML, and text live in one template, so a review covers the entire email at once.

Variables

Missing values stay visible

An unfilled {{TOKEN}} renders as itself, so a gap is obvious the moment you open the preview.

Starters

Skip the blank page

Install editable welcome, reset, and receipt starters instead of hand-writing security email from scratch.

Reuse

One place to fix

Transactional sends, batch jobs, and automation steps all resolve to the same stored template, so a correction can't miss a copy pasted in code.

The controls around the path.

Code or the dashboard

Author template HTML with the React Email package in your repo, or edit it in the dashboard. Same stored template either way.

Subject, HTML, and text

Each template stores a subject, HTML, and optional plain text, then fills your variables at send time.

Starter templates

New workspaces can install editable welcome, password reset, and receipt starters.

One template, three send paths

The same stored template backs your transactional sends, batch jobs, and automation steps.

Every message traces back to one template

Receipts, resets, alerts, and lifecycle email each resolve to one stored template, so a change lands everywhere it is used. Fix the wording in the dashboard and the next send renders it — no code change to correct a typo.

Read the implementation.

Questions before you ship.

What happens if a variable is missing?

The {{TOKEN}} stays visible in the sent email instead of rendering as empty text, so you catch the gap before the recipient does.

Can I use templates in batch sends?

Yes. Batch sends can reuse a template and pass variables per message.

Can I keep my templates in code?

Yes. Render the HTML with the React Email package or build it in the dashboard editor — either source mode produces the template you send by id.

Test it. Then send for real.

Simulator outcomes are free. Move to a verified domain when the path is ready.

Create your account Compare plans