Skip to main content

Support & Resources

Voicemail webhooks

Premium Features

Loading...

Voicemail webhooks

Voicemail webhooks

Send new voicemails, transcripts and missed-call alerts straight into your CRM, helpdesk or custom app.

Where to set it up

On an existing mailbox

  1. Go to Premium Features > Voicemail > Mailboxes and edit the mailbox.
  2. Open the Webhooks & API tab.
  3. Turn on one or both options:
    • Notify my system — new voicemail: sends a message when someone leaves a voicemail, and again when the transcript is ready (if transcription is on).
    • Notify my system — missed call alert: sends a message when a caller hangs up during your greeting without leaving a message.
  4. Enter your address in Notification URL.
  5. Optional: enter a Security code (up to 64 characters).
  6. Click Save Mailbox.

When creating a new mailbox

The same settings appear in step 4 of the wizard, Webhooks (Optional).

The missed call webhook can also be switched on from the Alerts & Notifications tab, under Missed Call Alerts > API Webhook. Both switches control the same setting.

Click Webhook Documentation on the Webhooks tab to see example messages.

Tip: if your staff read voicemail in the Crazytel inbox, they already get live updates there. Webhooks are for sending voicemail into another system.

Events you will receive

EventWhen it is sentSetting needed
voicemail.receivedA new voicemail has been recorded and saved.Notify my system — new voicemail
voicemail.transcription_completedThe voicemail transcript is ready.Notify my system — new voicemail, and transcription turned on for the mailbox
voicemail.missed_callA caller hung up during your greeting without leaving a message.Notify my system — missed call alert

All enabled events go to the same Notification URL.

Example messages

New voicemail

{
  "event": "voicemail.received",
  "account_code": "ACC123",
  "settings_uuid": "e830f0f5-5d93-455b-80a5-fbbdb9783f98",
  "message_uuid": "b20e03be-fa9c-4861-acfa-647d9692487e",
  "caller_id": "61400000000",
  "destination_did": "61299999999",
  "original_did": "61298786988",
  "duration_seconds": 45,
  "file_size_bytes": 720000,
  "recording_url": "https://s3.crazytel.com/voicemail/messages/ACC123/...",
  "retention_expires_at": "2026-12-03T00:11:00Z",
  "created_at": "2026-06-03T00:11:00Z"
}

Transcript ready

{
  "event": "voicemail.transcription_completed",
  "account_code": "ACC123",
  "settings_uuid": "e830f0f5-5d93-455b-80a5-fbbdb9783f98",
  "message_uuid": "b20e03be-fa9c-4861-acfa-647d9692487e",
  "caller_id": "61400000000",
  "destination_did": "61299999999",
  "original_did": "61298786988",
  "duration_seconds": 45,
  "transcript": "Hello, I was calling to check on the progress of our order.",
  "transcription_cost": 0.075,
  "created_at": "2026-06-03T00:12:00Z"
}

Missed call

{
  "event": "voicemail.missed_call",
  "account_code": "ACC123",
  "settings_uuid": "e830f0f5-5d93-455b-80a5-fbbdb9783f98",
  "caller_id": "61400000000",
  "destination_did": "61299999999",
  "original_did": "61298786988",
  "hangup_cause": "NORMAL_CLEARING",
  "occurred_at": "2026-06-03T00:13:00Z"
}
FieldWhat it means
settings_uuidWhich mailbox received the call.
message_uuidA unique ID for the voicemail. Links the "received" and "transcript ready" events. Not included on missed calls, because no message was left.
destination_didThe number the voicemail was left on.
duration_secondsLength of the voicemail in seconds.
file_size_bytesSize of the audio file.
recording_urlA temporary download link for the audio. It expires quickly, so download the file straight away if you need to keep it. For later access, use the message_uuid.
retention_expires_atWhen the voicemail will be automatically deleted under your retention settings.
transcriptThe text of the voicemail.
transcription_costWhat the transcription cost, in dollars.

Security

If you set a security code, each request includes:

X-CrazyVoicemail-Signature: <signature>
User-Agent: CrazytelVoicemail/1.0

The signature is plain hexadecimal, without a sha256= prefix. See Verifying webhook signatures.

Delivery and retries

  • Your server should reply with a 2xx status within about 10 seconds.
  • If it does not, Crazytel tries again after 5 minutes, 15 minutes, 1 hour, 4 hours, then 12 hours. After 5 attempts the message is marked as permanently failed.

How to test

Leave a test voicemail on the mailbox, then check that your system received a voicemail.received message.

Need Help?