[INTEGRATION]

Webhooks

Evnao can send HTTP POST payloads to your servers whenever certain events occur in your workspace. This is the primary way to sync Evnao data with your own internal databases in real-time.

Listening for Events

You can configure your Webhook endpoints in the Dashboard. We will send a POST request with a JSON body whenever an event you are subscribed to occurs.

Available Events

  • conversation.started Fired when a user sends their first message.
  • conversation.ended Fired when the AI or an agent resolves a ticket.
  • handoff.requested Fired when a routing rule forces human intervention.

Verifying Signatures (Node.js)

To verify that a webhook actually came from Evnao, we include an Evnao-Signature header. You should use your Webhook Secret to verify this HMAC signature.

import crypto from "crypto";

export function verifyWebhook(payload, signature, secret) {
  const expectedSignature = crypto
    .createHmac("sha256", secret)
    .update(payload)
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from( expectedSignature)
  );
}