Developers
Outgoing webhooks
Create webhooks under Settings → Developer. Choose the events to subscribe to:
conversation.created, conversation.updated, conversation.closed, message.received, message.sent, ticket.created, ticket.updated, ticket.resolved, contact.created, contact.updated, sla.breached, ai.handover, csat.received.
Payload
{
"id": "5f2c…",
"event": "ticket.created",
"payload": { "ticket": { "id": "…", "number": 1009, "subject": "…", "priority": "HIGH" } },
"sentAt": "2026-09-11T10:00:00.000Z"
}Headers
| Header | Value |
|---|---|
X-Pingloop-Event | Event name |
X-Pingloop-Delivery | Delivery id (use for idempotency) |
X-Pingloop-Signature | sha256=HMAC_SHA256(secret, rawBody) |
Verify the signature (Node)
const crypto = require('crypto');
function verify(rawBody, header, secret) {
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(header));
}Deliveries are retried up to three times with backoff and are listed with status, HTTP code and attempts under each webhook. Use Test to send a webhook.test event.