About webhooks
Add a webhook URL to the request in order to receive information after the call.
Setting Up a Webhook
- Specify the Webhook URL: In your API request body, include the
external_webhook_url
key with the URL of your webhook receiver. - Test with the webhook: For development and testing purposes, you can use webhook.site to simulate receiving webhook data.
API Request Example
Include the following key-value pair in your API request body:
Webhook Response Example
Upon completion of the call, the webhook URL will receive a response like the following:
Understanding the Call Object States
The call object in the webhook response contains a status field which can have various values, each indicating a different state of the phone call. Below is a table explaining these statuses:
End Call Reason
This end_call_reason parameter provides insight into the reason why a call ended:
Webhook Security (Signature Validation)
Why Signature Validation is Critical
While TLS (HTTPS) protects against eavesdropping and tampering during transit, it does not guarantee that the request is genuinely coming from Synthflow. Without signature validation, an attacker who discovers or guesses your webhook URL can send forged payloads. These spoofed calls could trigger workflows, write bad data, or corrupt your system. Signature validation ensures authenticity (the sender is Synthflow) and integrity (the payload hasn’t been altered).
How do I secure my webhooks?
Go to Settings > Security > Webhooks and generate a secret key. Synthflow uses this key to generate a signature that is included in the webhook HTTP header for every call.
What is webhook signature validation for, and how critical is it?
Webhook signature validation verifies that the HTTP request originates from Synthflow. It prevents attackers who discover your webhook URL from sending forged payloads to your endpoint.
What are the risks if there is no secret key?
An attacker can send fake call payloads to your webhook, potentially compromising your data. For example, if your webhook is connected to a CRM, fake payloads could create fraudulent appointments with your customers.
How is signature validation used during a call?
For both inbound and outbound calls, Synthflow includes a signature in an HTTP header, and the call_id
field is always part of the signed payload. The signature header is present on inbound webhooks and post-call webhooks.