PPingloopDocs
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

HeaderValue
X-Pingloop-EventEvent name
X-Pingloop-DeliveryDelivery id (use for idempotency)
X-Pingloop-Signaturesha256=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.