Platform · Outbound
Outbound calls, triggered from your code.
Trigger a single AI-powered call from your workflow or run a managed recipient batch. Every call becomes an execution record with transcript, recording, tool results, and outcome, so outbound automation stays traceable from trigger to follow-up.
Problem · Solution
The problem today
Outbound calling is often split between rigid dialers that are difficult to connect to business workflows and one-off calling tools that give operations no control over larger recipient lists. Teams need both: contextual calls triggered by real events, plus managed batches with clear recipient status, progress, and follow-up outcomes.
How Vocily AI handles it
Single calls from business events
Trigger a call when an order is placed, a lead arrives, a reminder is due, or another workflow reaches the right moment.
Managed batches for recipient lists
Run controlled outbound lists with recipient-level status, pause and resume controls, focused reruns, and exportable outcomes.
Per-call runtime variables
Inject context per call — caller name, order ID, due amount, anything. Available as template variables in the prompt and the agent's tools.
One execution record per call
Every call writes a structured record — call SID, status, transcript, recording, tool calls, outcome, per-component cost. Queryable, exportable, webhook-pushable.
Structured outcomes
Reached · transferred · booked · follow-up · unreached · opt-out. Outcomes are tags, not free-text. Reporting becomes filtering.
Retries stay intentional
Failed calls keep their own record with a reason code. Your team decides which recipients belong in a focused rerun and when another attempt is appropriate.
What's in it
What an outbound call looks like.
From trigger to write-back, here's the contract.
01
Triggering
How calls get placed.
- Endpoint
- POST /v1/calls — pass agent ID, to-number, and optional runtime variables.
- Authentication
- Workspace API key. Server-side only.
- Variables
- Per-call key/value pairs that substitute into the agent's prompt and tool configs.
- Idempotency
- Idempotency key supported to prevent double-dial on retries.
02
Execution record
What lives on every call once it completes.
- Identity
- Execution ID · Call SID · agent · language used.
- Status
- Queued · dialing · in_progress · completed · failed (with reason).
- Transcript
- Full turn-by-turn with word-level alignment events.
- Recording
- Audio per execution (stops at human handoff).
- Tool calls
- Every API tool invocation with input, output, latency, status.
- Cost
- Per-component breakdown — STT, TTS, LLM, telephony — and total.
03
Outcome categories
Structured tags applied per call.
- Reached
- Caller answered and the conversation completed.
- Transferred
- Agent handed off to a human destination per escalation rules.
- Booked
- A meeting / visit / appointment was created inside the call.
- Follow-up
- Caller asked for a callback at a specific time.
- Unreached
- No-answer, busy, or voicemail — with reason code.
- Opt-out
- Caller explicitly asked not to be called again — timestamped.
04
Webhooks & write-back
How outcomes get back into your stack.
- Webhook events
- call.started · call.ended · call.failed · transcript.ready · recording.ready · post_call_analysis.ready
- Signing
- HMAC-SHA256 per event so your backend can verify origin.
- Retries
- Exponential backoff with delivery history per endpoint.
- Pull-mode
- REST endpoints to pull execution records on demand if you'd rather not handle webhooks.
From trigger to execution
Every outbound call has a paper trail.
Vocily AI uses the same execution model for every outbound call, so each is traceable from start to finish.
Execution record
Completedexec_29x8b
Outbound · 03:04 · placed via Vobiz
Channel
Outbound
Duration
3m 04s
Transcript
14 turns
Recording
Ready
Tools invoked
Common questions
What teams ask before they switch.
Yes. Use a managed outbound batch for a recipient list, or trigger individual calls directly from your own business workflows.