Custom email templates

On Pro and Agency plans you can replace the default submission-notification email with your own subject line and HTML body, personalized with template variables. This is a Pro+ feature.

Where to set it

Open a form in the dashboard and go to its Template tab. There you can set a custom email subject and a custom HTML body for the notification email Formcrest sends you (and your other recipients) when the form is submitted. You may also supply an optional plain-text body; if you leave it blank, the plain-text part is auto-generated from your HTML so every email is still a proper multipart message.

This affects the notification you receive. To control who receives it and how often, see Notifications; for the rest of a form's settings, see Configuration. Custom templates are available on the Pro and Agency plans — see Plans & top-ups.

Template variables

Both the subject and the body support a small set of {{variable}} tokens. Each token is replaced with the matching value at send time. Unknown variables collapse to an empty string — there are no loops, conditionals, or expressions.

VariableReplaced with
{{form.name}}The form's name, as set in its configuration.
{{form.id}}The form's unique identifier.
{{submission.<field>}}The value of any submitted field. Replace <field> with the field name, e.g. {{submission.email}} or {{submission.message}}.
{{submitted_at}}The timestamp the submission was received.
{{submitter_ip}}The submitter's IP address, if available.
{{submitter_country}}The submitter's country, if available.
{{submitter_user_agent}}The submitter's browser user-agent string, if available.

Example subject

Reference any variable directly in the subject line:

New {{form.name}} message from {{submission.name}}

Example HTML body

The body is HTML. Use the same variables anywhere in the markup, including inside attributes:

<h2>New submission to {{form.name}}</h2>
<p><strong>From:</strong> {{submission.name}} &lt;{{submission.email}}&gt;</p>
<p><strong>Message:</strong></p>
<blockquote style="margin:0;padding-left:12px;border-left:3px solid #ddd;">
  {{submission.message}}
</blockquote>
<hr />
<p style="color:#888;font-size:12px;">
  Received {{submitted_at}} from {{submitter_country}} ({{submitter_ip}}).<br />
  Form ID: {{form.id}}
</p>

HTML is sanitized before every send

Your HTML is sanitized on the server before each email goes out, so a template can never deliver active content. The sanitizer strips:

  • <script> tags (and their contents),
  • inline event handlers — any on* attribute such as onclick,
  • <iframe> tags, and
  • javascript: URLs.

Safe formatting tags — headings, paragraphs, lists, tables, links, images, blockquotes, and so on — are kept, and inline style attributes are preserved (passed through a CSS allowlist). Because sanitization runs on every send, editing your template never lets unsafe markup slip through.

Live preview

The template editor includes a live preview so you can see your subject and rendered body as you type, with sample values filled in for the variables. Use it to confirm your layout and variable placement before saving. The preview reflects the same sanitization applied at send time, so what you see is what recipients get.