HTTP Webhook Destination
Send approved submissions to your own API endpoints via HTTP webhooks
Overview
HTTP webhooks allow you to send approved form submissions to your own API endpoints. This is perfect for integrating Filter Forms with your existing systems, CRMs, or custom applications.
Setting Up HTTP Destination
- Navigate to your form's settings
- Click on "Destinations" in the left sidebar
- Select "HTTP Webhook" from the available destination types
- Enter your webhook URL (must be HTTPS)
- Optionally add custom headers for authentication
- Click "Save"
Webhook Payload
When a submission is approved, Filter Forms sends a POST request to your webhook URL with the following JSON payload:
Payload Fields
- formId: Unique identifier for the form
- formTitle: Display name of the form
- submissionData: Object containing all form field values (keys are field IDs, values are user responses)
- submittedAt: ISO 8601 timestamp when the submission was received
Custom Headers
You can add custom headers to authenticate your webhook requests:
- Click "Add Header" in the HTTP destination settings
- Enter header name (e.g., "Authorization")
- Enter header value (e.g., "Bearer your-secret-token")
- Add multiple headers as needed
Common header examples:
- Authorization:
Bearer your-api-token - X-API-Key:
your-api-key - Content-Type:
application/json(automatically included)
Request Details
- Method: POST
- Content-Type: application/json
- Timeout: 30 seconds
- Retries: Up to 3 attempts with exponential backoff
- User-Agent: FilterForms-Webhook/1.0
Response Handling
Your endpoint should respond with:
- Success: HTTP status code 200-299
- Failure: HTTP status code 400+ (submission will be retried)
Example successful response:
Security Best Practices
- Always use HTTPS - Filter Forms only allows HTTPS webhook URLs
- Validate webhook signature - Use custom headers to authenticate requests
- Verify payload structure - Check that required fields exist before processing
- Implement idempotency - Use submissionId to prevent duplicate processing
- Rate limiting - Implement rate limiting on your endpoint to prevent abuse
Testing Your Webhook
- Use a service like webhook.site to test webhook payloads
- Submit a test form submission
- Verify the payload structure matches your expectations
- Update your actual endpoint URL once tested
Monitoring and Debugging
Filter Forms provides webhook delivery status in your dashboard:
- Delivery Status: Success, Failed, or Pending Retry
- Response Code: HTTP status code from your endpoint
- Response Time: How long your endpoint took to respond
- Error Message: If delivery failed, the error details
Common Integration Examples
CRM Integration
Slack Notification
Troubleshooting
Webhook not receiving requests?
- Verify your endpoint is publicly accessible
- Check that you're using HTTPS (not HTTP)
- Review your server logs for incoming requests
- Test with webhook.site to verify Filter Forms is sending requests
Requests timing out?
- Ensure your endpoint responds within 30 seconds
- Move slow operations (like email sending) to background jobs
- Return a success response immediately, then process asynchronously
Getting errors?
- Check the error message in the Filter Forms dashboard
- Verify your endpoint returns proper HTTP status codes
- Ensure JSON payload parsing is working correctly
- Check custom header authentication logic