Webhooks
Send every captured lead to your CRM or automation tool in real time.
A webhook is a URL we POST to every time a lead is captured. Use it to push leads directly into your CRM (HubSpot, Pipedrive, Salesforce), automation tool (Zapier, Make, n8n), or your own backend.
Configuring a webhook
- Go to the widget detail page in your dashboard
- Click the Webhook card
- Paste your webhook URL (must be HTTPS)
- Click Save
You can also test the webhook from the same card — we'll send a sample payload to your endpoint so you can verify it's working.
The payload
Every lead capture POSTs a JSON payload that looks like this:
{
"event": "lead.captured",
"widget_id": "abc123",
"widget_name": "Pricing page widget",
"faq_item_id": "faq-xyz",
"faq_label": "What's your refund policy?",
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "+44 20 1234 5678",
"message": "Interested in your enterprise plan",
"session_id": "anon-session-id",
"captured_at": "2026-05-22T14:30:00.000Z"
}
For the full schema and field semantics, see Webhook payloads in the developer section.
How delivery works
- We POST as
Content-Type: application/json - We don't retry on failure (yet — it's on the roadmap). If your endpoint is down, that lead doesn't get delivered via webhook. It's still saved to your dashboard.
- Delivery is fire-and-forget — the visitor's form submission doesn't wait for your endpoint to respond, so a slow CRM doesn't slow down your widget.
Common integrations
Zapier:
- Create a new Zap with Webhooks by Zapier as the trigger
- Choose Catch Hook
- Copy the webhook URL Zapier generates
- Paste into your widget's webhook field
- Trigger a test lead (from the test button)
Make (Integromat):
- Create a new scenario, add a Webhooks → Custom webhook module
- Copy the URL
- Paste into your widget
- Run the scenario once to capture the structure
HubSpot, Pipedrive, Salesforce: use Zapier or Make to translate the Wiqly payload to their format. Direct integrations are on the roadmap.
Your own backend: any HTTPS endpoint that accepts JSON POSTs works. Validate the payload, do whatever you want with it.
Security
We don't currently sign webhook payloads. If you need to verify a request actually came from Wiqly, the practical workaround is to use a webhook URL that includes a secret token (e.g. https://your-api.com/webhooks/wiqly/abc123-secret-token) and check the token server-side.
Signed webhooks are on the roadmap.
Troubleshooting
- Test webhook works but real leads don't fire. Check your CTA is configured as an email-capture form (link and phone CTAs don't capture leads).
- Your endpoint timed out. We don't retry. Make your endpoint return a 200 within ~5 seconds.
- You want to know who fired the request. Use a per-widget URL token (see Security above).