Custom Email Templates are only available on Growth and Premium plans.
Dynamic Tags
Use{{fieldName}} to insert the value of any submitted field directly into your template. If your form contains an input named telephone, write {{telephone}} anywhere in your HTML and formcarry will replace that tag with the value the respondent submitted.
name attribute.
Conditional Blocks
Not every field is always filled in. Use{{#fieldName}}...{{/fieldName}} to render a block of content only when that field has a value. This keeps your email clean when optional fields are left empty.
email field is not empty. The attachment line outside a conditional block is always rendered, regardless of whether it has a value.
Fallback Values
When you want to display a placeholder for an empty or missing field instead of hiding it, use the{{#fallback}} syntax:
telephone is blank:
telephone has a value, formcarry renders that value. If the field is empty or was not submitted, formcarry renders Not provided instead.
Iterating Fields
Use{{#fields}} to loop over every submitted field and render each key–value pair. Use {{#attachments}} to do the same for any uploaded files.
You can only iterate
fields and attachments. Other custom loops are not supported.Full Example
Below is a complete custom HTML template for an event registration confirmation email. The form collectsfirst_name, last_name, email, and the optional fields telephone and special_requirements.
telephone and special_requirements are wrapped in conditional blocks so they only appear when the respondent actually provided them, with fallback values ready if they did not.
Troubleshooting
formcarry’s template engine requires every opened block to have a matching closing tag:- Open the preview panel — it always uses your most recent submission as sample data and will display a syntax-error warning if it detects unclosed blocks.
- Check every
{{#fieldName}}in your template for a corresponding{{/fieldName}}. - If template tags still appear unresolved after fixing the syntax, contact the formcarry team via live chat.