Announcements webhooks
Get notified when a call reaches one of your Announcement boxes, and again when it finishes.
Where to set it up
- Go to Premium Features > Announcements.
- Open the Announcement Boxes tab and choose Manage Settings on the box you want.
- Open the Alerts & Webhooks tab.
- In the webhook card, turn on Send call updates to my website.
- Enter your address in Webhook URL Endpoint.
- Optional: enter a Webhook secret.
- Click Save Changes.
A full Webhook Guide is also available from the Announcements menu and from the webhook card.
Events you will receive
All four events are sent when webhooks are on. You cannot switch individual events off.
| Event | When it is sent |
|---|---|
announcement.started | A call has arrived and the announcement has started playing. |
announcement.completed | The call finished normally (the message played, and any forward ran). |
announcement.abandoned | The caller hung up before the announcement finished. |
announcement.failed | The call could not be completed. |
Sending to a chat app
If your URL is a Slack, Discord, Microsoft Teams or Google Chat incoming webhook address, Crazytel sends a short, easy-to-read message instead of the full JSON. For example:
Announcement Completed
Account: 295327
Product: Announcements
Call: 550e8400-e29b-41d4-a716-446655440004
Announcement: 550e8400-e29b-41d4-a716-446655440000
Status: completed
Details: hangup_cause=NORMAL_CLEARING
Tip: start with a chat URL if you only want alerts. Switch to your own HTTPS address when you want to automate.
Example message
{
"event": "announcement.started",
"account_code": "295327",
"announcement_uuid": "550e8400-e29b-41d4-a716-446655440000",
"call_uuid": "550e8400-e29b-41d4-a716-446655440004",
"status": "received",
"created_at": "2026-06-07T00:00:00Z",
"caller_id": "61400111222",
"original_did": "61298786988",
"data": {
"route_token": "ann_a1b2c3d4e5f6"
}
}
| Field | What it means |
|---|---|
event | Which event this is (see the table above). |
account_code | Your Crazytel account number. |
announcement_uuid | Which Announcement box handled the call. |
call_uuid | A unique ID for this call. The same ID is used on every event for the call. |
status | Where the call was up to: received, playing, forwarding, completed, abandoned or failed. |
created_at | When the message was created (UTC). |
caller_id / original_did | Who called and the number they dialled (optional). |
data.hangup_cause | On finishing events, the technical reason the call ended, for example NORMAL_CLEARING. |
Webhooks never include audio files, call recordings or storage links.
Security
If you set a secret, each request includes:
X-Crazytel-Signature-256: sha256=<signature>
See Verifying webhook signatures.
Delivery and retries
- Your server should reply with a
2xxstatus within about 10 seconds. - If it does not, Crazytel tries again after 5 minutes, 15 minutes, 1 hour, 4 hours, then every 12 hours, up to 8 attempts in total.
- In the call history (Calls tab), a call's activity shows Webhook queued and Webhook sent entries.
