Integrations
Webhooks
Send form submissions to any URL via webhooks.
The Webhook integration sends form submission data as JSON to any URL. It supports Standard Webhooks signing for payload verification.
Features
- POST form data as JSON to any endpoint
- Standard Webhooks signature verification
- URL validation
- Configurable HTTP method, headers, and SSL verification
- Checkbox-based field selection and metadata fields
Setup
No environment variables needed. Webhooks are configured per-form through the integration UI.
Payload Format
Each webhook sends a structured JSON payload:
{
"type": "submission_created",
"timestamp": "2025-01-15T10:30:00+00:00",
"data": {
"form": {
"id": "01HX...",
"name": "Contact Form",
"key": "contact-form"
},
"submission": {
"id": "01HX...",
"fields": {
"name": "Jane Doe",
"email": "jane@example.com"
}
},
"metadata": {
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"submitted_at": "2025-01-15T10:30:00+00:00"
}
}
}
The metadata key is only included if metadata fields are selected in the integration config. The fields key only contains the fields selected in the "Fields to Send" checkbox list.
Signature Verification
Webhooks are signed using the Standard Webhooks specification. The receiving server can verify the signature using the webhook-id, webhook-timestamp, and webhook-signature headers.
Receiving server
$payload = file_get_contents('php://input');
$headers = getallheaders();
$webhookId = $headers['webhook-id'];
$timestamp = $headers['webhook-timestamp'];
$signature = $headers['webhook-signature'];
// Verify using Standard Webhooks library
$wh = new \StandardWebhooks\Webhook($secret);
$wh->verify($payload, [
'webhook-id' => $webhookId,
'webhook-timestamp' => $timestamp,
'webhook-signature' => $signature,
]);
Configuration Options
| Option | Default | Description |
|---|---|---|
| URL | -- | Target webhook URL (required) |
| HTTP Method | POST | HTTP method (POST, PUT, or PATCH) |
| Content Type | application/json | Request content type |
| Sign Requests | true | Enable Standard Webhooks HMAC-SHA256 signing |
| Webhook Secret | Auto-generated | Secret used for request signing |
| Verify SSL | true | Verify SSL certificates (disable only for testing) |
| Timeout | 30 | Request timeout in seconds |
| Custom Headers | [] | Additional HTTP headers to include |
| Selected Fields | [] | Form field codes to include (empty = all fields) |
| Selected Metadata | [] | Metadata keys to include (submission_id, submitted_at, ip, user_agent) |