A voice agent can start a call, not just answer one. Attach an agent to
an outbound call and it dials the number, opens with your greeting, and
holds the whole conversation on its own — no human on the line.
This guide covers the outbound-specific pieces. If you haven’t placed a
call or created an agent yet, start with the
Voice Quickstart.
Prerequisites
- A voice agent. Create one in the dashboard or over the API and note its
agent_id (looks like agt_abc123). The agent must not be archived.
- A caller-ID number you own or have claimed as a trial number, passed as
from.
- An API key with voice scope.
Place the call
Send the agent’s id as agent_id on the outbound call:
With the Node SDK:
You get back the call id immediately. The dial is placed in the
background; subscribe to call events to follow
call.initiated, call.answered, and call.completed.
The agent speaks first
An inbound agent waits for the caller to speak. An outbound agent is the
one who called, so it greets the person first with the agent’s opening
message, then listens. Set that opening message on the agent’s
configuration (the “first message” / greeting field). If none is set, the
agent still connects and simply waits for the first turn — set a greeting
so the callee isn’t met with silence.
Compliance runs before anything dials
Outbound calls to real people are regulated, so Orbit runs these checks
up front and rejects the call before it is placed if any fail — you are
never charged for a rejected call:
- Quiet hours — calls outside the permitted local calling window for
the destination are blocked. Set an org timezone override with
orgTimezone if your account’s default doesn’t match.
- Do-not-call and STOP — numbers on your do-not-call list, or that
have opted out across any channel, are blocked.
- AI-voice consent — a synthesized or agent voice requires prior
written consent on file for the destination.
Emergency numbers can never be dialed. An outbound request to an
emergency short code is rejected — Orbit does not provide emergency
calling.
Options for unattended calls
For reminder or campaign calls where no human is on the originating side:
- Answering-machine detection — set
amd: true so the agent only
engages a live person and skips machines and voicemail.
- Recording — set
record: true to record the call. When your
account requires a spoken recording announcement, it plays before
recording starts; if the announcement can’t play, the call proceeds
without being recorded rather than recording silently.
Call a whole list
To reach many contacts, point a dialer campaign at a voice agent
instead of placing calls one at a time. The campaign paces the outbound
calls, runs the same compliance checks per number, and attaches the agent
to each answered call. See Dialer dispositions
for how call outcomes are recorded.
Troubleshooting
- 422 with an agent error — the
agent_id doesn’t exist or is
archived. Confirm the id and that the agent is active.
- 422 compliance violation — the number failed quiet-hours,
do-not-call, or AI-consent. The response
details name which check
blocked it.
- The callee hears silence at pickup — the agent has no greeting
configured. Set the agent’s opening message.
- 503 while dialing — the outbound voice path is momentarily
unavailable. Retry shortly; the call was not placed.