Skip to main content
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.