Build agents

Voice agents

A voice agent talks to people in real time — over the phone or in your app. It's a bot with a speaking voice, a greeting, and call controls, reachable on an inbound number or placed as an outbound call.

Voice & greeting

Pick the agent's speaking voice from the voice catalog (the voices available depend on which providers your workspace has configured). Set a voice greeting — the first thing a caller hears — and the agent takes it from there. The catalog and the bot's TTS settings (tts_providercartesia | deepgram, plus a tts_voice) are configured on the bot.

In-call controls

Voice agents support controls that govern how a call behaves:

  • End call — let the agent hang up when the conversation is done (end_call_enabled).
  • Transfer — hand off to a human or another line (call_transfer_enabled + call_transfer_number).
  • Outbound — allow the agent to place outbound calls (outbound_calls_enabled), with a hard cap on length (max_call_seconds).

These are fields on the bot — set them in the editor or via the Bots API.

Inbound calls

To take inbound calls, map a phone number to the bot. Callers who dial that number reach the agent, hear its greeting, and start a voice conversation. See Voice numbers and the Voice API.

Outbound calls

Place an outbound call from your backend with the Calls API — give it the bot and the number to dial. The call's outcome and transcript show up as a voice conversation you can read with the Conversations API.

Voice is metered. An unaffordable call won't connect (the billing check runs at call-accept, with a mid-call watchdog) — there's no synchronous error on the originate request, so check the resulting conversation for the outcome.