Skip to main content
Webhooks allow your application to receive real-time notifications when events occur, such as incoming messages, delivery status changes, or partner invitation updates. Zavu supports two types of webhooks:
  • Sender Webhooks: Receive events for a specific sender (messages, conversations)
  • Project Webhooks: Receive project-level events (partner invitations)

Project Webhooks

Project webhooks are ideal for receiving notifications about project-level events, such as when a partner invitation is completed. This is particularly useful if you’re using the Partner Invitations API to onboard clients.

Via Dashboard

  1. Go to Dashboard and select your project
  2. Navigate to Webhooks in the sidebar
  3. In the “Project Webhook” section, click Configure
  4. Enter your webhook URL and select the events you want to receive
  5. Save - you’ll receive a signing secret

Via API

Configure a project webhook using the invitations API:
cURL
Response:

Managing Project Webhooks

Get current configuration:
cURL
Update webhook:
cURL
Remove webhook:
cURL

Project Webhook Events

Project Webhook Payload

Project webhooks are independent of sender webhooks. You can have both configured simultaneously.

Sender Webhooks

Each sender can have one webhook configured. Webhooks are managed as part of the sender resource.

Via Dashboard

  1. Go to Dashboard and select your project
  2. Navigate to your Sender’s settings
  3. Click Add Webhook
  4. Enter your webhook URL and select the events you want to receive
  5. Save - you’ll receive a signing secret

Via API

Configure a webhook when creating a new sender:
cURL
Response:
Store your webhook secret securely. It’s only shown once when you create the sender with a webhook. You’ll need it to verify webhook signatures.

Available Events

Inbound (Receiving Messages)

Outbound (Delivery Tracking)

Templates

Partner Invitations (Project Webhook)

The invitation.status_changed event is delivered via Project Webhooks, not Sender Webhooks. See the Project Webhooks section above for configuration.
Subscribe to message.inbound to receive all customer messages. Add conversation.new to get notified when a new contact messages you for the first time (useful for lead tracking). The outbound events are optional and used for tracking delivery status.

Webhook Payload

All webhook payloads follow the same structure:

Handling Webhooks

Your webhook endpoint must:
  1. Respond with 2xx status within 30 seconds
  2. Verify the signature to ensure the request is from Zavu
  3. Process asynchronously for long-running tasks

Retry Policy

If your endpoint returns an error or doesn’t respond within 30 seconds, Zavu will retry the delivery: After 5 failed attempts, the webhook delivery is marked as failed. You can view failed deliveries in the Dashboard.
Use a service like webhook.site or ngrok for testing webhooks during development.

Managing Webhooks

Update Webhook Configuration

Update your sender’s webhook settings:
cURL

Disable Webhook

cURL

Remove Webhook

Set webhookUrl to null to remove the webhook:
cURL

Regenerate Secret

If your webhook secret is compromised:
cURL
Response:

Next Steps