Integrations

Webhooks & Event Handling

Build complex forms without code. Configure real-time data sync to push submissions directly into your CRM, database, or automation pipeline.

Setting Up Real-Time Sync

FormFlow triggers HTTP POST requests the moment a user clicks Submit. No polling, no delays. Just fire-and-forget reliability with built-in retry logic.

Navigate to your form’s Settings panel and open the Integrations tab. Click Add Endpoint and paste your verification URL. Enable TLS 1.2 validation and set your timeout to 5 seconds. FormFlow automatically queues failed payloads and retries them at 1m, 5m, and 15m intervals before marking the event as dead-lettered.

You can scope webhooks to specific events: form_submitted, draft_saved, or payment_processed. Each event type carries a distinct payload schema, so your downstream systems only process the data they actually need.

Payload Structure & Error Handling

Every outbound request follows a strict JSON envelope. Your server must respond with a 2xx status code within 3 seconds to acknowledge receipt.

Standard Submission

form_submitted

{"event_id": "evt_8f3a9c2d1e", "form_id": "frm_q4_enterprise_onboarding", "timestamp": "2024-05-12T14:32:00Z", "fields": {"company_name": "Aethelgard Logistics", "annual_revenue": 4500000, "compliance_tier": "SOC2_Type2"}}

Payment Event

payment_processed

{"event_id": "evt_7b2c4d9f0a", "form_id": "frm_2024_service_agreement", "timestamp": "2024-05-12T14:35:12Z", "payment": {"stripe_charge_id": "ch_3N8kL2PqR5sT6vW7", "amount_cents": 29900, "currency": "USD", "receipt_url": "https://pay.formflow.io/rcpt/8821"}}

Failure Response

Handling 4xx/5xx

If your endpoint returns a 401 Unauthorized or 503 Service Unavailable, FormFlow logs the exact response body and pauses further attempts for that specific form. Check the Audit Trail tab to view raw request headers, retry counters, and the exact JSON that was rejected. Use the Test Webhook button to send a sample payload without triggering real submissions.