#what is the request body of postcall webhook send by eleven labs and how to authenticate it in my w
1 messages · Page 1 of 1 (latest)
AI-generated Answer for ayush_38869
Here’s exactly what ElevenLabs sends and how to verify it.
Request body (POST)
- Common top-level fields
- type: "post_call_transcription" or "post_call_audio"
- event_timestamp: Unix seconds (UTC)
- data: object with event-specific payload. (elevenlabs.io)
- Transcription webhook (type = post_call_transcription)
- data includes: agent_id, conversation_id, status, user_id, transcript[], metadata, analysis, conversation_initiation_client_data.
- Note: since August 15, 2025, data also includes has_audio, has_user_audio, has_response_audio to align with the GET Conversation response. (elevenlabs.io)
- Audio webhook (type = post_call_audio)
- data includes only: agent_id, conversation_id, full_audio (base64-encoded MP3 of the full call). (elevenlabs.io)
- Delivery detail for audio webhooks
- Audio payloads may be delivered via HTTP streaming with Transfer-Encoding: chunked; read/assemble the full body before processing. (elevenlabs.io)
Authenticating the webhook (HMAC)
- Header: ElevenLabs-Signature formatted as t=timestamp,v0=hash. (elevenlabs.io)
- Compute expected signature: v0 must equal hex(HMAC-SHA256(secret, "<timestamp>.<raw_request_body>")). Use the exact raw bytes as received; compare in constant time and enforce a recent timestamp. (elevenlabs.io)
Operational notes
- Respond with HTTP 200 quickly after validation. Webhooks that fail repeatedly can be auto-disabled; events are dispatched only once. (elevenlabs.io)
- For HIPAA workspaces, failed post-call webhooks are not retried. (elevenlabs.io)
- Optional: you can IP-allowlist ElevenLabs’ fixed egress IPs as an extra control. (elevenlabs.io)
Sources:
- Post-call webhooks (payloads, migration note, HIPAA, IPs) (elevenlabs.io)
- Webhooks (HMAC header format, verification flow, delivery behavior) (elevenlabs.io)
- Post-call webhooks (audio streaming/chunked delivery) (elevenlabs.io)
if call is cut or not picked do i get request on my webhook
AI-generated Answer for ayush_38869
Short answer: not guaranteed.
- ElevenLabs only documents post-call webhooks being sent “after a call has finished and analysis is complete.” The docs do not promise a webhook if the call never connects or is not answered. (elevenlabs.io)
- You can check the outcome of attempted calls via the Conversations API; conversation status values include failed, which covers cases where a call did not proceed. (elevenlabs.io)
- Audio webhooks are only sent when there is audio of a conversation, so an unanswered call (no audio) would not generate an audio webhook. (elevenlabs.io)
- If a call is answered by voicemail and your agent handles it (via the Voicemail Detection tool), that is a connected conversation; you should receive the normal post-call webhook once it ends. (elevenlabs.io)
If you need to track no-answer or failed dials, rely on the Conversations API (and/or your telephony provider callbacks) rather than waiting for a post-call webhook. (elevenlabs.io)
Sources:
Webhooks | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Voicemail detection | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
does calls that are not picked send post call transcription