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

  1. Go to the widget detail page in your dashboard
  2. Click the Webhook card
  3. Paste your webhook URL (must be HTTPS)
  4. 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:

  1. Create a new Zap with Webhooks by Zapier as the trigger
  2. Choose Catch Hook
  3. Copy the webhook URL Zapier generates
  4. Paste into your widget's webhook field
  5. Trigger a test lead (from the test button)

Make (Integromat):

  1. Create a new scenario, add a Webhooks → Custom webhook module
  2. Copy the URL
  3. Paste into your widget
  4. 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).