Email templates
Writing reusable templates with merge fields, previewing them, and rolling back changes
Templates live in one place — Intelligence → Email → Templates — and are reused across every job and pipeline stage in your organization. Write the interview invitation once, attach it to twelve pipelines.
Creating and editing templates requires the owner, admin, or hiring manager role.
Creating a template
Click New template and fill in:
| Field | Required | What it's for |
|---|---|---|
| Name | Yes | How you'll recognize it in the template picker. Internal only — candidates never see it. |
| Category | No | Screening, Interview, Offer, Rejection, Follow-up, or Custom. Filters the list once you have a few dozen. |
| Description | No | A line of context for teammates. Also internal. |
| Subject | Yes | The email subject. Accepts merge fields. |
| HTML body | Yes | The email itself, as HTML. Accepts merge fields. |
| Plain-text body | No | Leave blank when creating the template and HireFlow generates it from your HTML. |
Use the search box and the category filter to find templates later; both work on the name and description.
Plain text keeps itself in sync, unless you write your own
Edit the HTML and leave the plain-text field alone, and HireFlow re-derives the plain text from your new HTML. Fill the plain-text field in yourself and it's never overwritten — a hand-written version always wins.
The body field is HTML, not a rich-text editor
There is no visual formatting toolbar — the body is raw HTML in a monospace field. For anything more elaborate than paragraphs and links, design the email elsewhere and paste the finished HTML in. A live Preview pane sits beside the field so you can see the rendered result as you type.
Merge fields
Merge fields personalize an email at send time. Write them as {{ candidate.firstName }},
and HireFlow substitutes the real value for each candidate.
Click Insert variable next to the subject or body to browse the full list with example values, or type the field yourself. These are all of them:
| Field | Example |
|---|---|
{{ candidate.name }} | Jane Doe |
{{ candidate.firstName }} | Jane |
{{ candidate.email }} | jane@example.com |
{{ candidate.currentTitle }} | Senior Engineer |
{{ candidate.currentCompany }} | Acme Corp |
{{ candidate.location }} | Berlin, Germany |
{{ position.title }} | Staff Backend Engineer |
{{ position.department }} | Engineering |
{{ position.location }} | Remote (EU) |
{{ organization.name }} | HireFlow Inc. |
{{ pipeline.step }} | Technical Interview |
{{ sender.name }} | Alex Recruiter |
{{ sender.email }} | alex@hireflow.app |
The examples in that table are literally what a test send substitutes, so you can match them
against what lands in your inbox. On a real send, sender.name and sender.email resolve to
whoever moved the candidate into the stage, falling back to your configured sender identity.
A misspelled field disappears silently
Anything HireFlow doesn't recognize is replaced with nothing at all — no error, no
warning, no leftover braces. {{ candidate.firstname }} (lowercase n) turns
"Hi Jane," into "Hi ," and the email still sends. Insert fields from the picker rather
than typing them, and always run a test send before going live.
A field with no value behaves the same way. A candidate imported without a current employer
renders {{ candidate.currentCompany }} as an empty string, so avoid sentences that
collapse into nonsense when one value is missing.
Testing a template
Click Send test on any template, enter an address, and send. HireFlow fills every merge field with the example values above and delivers a real email through your Resend connection.
This is the fastest way to confirm your whole email setup works, and the only way to see how your HTML renders in an actual inbox rather than the preview pane.
Test sends need a working connection too
A test send goes through the same path as a real one. If Resend isn't connected or your sending domain isn't verified, it won't arrive — see Setting up Resend.
Test sends are rate-limited to 5 per minute per person and 20 per minute across the organization, because each one dispatches a real email through your Resend account. Iterating on a template quickly is the one time you'll notice.
Version history
Every save snapshots the template. Click Versions to see the list, click any entry to preview that snapshot, and click Rollback to restore it.
Rolling back doesn't erase anything: it restores the old content and saves it as a new version, so the history stays complete and you can always roll forward again.
Deleting a template deletes its versions with it, and cannot be undone.
Where templates get used
A template does nothing until something sends it. Attach it to a pipeline stage as an automation, or send it to one candidate on demand — both are covered in Email automations.