- Appointment confirmations
- Survey callbacks
- “Second-try” follow-ups after a missed call
- Dispatch-style notifications
Prerequisites
Bring a VoIP number
Outbound calling requires you to own the
from_number through a
VoIP connection. Demo numbers
are inbound-only. See
Bring your own numbers.Create an agent
An outbound-flavoured prompt tends to start with the agent
identifying itself and its purpose — “Hi, this is Acme calling to
confirm your appointment for tomorrow at 3pm…” Set
outbound_speak_order to agent_first (the default).Keep a positive balance
Outbound calls return
402 Payment Required if balance is ≤
$0.00. Top up via
POST /v1/billing/top-up
or enable auto-reload.Place a call with a saved agent
The simplest path — reference an agent by id:Place a call with inline config
If you want a one-off prompt that isn’t worth saving as an agent, passconfig instead. The shape matches the response schema of the
call.incoming webhook:
Follow the call
In parallel, subscribe to thetelephony.complete webhook —
the fastest way to know a call finished. If you can’t accept inbound
webhooks, poll GET /v1/calls/{call_id} every couple of seconds; the
record includes end_reason, duration_seconds, and the recording
URL once the call ends.
Failure modes worth handling
| Error | Fix |
|---|---|
402 Payment Required | Top up the balance or enable auto-reload |
403 outbound blocked (demo number) | Bring a VoIP number instead |
403 outbound blocked (unverified VoIP) | Run POST /v1/phone-numbers/{id}/verify-voip |
404 from_number is not registered to this organization | Confirm the from_number matches a phone number you own |
502 Bad Gateway | Transient SIP / LiveKit failure; safe to retry |
Controlling hold time
Outbound calls that run long because the callee is slow to respond (IVR trees, queues) can be capped withmax_hold_seconds:
Next steps
Outbound calls reference
Every request field and error code.
Receive call.complete
Stream finished outbound calls to your system.
Billing
Auto-reload so outbound never fails on balance.
Test outbound agents
Dry-run your outbound agent before production.