Prerequisites
- The Voice Agents feature enabled for your team. Voice endpoints return
403until it is. - A sender with an AI agent configured. See AI Agent Setup.
- A phone number assigned to that sender (required for inbound calls). See Purchasing Phone Numbers.
Voice calls run against live infrastructure and are not available with test-mode API keys. Use a
zv_live_ key.Step 1 — Enable Voice on the Agent
Voice is a property of the agent. Patch the agent with avoice object to turn it on and set a greeting.
Step 2 — Place an Outbound Call
CallPOST /v1/calls with the recipient’s number. Zavu dials them, and the agent takes over when they answer.
The voice endpoints are not generated in the language SDKs yet. Use the CLI or
call the API directly; both are shown throughout this guide.
202 with the call in queued or ringing status. senderId is optional — the project’s default sender is used when omitted.
Step 3 — Receive Inbound Calls
Inbound calls need no extra code. When someone dials a phone number assigned to the sender, Zavu answers with the voice agent automatically. To set it up:- Assign a phone number to the sender (see Purchasing Phone Numbers).
- Confirm the sender’s agent has
voice.enabledset totrue(Step 1). - Call the number. The agent answers with its greeting and holds the conversation.
Read the Call and Transcript
Retrieve a call to read its outcome and full transcript. The transcript is a list of turns in order.Next Steps
Configuration
Voicemail handling, call transfer, and limits
Webhooks
Get notified when calls start and end
