Receive events with a webhook
Updated October 28, 2026
The webhook sends a JSON POST request to your server for each event of the App, for example to send a push notification from your server: see Documentation > Push notifications.
- Open App settings > Developers > Webhook.
- Enter your server’s https address, then save.
- Copy the signing secret that appears and keep it on your server.
Events
- message.member: a member replied to the Contact, with the push notification ready to send. Internal notes and automatic AI replies send nothing.
- message.contact: the Contact wrote.
- case.opened: a Case opens, on the first message or when the conversation reopens.
- case.resolved: a Case is resolved, by a member or automatically.
Delivery
- The address must be public and use https: localhost and private networks are refused.
- Answer with a 2xx code within 10 seconds.
- Otherwise, the call is tried again up to 5 times: after 1 minute, 5 minutes, 30 minutes, 2 hours, then 6 hours.
- The id field stays the same from one try to the next: use it to skip a duplicate.
Recent deliveries
In App settings > Developers > Webhook, “Recent deliveries” shows the App’s last 50 calls, test events included. For each: the event, where it went (“Webhook address” or “Zean CLI”), your server’s status code or the error, such as “Timed out” or “Connection refused”, the start of its reply, the time it took, when it was sent, the attempt number, and the “Test” badge for a test.
- Find the failed call and read your server’s reply.
- Fix your server or the address.
- Choose “Send again”: the same event goes again, with the same id and the next attempt number. If it succeeds, that event’s automatic retries stop.
To try your server on your computer before going live: Test your webhook on your computer. What each event holds and its headers: Documentation > Webhooks.
Every event is always sent: ignore the ones you do not need. Leave the address empty to receive nothing.
Still need help?
Our team replies in the chat, in English or French.