HireFlow Docs
Email

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:

FieldRequiredWhat it's for
NameYesHow you'll recognize it in the template picker. Internal only — candidates never see it.
CategoryNoScreening, Interview, Offer, Rejection, Follow-up, or Custom. Filters the list once you have a few dozen.
DescriptionNoA line of context for teammates. Also internal.
SubjectYesThe email subject. Accepts merge fields.
HTML bodyYesThe email itself, as HTML. Accepts merge fields.
Plain-text bodyNoLeave 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:

FieldExample
{{ 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.

On this page