Zapier
Audience: Sales, management, support, engineering · Where in app: Settings → Integrations → Zapier (and Settings → Webhooks) · Plan availability: All plans (verify)
Zapier is the "glue everything together without code" option. Knock Knock fires events (new visitor, hot lead, booking, chat ended, …); a Zapier "Zap" catches each event and does whatever the customer wants with it — add a row to Google Sheets, post to Slack, add to a Mailchimp list, create a task. It's the easiest path for non-technical admins who want to fan an event out to several destinations.
What it does
Subscribes Zapier webhooks to Knock Knock events. The events actually wired into the Zapier path in code are:
| Event | Fires when | Payload includes |
|---|---|---|
new_session | A user session is created | the full user_session object |
new_lead | A new lead is identified | user_session + contact_information (name, email, phone) |
lead_score_update | A visitor's lead score changes | user_session + lead_score (lead_event, event_score, total_score) |
The knowledge base lists a broader set (
booking_created,hot_lead_identified,form_submitted,session_finalized, …). Those are the native-webhook events; the dedicated Zapier trigger in code currently supports the three above. For everything else, point a native webhook at a Zapier "Catch Hook" URL. Verify the live trigger list in the Knock Knock Zapier app.
How it works
Auth model: webhook URL + shared secret (company ID + secret pair). In Settings → Integrations → Zapier, Knock Knock generates a Zapier secret — a 20-byte hex string stored at company.zapier.secret (with secret_generated_at). Each Zap registers a webhook subscription, stored in company.zapier.webhooks[]:
{ url, event, zap_id }
Direction: outbound only. When a subscribed event occurs, Knock Knock POSTs the event payload to the Zap's URL.
Inbound auth (Zapier → Knock Knock): Zapier's management calls (subscribe/unsubscribe/test/sample) authenticate with two headers — X-Company-Id and X-Company-Secret (matched against company.zapier.secret). There is no HMAC signature on outbound deliveries; the secret-pair identifies the tenant.
Example payload (new_lead)
{
"user_session": { "...full session object..." },
"contact_information": {
"name": "...",
"email": "...",
"phone": "..."
}
}
lead_score_update instead carries a lead_score object (lead_event, event_score, total_score); new_session carries only user_session.
A typical Zap
- Trigger: "When new lead in Knock Knock"
- Action 1: Add row to Google Sheets
- Action 2: Post to Slack
- Action 3: Add to Mailchimp list
Configuration & options
- Generate/rotate the Zapier secret:
GET /zapier/generate-secret(Settings → Integrations → Zapier). - Zapier registers subscriptions via
POST /zapier/subscribe-webhook(and removes viaDELETE /zapier/unsubscribe-webhook); sample data comes fromGET /zapier/webhook-sample-data?event=.... - Manage native event delivery alongside Zapier under Settings → Webhooks.
Zapier vs native webhooks
| Use Zapier when… | Use native webhooks when… |
|---|---|
| You want no-code | You're sending to your own API |
| You need to fan out to 3+ destinations | You need HMAC-signed delivery |
| You want filters / transformations | You want max throughput / no Zapier task limit |
Behaviors & edge cases
- Delivery audit: every delivery is recorded in
WebhookEventModel(success/failure) — the same audit surface as native webhooks. - Latency: Zapier delivery is typically a few seconds — not real-time enough for "while the visitor is still on the page" use cases. Use native webhooks (or Slack) for that.
- Task limits: Zapier's free tier has low task limits; high-volume tenants burn through them quickly. Native webhooks are more durable.
Plan & limits
- Available on all plans (verify exact tier gating).
- The binding limit is Zapier's own per-plan task quota, not Knock Knock.
Technical implementation
- Owning service:
backend. Subscriptions stored oncompanies.zapier(secret,webhooks[]); deliveries flow through the same webhook delivery + audit path as native webhooks (WebhookEventModel). - See Webhooks for the underlying delivery, signing, and retry mechanics.
What Nox can tell you
- Which Zaps are active.
- Recent deliveries (success / failure) via
WebhookEventModel. - Whether Zapier is processing events at the expected rate.