Setup
- Go to Integrations in your osforms dashboard
- Click Connect next to Webhook
- Enter your endpoint URL (must be HTTPS)
- Copy the signing secret and store it securely — it’s shown once
- Click Save
osforms sends a POST request with Content-Type: application/json:
data keys match the field IDs set in your form schema.
Verifying signatures
Every request includes an X-osforms-Signature-256 header:
The signature is computed as HMAC-SHA256(requestBody, signingSecret) where requestBody is the raw JSON string.
Verify it in your endpoint:
Always verify the signature before processing a webhook. Use timingSafeEqual
to prevent timing attacks.
Retry behavior
Webhooks do not automatically retry on failure. If your endpoint returns a non-2xx status or times out:
- The delivery is marked as failed in the integration log
- You receive an in-app notification and email alert
- You can view the error in Submissions → View Logs
Timeout
Webhook requests time out after 30 seconds. Ensure your endpoint responds within this window.
Testing
Click Send Test in the integration settings to send a sample payload to your endpoint and verify your signature verification logic.