Skip to main content

Webhooks

Receive real-time event notifications from SuperWaba via HTTP webhooks.

Setup​

  1. Go to Settings > Integrations > Webhooks
  2. Click Add Webhook
  3. Enter your endpoint URL (must be HTTPS)
  4. Select the events you want to receive
  5. Copy the signing secret for verification

Events​

EventTrigger
message.receivedNew incoming message from a customer
message.sentMessage sent to a customer (by agent or AI)
conversation.createdNew conversation started
conversation.closedConversation marked as closed
conversation.assignedConversation assigned to a team member
contact.createdNew contact added
contact.updatedContact details changed
ai.escalatedAI agent escalated to human

Payload format​

All webhook payloads follow this structure:

{
"event": "message.received",
"timestamp": "2026-05-16T12:00:00Z",
"org_id": "uuid",
"data": {
// Event-specific data
}
}

Verifying signatures​

Every webhook request includes an X-SuperWaba-Signature header. Verify it using HMAC-SHA256:

import crypto from 'crypto';

function verifyWebhook(payload: string, signature: string, secret: string): boolean {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}

Retry policy​

Failed deliveries (non-2xx response) are retried up to 3 times with exponential backoff:

  • 1st retry: 1 minute
  • 2nd retry: 5 minutes
  • 3rd retry: 30 minutes

After 3 failures, the webhook is marked as failing. Fix the endpoint and re-enable from the dashboard.

Testing​

Use the Test button in the webhook settings to send a sample payload to your endpoint.