| name | retell-webhooks |
| description | Receive and verify Retell AI webhooks. Use when setting up Retell webhook handlers, debugging X-Retell-Signature verification, or handling voice call events like call_started, call_ended, call_analyzed, and transcript_updated.
|
| license | MIT |
| metadata | {"author":"hookdeck","version":"0.1.0","repository":"https://github.com/hookdeck/webhook-skills"} |
Retell AI Webhooks
When to Use This Skill
- How do I receive Retell AI webhooks?
- How do I verify Retell webhook signatures (
X-Retell-Signature)?
- How do I handle
call_ended or call_analyzed events?
- Why is my Retell webhook signature verification failing?
- How do I handle transcript, transfer, and chat events from Retell?
Verification (core)
Retell signs each webhook with HMAC-SHA256 using your Retell API key as
the secret (only an API key with the webhook badge in the dashboard works). The
signature arrives in the X-Retell-Signature header formatted as
v={unix_ms_timestamp},d={hex_digest}, where the digest is computed over the
raw request body concatenated with the timestamp. Always verify against the
raw body, never a re-serialized JSON string.
The Python SDK ships a verify helper (client.verify(body, api_key, signature) —
positional params, so the keyword form used in the FastAPI example also works).
The , so Node handlers verify manually.