Webhook Setup
Receive real-time notifications when events occur in DOLU.ai.
Creating a Webhook
http
POST /api/v1/webhooksjson
{
"url": "https://your-server.com/webhook",
"events": ["message.received", "conversation.created", "deal.won"],
"secret": "your-webhook-secret"
}Available Events
| Event | Description |
|---|---|
| message.received | New message received |
| message.sent | Message sent |
| conversation.created | New conversation started |
| conversation.closed | Conversation closed |
| contact.created | New contact created |
| contact.updated | Contact updated |
| deal.created | New deal created |
| deal.stage_changed | Deal stage changed |
| deal.won | Deal marked as won |
| deal.lost | Deal marked as lost |
| task.created | New task created |
| task.completed | Task completed |
Webhook Payload
json
{
"event": "message.received",
"timestamp": "2026-02-10T12:00:00Z",
"data": {
"id": "msg-uuid",
"conversationId": "conv-uuid",
"contactId": "contact-uuid",
"content": "Hello",
"channel": "whatsapp"
}
}Security
Verify webhook signatures using the X-Dolu-Signature header:
javascript
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return signature === \`sha256=\${expected}\`;
}Retry Policy
Failed webhooks are retried up to 5 times with exponential backoff.
