Skip to main content

Inbound

Assign a number to an agent and it answers every call to that number.
Numbers list with a status of assigned or unassigned, and you can filter with GET /numbers?status=unassigned or GET /numbers?agentId=....
GET /agents/{id}/numbers is read-only. There is no POST on it — assignment always happens on the number resource.
Import numbers you already own from Import Numbers in the dashboard. Your carrier credentials are encrypted at rest and used only to place and receive your own calls.
A number maps to exactly one agent. To route by time of day or menu choice, put one agent on the number and give it a tool that transfers.

Outbound

Numbers must be E.164 — a leading +, country code, no spaces or dashes. On outbound the agent waits for the other person to speak first, whatever firstSpeaker says. They answered the phone; they will say hello.
Automated outbound calling is regulated, and the rules differ sharply by country — consent, calling hours, identification, do-not-call registers. Check what applies where you are dialling before you run a campaign. This is your obligation, not ours.

Testing

Call the number yourself before anyone else does. Listen for:
  • Does the greeting sound right at phone quality? Phone audio is narrowband and unflattering — a voice that shines in the browser can sound thin.
  • Is there a gap before the agent speaks?
  • Does it handle background noise and cross-talk?
  • Does it hang up cleanly, or leave the line open?
If the agent should be able to end calls itself, assign the hangUp system tool. Without it, an agent that has finished simply waits — and the caller sits in silence wondering if they should hang up.