1. Create it, with somewhere to send results
result_callback_url needs your organisation’s callback
secret to exist, because results are signed with it.
2. Load people, with your ids and data
- A number FireTone doesn’t know becomes a new contact.
variablesare the call’s own:{{plan}}in the message or in the campaign’s workflow;- what an AI agent knows about the person;
- and they come back with the result.
- Do-not-call contacts are loaded as
suppressedand never rung. - Up to 10,000 items per request. Send more in batches, each with its own
Idempotency-Key.
3. Start, pause, resume, stop
- Wrong status:
409 wrong_status, naming the status the campaign must be in. - Can’t run:
422 not_ready, saying why (for example, no message or nobody left to call).
4. Results
A contact’s outcome is final when nothing more will be done. Either the call reached an end, or every attempt was used. Each final outcome is sent once, ascampaign.contact.completed, to result_callback_url and to any
webhook subscribed to it:
disposition gives the exact result. An agent’s disposition form answers
arrive as disposition_answers, and for an AI agent the conversation
summary.
- When nobody is left to call, the campaign completes and sends
campaign.completedwith the totals by outcome and by disposition. - Missed a callback?
GET /campaigns/{id}/resultspages through the same results, filtered byoutcome,disposition,referenceorsince.