Email notification settings
To manage your form's email notification settings, open its Settings section and expand Notifications under Emails.
Recipients
- You can enable/disable email notifications for your workspace's team members.
- You can add guests to send email notifications to people outside your workspace/organization.
A guest receives a confirmation email first, and nothing else until they accept it. The recipient list shows a guest who has not accepted yet as pending.

Threading
Email threading is on by default, so your mail client groups a form's notifications into one conversation.
Turn it off to receive each submission as a separate email.
Custom templates
You can customize the notification email template of a form.
Templates are designed in a visual editor, built in partnership with Postcraft.
A custom template goes out exactly as you designed it to every recipient, team member or guest. Formspark adds no footer and no unsubscribe link, so when a guest asks to stop receiving it, remove them from the recipients.
Every custom template passes a content check. If the check pauses yours, the form sends no notifications and its settings say so. Contact support to have it reviewed, or press Revert to default to go back to the default template.
Dynamic values in a template use the Handlebars templating language.
A template can also set the email's subject line, with the same dynamic values as the body. An _email.subject field in the submission takes precedence over it.
Custom Handlebars helpers
The following custom Handlebars helpers have been registered for you:
| Name | Description | Example usage |
|---|---|---|
capitalize | Capitalizes the first character of a string and lowercases the rest. | {{capitalize "hello world"}} → Hello world |
nl2br | Converts newlines in a string into <br> HTML tags, so line breaks display correctly in HTML. | {{nl2br user.comment}} → Line one<br>Line two |
pluralize | Returns the singular or plural form of a word based on a count. Optionally accepts a custom plural form. | {{pluralize 1 "item"}} → 1 item{{pluralize 3 "item"}} → 3 items{{pluralize 2 "child" "children"}} → 2 children |
sanitizeUrl | Returns the given URL only if it uses a safe scheme (http(s), mailto, tel, a relative path, or an anchor); otherwise returns #. Use it around links built from submitted data so an unsafe value can't render a clickable exploit. | {{sanitizeUrl viewLink}} → https://example.com (or # if unsafe) |
stringify | Serializes a value to a JSON string. Supports optional indentation for pretty-printing. | {{stringify data}} → {"name":"Alice","age":30}{{stringify data indent=2}} → pretty-printed JSON |
switch / case / default | Block helper for matching a value against multiple cases. Renders the content of the matching case block, or the default block if no case matches. | {{#switch type}}{{#case "a"}}A{{/case}}{{#case "b"}}B{{/case}}{{#default}}Other{{/default}}{{/switch}} |
titleCase | Capitalizes the first letter of every word in a string. | {{titleCase "hello world from the team"}} → Hello World From The Team |