Webhooks Guide
Build complex, logic-driven forms without code
Table of Contents
Setting Up Your Webhook Endpoint
Connect FormFlow to your existing CRM, Slack workspace, or custom API by defining a secure HTTPS endpoint. When a respondent submits a form, FormFlow instantly POSTs a structured JSON payload to your server.
Navigate to your form dashboard, click Integrations in the left sidebar, and select Webhooks. Enter your endpoint URL (e.g., https://api.acmecorp.io/v1/leads). Toggle Enable Retry Logic to automatically retry failed deliveries up to 5 times with exponential backoff. You can also attach a custom authorization header using the X-FormFlow-Signature field to verify incoming requests.
Step 1: Define Trigger
Choose whether the webhook fires on form submission, payment completion, or conditional branch exit. Default is submission.
Step 2: Map Headers
Add custom headers for API keys or tenant IDs. FormFlow supports up to 8 custom key-value pairs per webhook rule.
Step 3: Test & Activate
Click Send Test Payload to verify connectivity. Monitor delivery logs in the Activity tab for 200 OK responses.
JSON Payload Examples
Every webhook dispatch contains a consistent envelope structure. Field values are sanitized, nested arrays are flattened for CSV compatibility, and file uploads are replaced with secure download URLs.
Event: form.submitted
{
"event": "form.submitted",
"form_id": "ff_8a2c91b4",
"timestamp": "2024-11-15T14:32:10Z",
"metadata": {
"ip_address": "72.194.12.5",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"utm_source": "google_ads"
},
"fields": {
"full_name": "Elena Rostova",
"company": "Veridian Dynamics",
"budget_range": "$15k–$25k",
"preferred_contact": "email",
"compliance_acknowledged": true
}
}
Event: payment.completed
{
"event": "payment.completed",
"form_id": "ff_8a2c91b4",
"timestamp": "2024-11-15T14:35:42Z",
"payment": {
"provider": "stripe",
"transaction_id": "pi_3OqZ9xK4L2mNpQ7r",
"amount_cents": 24900,
"currency": "USD",
"status": "captured"
},
"fields": {
"billing_address": "402 Innovate Blvd, Austin, TX 78701",
"invoice_number": "INV-2024-0892"
}
}
All payloads include a signature query parameter generated via HMAC-SHA256. Verify this signature server-side before processing data to prevent spoofed requests. FormFlow guarantees at-least-once delivery and maintains a 14-day retry queue for non-2xx responses.