Skip to main content

Voice

Put your AI agents on phone calls, text messages and browser voice conversations

Why voice

An agent that can only be reached through a chat box misses the people who pick up the phone: patients booking an appointment, customers checking on an order, callers who want to talk to a person. The voice connectors give an agent a phone number, a voice and a way to text, on top of everything it already knows and can do: its instructions, knowledge bases, connectors and AI functions all apply on a call exactly as they do in a chat.

Every voice conversation is a normal agent conversation with a spoken front end:

  • The caller speaks, and the agent hears a transcript of what was said.
  • The agent answers with its usual tools: it looks the caller up, searches a knowledge base, books an appointment, sends a confirmation text.
  • Its answer is spoken back, and both sides of the conversation are recorded as a transcript.

The three connectors

ConnectorWhat it is
TwilioThe phone line. Holds your Twilio account; each agent gets a number of that account, answers calls and texts on it, and can call and text.
OpenAI VoiceA voice engine: an OpenAI realtime model hears and speaks on the call, and asks the Squid agent whenever it needs knowledge or an action. Also runs browser calls with no phone at all.
ElevenLabsA voice engine: an ElevenLabs agent with ElevenLabs voices hosts the call and uses the Squid agent as its brain.

The Twilio connector is always the starting point for phone calls. It comes with its own voice engine, Twilio speech, which needs no other connector: Twilio transcribes the caller and reads the agent's replies aloud. Adding an OpenAI Voice or ElevenLabs connector offers it as an alternative engine on every phone line.

Choosing a voice engine

The engine is chosen per agent, on its phone line, so different agents can use different engines.

CapabilityTwilio speechOpenAI VoiceElevenLabs
Who speaksTwilio text-to-speech (ElevenLabs, Google or Amazon voices) reading the Squid agent's repliesAn OpenAI realtime speech-to-speech modelAn ElevenLabs voice, cloned voices included
Who thinksThe Squid agent answers every utteranceThe realtime model handles the conversation and calls the Squid agent as a toolThe Squid agent answers every turn
FeelStreamed replies, one language per callMost natural: handles small talk itself, follows the caller into other languagesNatural voices, follows the caller into other languages
Opening line composed by the agent (greet a known caller by name)YesYesNo, a fixed first message
Caller interruptionsYesYes, with allowInterruptions and interruptionSensitivityYes
End or transfer the call from the agent's toolsYesYesEnds the call itself; no transfer
Outbound calls with a purpose (instructions)YesYesOutbound calls, without instructions
Transcript and call record in SquidYesYesNo, the call lives at ElevenLabs
SMS on the agent's numberYesYesNo, ElevenLabs owns the number
Browser callsThrough Twilio (Voice SDK credential)Through Twilio, or directly over WebRTC with startWebCall(), no phone neededNo
Voicemail detection on outbound callsNoNoYes

A good default: start with OpenAI Voice for the most natural conversation and for testing from the browser before you buy a number, and pick ElevenLabs when a specific voice matters most.

How to set it up

  1. Add a Twilio connector with your account credentials.
  2. Optionally add an OpenAI Voice or ElevenLabs connector.
  3. In Agent Studio, add the Twilio ability to the agent: pick a phone number of the account, the voice engine and the voice settings. Saving the ability wires the number up.
  4. Call the number.

Everything about the call is then available to your backend: the transcript, the call records, incoming texts, and the call context inside your AI functions. See Voice agents in the SDK documentation, and the phone assistant tutorial for a complete example that identifies callers, books appointments and confirms by text.

Explore