Skip to main content
InsiteChat webhooks fire HMAC-signed HTTP POST requests to URLs you configure whenever specific events happen on a chatbot. Use webhooks to push leads into your CRM, mirror conversations into a data warehouse, or trigger Zapier / Make.com / n8n workflows. Set up webhooks in Dashboard → your chatbot → WebhooksAdd Webhook. Pick the events you care about, set a destination URL, and InsiteChat does the rest.

Events

Common Envelope

Every event uses the same outer envelope. The event-specific payload lives under data:

Per-Event Payloads

lead.captured

conversation.started

message.received

conversation.escalated

Fires once per conversation the first time the visitor (or a smart-intent / CTA / agent rule) flips the conversation into “needs a human” mode. Subsequent triggers on an already-escalated conversation are no-ops.
Web escalations may include an additional message_count field; WhatsApp / Telegram escalations don’t. Treat any field beyond the four above as optional and channel-specific.

Headers

Every webhook request carries:

Signature Verification

Every payload is signed with HMAC-SHA256 using the per-webhook secret you’ll see when you create or view the webhook in the dashboard. Always verify the signature before trusting the body.

Python

Node.js

Verify against the raw request bytes, not the parsed JSON. Re-serializing changes whitespace and breaks the signature. Most frameworks expose a req.rawBody or request.body() (bytes) helper.

Retry Policy

A delivery is failed if the response is non-2xx or the request times out (10 seconds). Failed deliveries are retried up to 3 times with fixed backoff: After the 3rd failed retry the delivery is marked permanently failed.

Delivery Log

Every webhook attempt is logged. Open Dashboard → your chatbot → Webhooks, click Delivery log on any webhook to see status code, response body, and retry attempts.