Core concepts
Agents, campaigns, contacts and calls, and the states each moves through.
Agents
An agent is the AI on the phone. It has:
- a name it introduces itself with, and a greeting spoken word for word when the call connects;
- a prompt describing who it is and how to handle the call, plus an optional call purpose;
- a voice and language (see
GET /voices); - tools it may use during a call, such as taking a message, scheduling a callback or placing an order;
- optionally, knowledge-base documents it answers questions from.
An agent's direction is outbound (it makes calls) or inbound (it answers a phone number).
Its status is offline, active or paused. Outbound campaigns can use any agent. An inbound
agent only answers calls while it is active.
Tools
| Tool | What the agent can do |
|---|---|
take_message | Record a message for your team. |
schedule_callback | Agree a better time to call back. |
transfer_call | Hand the call to a person. |
search_knowledge_base | Answer from your uploaded documents. |
gather_requirements | Save what the caller needs as a document in your knowledge base. |
place_order | Take an order; it arrives in the call's order_details. |
summarize_call | Record a summary and outcome at the end of the call. |
check_availability, book_appointment | Find an open slot and book it on your connected booking calendar. |
lookup_in_sheet, append_to_sheet | Read from or add rows to a connected Google Sheet. |
detected_answering_machine | Leave a short message and hang up when voicemail answers. |
An empty tools list means every tool is available. Ending the call is always available.
Campaigns
A campaign is one agent calling a list of contacts. Its status moves through:
| Status | Meaning |
|---|---|
draft | Created, nothing dialed yet. |
running | Launched; contacts are being called. |
paused | Dialing stopped. Launch again to resume. |
completed | Every contact has been called. |
campaign_prompt adds instructions for one campaign only, for example "Mention the Diwali
offer", without editing the agent.
Contacts
Each person in a campaign. Their status:
| Status | Meaning |
|---|---|
pending | Not dialed yet. |
initiated | Dialed; the call is ringing or in progress. |
completed | The call happened. |
no_answer | Nobody picked up. |
busy | The line was busy. |
failed | The call couldn't be placed or connected. |
Anything you send in a contact's extra is stored with it and returned on its calls.
Calls
One conversation, made or answered by an agent. A call has a call_id, a status, timings and
duration_seconds, and, when the agent records them, an outcome and a summary. Fetch a single
call for its full transcript. If it was recorded, has_recording is true and
GET /calls/{call_id}/recording-url returns a temporary link to the audio.