← All action domains

Predictive dialer

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.

Parameters

FieldTypeRequiredDescription
queue_idstring (uuid)requiredThe call queue to check.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.find_for_queue \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "queue_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe predictive session's id.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.get \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool predictive_dialer_get at https://app.chirply.io/api/mcp, same bearer token, same input.

List predictive sessions

predictive_dialer.listread

List this account's predictive dialing sessions, newest first — the open ones and, optionally, the finished ones with their final numbers.

Parameters

FieldTypeRequiredDescription
include_endedbooleanoptionalInclude sessions that have already finished. Off by default.
limitintegeroptionalHow many to return. Defaults to 25.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.list \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "include_ended": true,
    "limit": 1
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
session_idstring (uuid)requiredThe predictive session whose attempts to list.
state"queued" | "dialing" | "machine" | "abandoned" | "connected" | "completed" | … 4 moreoptionalOnly attempts that ended this way.
limitintegeroptionalHow many to return. Defaults to 50.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.list_calls \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe predictive session to pause.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.pause \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

FieldTypeRequiredDescription
call_idstring (uuid)requiredThe predictive call attempt's id (from predictive_dialer.list_calls), not the call log id.
disposition_idstring (uuid)optionalThe outcome to record. Omit to save a note with no outcome.
notesstringoptionalFree text about this call.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.record_outcome \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "call_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe predictive session to resume.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.resume \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

FieldTypeRequiredDescription
idstring (uuid)requiredThe predictive session to adjust.
lines_per_agentnumberoptionalHow 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_linesintegeroptionalHard 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_pctnumberoptionalThe 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"optionaladaptive 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_secondsintegeroptionalSeconds 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.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.set_pacing \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

FieldTypeRequiredDescription
queue_idstring (uuid)requiredThe call queue whose people should be dialed.
from_number_idstring (uuid)optionalWhich of the account's own phone numbers to call from. Defaults to the oldest active number.
lines_per_agentnumberoptionalHow 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_linesintegeroptionalHard 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_pctnumberoptionalThe 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"optionaladaptive 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_secondsintegeroptionalSeconds 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_secondsintegeroptionalHow long each phone rings before the attempt is given up as no answer.
amd_enabledbooleanoptionalScreen 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"optionalWhat 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_messagestringoptionalThe script spoken onto voicemail when machine_action is 'voicemail'. Leave empty to hang up instead.
ai_mode"off" | "screen_then_transfer" | "ai_only"optionalWho 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_idstring (uuid)optionalThe 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"optionalWhat 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_hoursbooleanoptionalStop dialing outside 8am–9pm in `timezone`. Off by default, matching every other outbound path here.
timezonestringoptionalIANA timezone the calling window is measured in, e.g. America/Chicago. Only used when respect_quiet_hours is on.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.start \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "queue_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe predictive session to end.

Example

curl -X POST https://app.chirply.io/api/v1/actions/predictive_dialer.stop \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool predictive_dialer_stop at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=predictive_dialer — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.