10 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.
Predictive session on a queue
predictive_dialer.find_for_queueread
Find the predictive dialing session currently open on a call queue, if there is one. A queue can only have one at a time, so this is how to tell whether dialing is already under way before starting it.
Over MCP the same operation is the tool predictive_dialer_find_for_queue at https://app.chirply.io/api/mcp, same bearer token, same input.
Predictive session status
predictive_dialer.getread
Read one predictive dialing session: how many lines are up, how many people have been dialed, picked up, been connected to a rep or been dropped, the live dropped-call rate, and who is seated.
Over MCP the same operation is the tool predictive_dialer_list at https://app.chirply.io/api/mcp, same bearer token, same input.
Calls from a predictive session
predictive_dialer.list_callsread
List the individual call attempts a predictive session has made, newest first, with how each one ended — connected to a rep, answering machine, no answer, dropped because no rep was free, or blocked because the number is on the do-not-contact list.
Over MCP the same operation is the tool predictive_dialer_list_calls at https://app.chirply.io/api/mcp, same bearer token, same input.
Pause dialing
predictive_dialer.pausewrite
Stop a predictive session from placing any NEW calls. Calls already up are left alone — nobody mid-conversation is cut off, and phones already ringing keep ringing. Seats stay open, so resuming picks straight back up.
Over MCP the same operation is the tool predictive_dialer_pause at https://app.chirply.io/api/mcp, same bearer token, same input.
Save how a predictive call went
predictive_dialer.record_outcomewrite
Record the outcome of one predictive call: its disposition and a note. Writes the call log, stamps the person's queue entry as called, runs whatever actions the disposition is wired to, and puts the rep who took it back in rotation. This is what the console's wrap-up form does — use it when something else took the notes.
Parameters
Field
Type
Required
Description
call_id
string (uuid)
required
The predictive call attempt's id (from predictive_dialer.list_calls), not the call log id.
disposition_id
string (uuid)
optional
The outcome to record. Omit to save a note with no outcome.
Over MCP the same operation is the tool predictive_dialer_record_outcome at https://app.chirply.io/api/mcp, same bearer token, same input.
Resume dialing
predictive_dialer.resumewriteconfirm
Put a paused predictive session back to work. Real outbound calls start again within seconds for every rep who is free, billed to its own Twilio account.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Over MCP the same operation is the tool predictive_dialer_resume at https://app.chirply.io/api/mcp, same bearer token, same input.
Change how hard it dials
predictive_dialer.set_pacingwrite
Change a running session's pacing. Raising lines_per_agent reaches more people per hour and drops more calls; lowering it does the reverse. Takes effect on the next pass, within a couple of seconds. Setting lines_per_agent by hand also switches pacing to 'fixed', so the automatic throttle stops overriding the number you chose — pass pacing_mode 'adaptive' to hand it back.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The predictive session to adjust.
lines_per_agent
number
optional
How many phones to ring for each rep who is free right now. 1 never drops a call (one line, one rep); 1.5 is the usual balance; 3 is for cold lists and will drop calls. Ignored for reps who are already talking.
max_lines
integer
optional
Hard ceiling on how many calls can be ringing at once, whatever the ratio works out to. Guards against a large team accidentally putting a hundred lines up.
abandon_target_pct
number
optional
The most calls this session may drop, as a percentage of the people who actually pick up. US telemarketing rules cap this at 3%, which is the default. 0 means never drop anybody.
pacing_mode
"fixed" | "adaptive"
optional
adaptive walks the ratio down on its own whenever too many calls are dropped, and back up when it is comfortably under. fixed holds exactly the ratio you set.
wrap_up_seconds
integer
optional
Seconds a rep gets to save their notes after a call before another one is put through. 0 sends the next call the moment the last one ends.
Over MCP the same operation is the tool predictive_dialer_set_pacing at https://app.chirply.io/api/mcp, same bearer token, same input.
Start the predictive dialer
predictive_dialer.startwriteconfirm
Open a predictive dialing session on a call queue. Once a rep takes a seat in the console, the server begins placing REAL outbound calls — several per free rep — from the account's own Twilio number and billed to its own Twilio account. It rings people it screens and drops (a small share hear a recorded apology and nothing else), so it is a live outbound campaign, not a draft. A session with nobody seated dials nobody, so this is safe to call ahead of a shift. One session per queue: called again on a queue that already has one, it returns the existing session rather than starting a second. Settings default to the queue's own saved dialer settings; anything passed here overrides them for this session only.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
queue_id
string (uuid)
required
The call queue whose people should be dialed.
from_number_id
string (uuid)
optional
Which of the account's own phone numbers to call from. Defaults to the oldest active number.
lines_per_agent
number
optional
How many phones to ring for each rep who is free right now. 1 never drops a call (one line, one rep); 1.5 is the usual balance; 3 is for cold lists and will drop calls. Ignored for reps who are already talking.
max_lines
integer
optional
Hard ceiling on how many calls can be ringing at once, whatever the ratio works out to. Guards against a large team accidentally putting a hundred lines up.
abandon_target_pct
number
optional
The most calls this session may drop, as a percentage of the people who actually pick up. US telemarketing rules cap this at 3%, which is the default. 0 means never drop anybody.
pacing_mode
"fixed" | "adaptive"
optional
adaptive walks the ratio down on its own whenever too many calls are dropped, and back up when it is comfortably under. fixed holds exactly the ratio you set.
wrap_up_seconds
integer
optional
Seconds a rep gets to save their notes after a call before another one is put through. 0 sends the next call the moment the last one ends.
ring_seconds
integer
optional
How long each phone rings before the attempt is given up as no answer.
amd_enabled
boolean
optional
Screen out answering machines so voicemail never reaches a rep. Costs the person who answers about a second of silence while the carrier works out which they are. On by default.
machine_action
"hangup" | "voicemail"
optional
What to do when a machine answers: hang up, or speak `voicemail_message` as a voicemail drop. A drop is a real message left on a real person's phone.
voicemail_message
string
optional
The script spoken onto voicemail when machine_action is 'voicemail'. Leave empty to hang up instead.
ai_mode
"off" | "screen_then_transfer" | "ai_only"
optional
Who talks to the person first. 'off' sends a live answer straight to a rep. 'screen_then_transfer' has an AI agent answer everyone, qualify them, and hand the good ones over — which means no call is ever dropped, because something always picks up. 'ai_only' lets the AI handle the whole call and never involves a rep.
ai_agent_id
string (uuid)
optional
The AI agent that answers. Required whenever ai_mode is not 'off'. Its own goal and script decide when it hands over.
ai_no_agent_action
"hold" | "book_callback" | "wrap_up"
optional
What the AI does when it wants to hand over and every rep is busy. 'hold' keeps it talking until somebody frees up (nobody is dropped, but it costs AI minutes). 'book_callback' offers a time and ends politely. 'wrap_up' finishes and leaves the person on the queue for a human to ring later.
respect_quiet_hours
boolean
optional
Stop dialing outside 8am–9pm in `timezone`. Off by default, matching every other outbound path here.
timezone
string
optional
IANA timezone the calling window is measured in, e.g. America/Chicago. Only used when respect_quiet_hours is on.
Over MCP the same operation is the tool predictive_dialer_start at https://app.chirply.io/api/mcp, same bearer token, same input.
Stop dialing
predictive_dialer.stopwriteconfirm
End a predictive session for good. Every phone still ringing is HUNG UP mid-ring, every seat is closed, and the people who were being dialed go back to waiting on the queue. Conversations already in progress are not interrupted. This cannot be undone — a new session has to be started to carry on.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.