⭐ Available on the following plans: Pro & Agency (limited), Business
👀 Not sure which plan you're on? Check your subscription here.
A webhook is a way for your Heyflow to send information instantly to another service or application when someone submits a response. Think of it as an automatic message that notifies another system about the new submission, allowing you to process the data in real-time. Heyflow allows creating custom webhooks that send every submission straight to any URL endpoint that receives the response data in a JSON format.
In the business plan, there are numerous customization options available to tailor the webhook to your requirements.
This article covers:
Creating and testing a new webhook
Navigate to the Integrate tab and select Hooks.
Provide a valid URL and assign a name to the webhook for easier identification.
Click Test to send an example payload to the specified URL.
Test Webhook Payload
{
flowID: <YourFlowID>,
id: 'demo-response-id', // Heyflow UUID for the response
createdAt: new Date(), // datetime of the test trigger,
fields: {
'Demo Field 1': 'Some value', // 'Demo Field 1' is your system label,
'Demo Field 2': 'Some other value',
},
}
After a successful test (HTTP status code 200), activate your webhook. From now on, each new submission will be sent to the specified URL.
Simple Webhook Payload
This is the standard format sent with each submission:
{
"flowID": "<YourFlowID>",
"id": "<HeyflowResponseUUID>",
"createdAt": "2025-04-24T11:18:55Z",
"fields": {
"System Label": "Value"
}
}
❗ Please note: To ensure that download links are full file URLs that can be accessed programmatically, enable Public Link access for the flow in the settings.
💡 If you want to receive more detailed information about each submission, you can use our Extended Payloads feature in the Business plan.
Customizing Your Webhook (Business Plan)
If you're on the Business plan, you have additional options to tailor your webhook:
HTTP Methods: Choose between POST, PUT, GET, DELETE or OPTIONS to match your endpoint's expected request type.
Custom Headers: Add specific information required by the receiving system.
URL Parameters: Include fixed details like API keys in the webhook URL.
Basic Authentication: Secure your webhook with a username and password.
Extended Payloads: Receive more detailed information about each submission.
🔎 Learn more about customization options here.
Tracking URL parameters
If you want to pass URL/UTM parameters from your flow to your webhook, you need to set up a hidden input field to capture the data. Once set up, you can map these input fields to corresponding fields in your response handler of choice.
The UTM parameters will then be automatically passed along with each response—without your visitors noticing. 🚀
Error Status Codes
As soon as we detect a problem with your webhook integration, we will send you an email with the flow ID and the error status code (HTTP status code) The message will look something like this: Error: Request failed with status code 503.
In this example, you are receiving an error because the server cannot be reached and is temporarily unavailable.
We receive these error codes from the URLs or servers that you use in the integration. We therefore only forward the error.
🔎 For an overview of the error codes, take a look here.