POST request with a JSON payload to your registered URL.
Register a webhook
POST /webhooks
Registers a new webhook endpoint.
Body parameters
The HTTPS URL that FormFlows.ai will send event payloads to. Must be publicly accessible.
Array of event types to subscribe to. Supported events:
submission.created— A new submission is received on a form.submission.updated— An existing submission is modified.form.published— A form’s status changes topublished.
Restrict this webhook to events from a specific form. Omit to receive events from all forms in your account.
A signing secret you choose. If provided, FormFlows.ai signs every payload with HMAC-SHA256 using this secret and includes the signature in the
X-FormFlows-Signature header. Use this to verify that payloads genuinely come from FormFlows.ai.Response
Unique webhook identifier, prefixed with
whk_.The registered endpoint URL.
List of event types this webhook is subscribed to.
The form this webhook is scoped to.
null if it receives events from all forms.ISO 8601 creation timestamp.
The
secret value you provide is never returned in API responses. The secret_set boolean confirms whether a signing secret is configured.List webhooks
GET /webhooks
Returns all registered webhooks in your account.
Query parameters
Number of webhooks to return per page. Maximum
100.Pagination cursor from a previous response’s
next_cursor.Delete a webhook
DELETE /webhooks/{id}
Removes a registered webhook. FormFlows.ai will stop sending events to that endpoint immediately.
Path parameters
The webhook ID to delete, e.g.
whk_6mNoP8qRsT.Response
Returns a204 No Content response on success.
Webhook payload format
When a subscribed event occurs, FormFlows.ai sends aPOST request to your URL with the following JSON body:
Payload fields
The event type that fired. One of
submission.created, submission.updated, or form.published.The ID of the form that the event is associated with.
ISO 8601 timestamp of when the event occurred.
Event-specific data.
Signature verification
If you set asecret when registering your webhook, every request includes an X-FormFlows-Signature header:
sha256= followed by the hex-encoded HMAC-SHA256 of the raw request body, computed using your secret as the key. Always verify this signature before processing a payload to confirm it came from FormFlows.ai.
Retry policy
FormFlows.ai considers a delivery successful when your endpoint returns any2xx HTTP status code within 10 seconds. If the request times out or returns a non-2xx status, FormFlows.ai retries the delivery with exponential backoff:
| Attempt | Delay |
|---|---|
| 1 (initial) | Immediate |
| 2 | 30 seconds |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
