Webhooks
WazzyAI POSTe un JSON signé sur votre URL dès qu'un événement arrive (message, lead, RDV).
Configurer
- Allez dans Développeurs → Webhooks.
- Collez une URL HTTPS publique.
- Cochez les événements :
message.in,lead.stage_change,lead.won,*… - Copiez le secret — il signe chaque livraison.
Payload type
POST /votre-endpoint
x-wazzy-signature: sha256=…
Content-Type: application/json
{
"id": "evt_…",
"type": "message.in",
"organizationId": "org_…",
"at": 1787620000000,
"payload": {
"conversationId": "…",
"contactId": "…",
"text": "Bonjour, vous livrez à Cocody ?"
}
}Vérifier la signature
const crypto = require("crypto");
function verify(body, signature, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}Rejetez toute requête dont la signature ne matche pas.
Retries
Si votre serveur ne répond pas 2xx : 10s → 1 min → 5 min → 30 min → 2 h (5 tentatives). Dédupez sur id — on peut renvoyer le même événement.
Événements
message.in/message.outlead.stage_change/lead.wonconversation.update/notification*— tout