Click-to-call
- Dana’s phone rings first. The response comes back once she answers (up
to 30 seconds), with the
call_uuid. - When she answers, the number is dialled.
from can be extension, agent_id or the user_email of a person linked to
an agent. You can still send extension and destination on their own.
If Dana doesn’t answer, the response is an error, and your callback gets
call.failed.
An AI agent calls someone
- It answers
202straight away, with arequest_id. The call is dialled in the background. - The agent follows its profile. It uses its role, SOP, knowledge and
rules, and it knows it made the call. The
variablesare in its brief as what it knows about this call. caller_idmust be one of your numbers. You can leave it out if you have only one.- When the call ends,
conversation.completedbrings the summary and any review flags, andcall.endedbrings the outcome. - If nobody answers,
call.failedcomes with the reason:no_answer,busy,invalid_number, and so on.
422 and the reason:
- the number is one of your own;
- no route reaches it;
- billing refuses it;
- no virtual agent uses the profile.
Try it first: dry_run
Add ?dry_run=true to either call. FireTone checks everything a real call
would and places nothing:
- the phone that should ring first is registered;
- the number resolves;
- a route reaches it;
- there’s credit for it;
- the agent exists.
Hearing how it went
Callbacks
Acallback_url receives that call’s events as signed JSON POSTs, in the
same format as webhooks:
- What every event carries: your
referenceand therequest_id. - How they’re signed: with your organisation’s callback secret. Create
it once with
POST /integration/callback-secret(the secret is shown once), and verifyX-FireTone-Signatureexactly as for webhooks. Acallback_urlsent before the secret exists is refused with409 no_callback_secret. - Delivery: retried like webhooks.
GET /calls/{uuid}/callbackslists what was sent.
Asking
GET /call-requests/{request_id}returnsdialing,connected(with thecall_uuid),completed, orfailed(with why).GET /calls/{call_uuid}returns the call itself: live while it lasts, and from its record afterwards. That includes yourreferenceand the recording’s URL.
reference is also on the call’s record, so a CDR export names your
record without a lookup.