Skip to main content

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:

EventFires whenPayload includes
new_sessionA user session is createdthe full user_session object
new_leadA new lead is identifieduser_session + contact_information (name, email, phone)
lead_score_updateA visitor's lead score changesuser_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

  1. Trigger: "When new lead in Knock Knock"
  2. Action 1: Add row to Google Sheets
  3. Action 2: Post to Slack
  4. 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 via DELETE /zapier/unsubscribe-webhook); sample data comes from GET /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-codeYou're sending to your own API
You need to fan out to 3+ destinationsYou need HMAC-signed delivery
You want filters / transformationsYou 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 on companies.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.