Form builders form response notifications
Parse form response emails
Most form builders can email you each response. Point that notification at a mailhooks.cc address and this layout reads the answers by their labels, so the response reaches a webhook, a sheet or a chat as fields.
Use this layoutFree plan included: 2 layouts per endpoint.
- From
- Forms <notifications@forms.example>
- Subject
- New response: Contact us
You have a new response to Contact us. Name: Jane Doe Email: jane@example.com Company: Acme Message: Could you send a quote for 20 seats?
{
"parsed": {
"status": "matched",
"layout": {
"id": "form-responses",
"name": "Form responses"
},
"fields": {
"form": "Contact us",
"name": "Jane Doe",
"email": "jane@example.com",
"company": "Acme",
"message": "Could you send a quote for 20 seats?"
},
"lineItems": []
}
}The layout
It matches the email by its subject, reads each field with an RE2 pattern. Edit any of it in the endpoint's settings, where the preview tries it on an email you captured as you type.
{
"id": "form-responses",
"name": "Form responses",
"match": {
"conditions": [
{
"field": "email",
"name": "subject",
"op": "contains",
"value": "response"
}
]
},
"fields": [
{
"name": "form",
"from": "subject",
"pattern": "response:[ \\t]*([^\\r\\n]+)"
},
{
"name": "name",
"from": "text",
"pattern": "(?m)^Name:[ \\t]*([^\\r\\n]+)"
},
{
"name": "email",
"from": "text",
"pattern": "(?m)^Email:\\s*(\\S+)"
},
{
"name": "company",
"from": "text",
"pattern": "(?m)^Company:[ \\t]*([^\\r\\n]+)"
},
{
"name": "message",
"from": "text",
"pattern": "(?m)^Message:[ \\t]*([^\\r\\n]+)"
}
]
}