WebHooks are server to server communication connections that, when added to your Form, allow you to send collected Form data to a third party service through a URL. Adding a WebHook is an excellent option when you want to send your Form data to an integration/program that Formstack does not support in-App. To use this feature, you will first need to create or obtain a valid WebHook URL address to make a connection. If you are sending your Form data to a Third Party Integration, then your WebHook may be found in your API or Settings Page.
Adding your WebHook
To add a WebHook to your Form, navigate to the Form Settings tab > Emails & Actions > Advance Settings > Add Webhook; alternatively you can edit an existing one. Choose the " Send Data to an External URL (WebHook)" Action option and enter your WebHook URL in the designated URL Address field.
Optional WebHook Settings
"Post using field IDs instead of field names"
Selecting this checkbox will replace the field labels on your Form with the Field IDs in the data that is passed to your endpoint.
"Post with sub-field names"
Selecting this option will pass the submitted data to your endpoint with sub-field names. Example: for a Name field instead of "Name: Jane Smith" it would look like " Name: first = Jane last = Smith"
"Post with field type"
Selecting this option will pass the field type along with the data submitted for each field. Example: a Name Field's data may appear like: "Name: first = Jane last = Smith field_type = name"
This option allows you to choose between URL Encoded Form Data, or JSON, depending on what your needs are for the endpoint you are targeting with your Webhook data from your Form.
Optionally, you may choose to enter a WebHook Shared Secret or an HMAC Key. These are additional values you can send to your WebHook endpoint which verifies that the data is from a trusted source if your endpoint requires this.
Just like all redirects, you can apply Routing Logic to your WebHook to filter which submissions are sent to the WebHook based on how the Form is answered. To add Routing Logic to your WebHook, simply click the "Routing Logic" link and create the routing filter.
If your endpoint is not receiving data when your Form is submitted, here are a few things to check:
- Find out if your endpoint requires a Shared Secret to be entered into the settings. You may need to reach out to Server Administrators or Support for whatever service you are sending the data to.
- Check to see if your endpoint is capable of accepting either URL Encoded Form Data or JSON and ensure that the proper option is selected in the WebHook Settings
- See if it's possible to whitelist our IP Address for these outgoing communications: 22.214.171.124
- Check status.formstack.com to see if there are any service interruptions with WebHooks
- Find our Developer documentation at https://developers.formstack.com/v2.0/docs/webhook-setup
If you are still not receiving data to your endpoint upon Form Submission, either the data is not formatted in a way that can be accepted by your endpoint, or your endpoint is not configured to receive HTTP Requests.