Webhooks
Receive signed event delivery for conversations, messages, visitors, and files. Use webhooks as your source of truth for server-side workflows.
Event types
conversation.created
conversation.assigned
conversation.resolved
conversation.reopened
message.created
message.agent_replied
visitor.identified
visitor.attributes_updated
file.uploadedVerify signatures
import { createHmac, timingSafeEqual } from "node:crypto";
function verifyWebhook(rawBody: string, signature: string, secret: string) {
const parts = Object.fromEntries(
signature.split(",").map((p) => p.split("="))
);
const payload = parts.t + "." + rawBody;
const expected = createHmac("sha256", secret).update(payload).digest("hex");
return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}See the webhook signature reference for full verification code and payload examples.