Skip to main content
Webhooks push data to your application as events happen — no polling required.

Event Types

Voice Call Events

If a call did not connect (e.g. dial_failed, dial_no_answer, dial_busy), call_started will NOT be triggered. call_ended and call_analyzed will still fire.

Chat Events

Webhook Behavior

  • Timeout: 10 seconds. If no 2xx response is received, retried up to 3 times.
  • Ordering: Events fire in order but are non-blocking. A failed call_started won’t prevent call_ended from firing.
  • Expected response: Return a 2xx status code. No body required.

Event Filtering

Limit which events are delivered per agent using the webhook_events field when creating or updating an agent.

Webhook Types

Sample Payloads

call_ended payload:
transfer_started payload:

Verify Webhooks

All requests include an x-retell-signature header (HMAC-SHA256). Verify using your UponAI API key:
Node
You can also allowlist UponAI’s IP address: 100.20.5.228.

Local Testing

Use ngrok to expose a local endpoint for webhook testing during development.

Privacy

If you enable Opt-Out of Personal and Sensitive Data Storage, transcripts and recordings won’t be stored post-call. However, they remain accessible via webhooks for up to 10 minutes via the recording_url field.