Webhooks
Webhooks let you send real-time notifications to external services whenever specific events happen in your Knock Knock App account. This is useful for connecting with custom tools, internal systems, or services not covered by our other integrations.
Creating a Webhook
To create a new webhook:
- Go to Integrations in the sidebar.
- Find Webhooks and click Manage.
- Click Add Webhook.
- Enter a name to identify this webhook.
- Enter the URL where you want events to be sent.
- Select the events you want to listen for.
- Click Save to create the webhook.
Give your webhooks descriptive names like "New Lead to Internal CRM" or "Chat Ended to Analytics" so you can easily identify their purpose later.
Available Events
You can choose which events trigger your webhook. The available events include:
| Event | When It Fires |
|---|---|
| New Session | A visitor starts a new session on your site. |
| Visitor Identified | An anonymous visitor becomes identified — by a form, chat, call, or the graph. |
| New Lead | A new lead is captured from a visitor interaction. |
| Lead Score Updated | A visitor's lead score changes. |
| Chat Ended | A chat conversation is closed or completed. |
| New Meeting Booked | A visitor books a meeting. |
| Meeting Rescheduled | A booked meeting is moved to a new time. |
| Meeting Cancelled | A booked meeting is cancelled. |
| Call Ended | A phone or widget call finishes (channel is phone or web). |
You can select one or more events per webhook. Each selected event will send a notification to your specified URL when it occurs. The same catalogue powers the Zapier triggers.
You can create multiple webhooks that listen for different events, or a single webhook that listens for all events. Choose the approach that best fits your workflow.
Payload Format
Webhook and Zapier payloads send a curated, documented set of session fields rather than raw internal records. Signed new_lead webhooks embed the session document in the same curated shape.
:::warning Action needed for existing integrations If your automation referenced undocumented internal fields, update it to use the documented fields — the in-app documentation (the Documentation tab on the Webhooks screen) shows the exact current payloads. :::
Post-Call Webhook Payload
Call Ended payloads include the results of the post-call analysis alongside the call details:
call_sentiment— the caller's sentiment for the call:positive,neutral, ornegative.transcript_text— a plain-text transcript inSpeaker: textform, sent alongside the structured transcript array. Use it when your automation just needs readable text.recording_url— a signed public streaming link to the call recording, valid for about a year. No login is needed, so your automations can fetch the audio directly.
Delivery Timing
The post-call webhook waits for the post-call analysis (including the summary) before firing, so payloads arrive complete. If the analysis never arrives, a fallback delivery fires within a few minutes without the analysis fields. Either way, exactly one delivery is sent per call.
New User Identified Event
The New User Identified event fires when an anonymous visitor becomes identified during a session — whether through Knock Knock's own identity graph or through enrichment. It fires at most once per session, and never for visitors who were already known before the session started.
The payload includes:
| Field | What It Contains |
|---|---|
user_session_id | The session in which the visitor was identified. |
contact | name, email, phone, and source of the identity. |
company | The identified visitor's company name. |
ip | The visitor's IP address. |
initial_page_visit | The first page the visitor landed on. |
identified_at | When the identification happened. |
Testing Webhooks
After creating a webhook, you can test it to make sure everything is working:
- Go to your webhook settings.
- Click the Test button next to the webhook you want to verify.
- A sample event will be sent to your URL.
- Check your receiving service to confirm the test event arrived.
Test events are clearly marked as test data so you can distinguish them from real events. Use testing to verify your setup before going live.
Managing Webhooks
From the webhooks management page, you can:
- Edit -- Change the URL, name, or selected events for an existing webhook.
- Disable -- Temporarily stop a webhook without deleting it.
- Delete -- Permanently remove a webhook you no longer need.
- View logs -- See recent delivery attempts and their status. Retried deliveries are marked attempt N.
Retries and Auto-Disable
A delivery that fails — a timeout, a 5xx, a 408 or 429 — is retried up to four times with increasing waits (from about a minute, doubling, capped at 30 minutes). Any other 4xx counts as a permanent rejection and isn't retried. Every attempt appears in the logs.
If five deliveries in a row fail after all their retries, the webhook is switched off and shows an amber auto-disabled badge next to its status (hover it for the reason). Fix the endpoint, then re-enable the webhook.
Deleting a webhook is permanent. If you might need it again later, consider disabling it instead.
Next Steps
- Explore Zapier for a no-code alternative to webhooks
- Prefer pulling data on your own schedule? Use the Lead API
- Running an agency with your own platform? See the Platform API
- Connect Slack for team notifications
- Review all available integrations