Skip to main content
An action is a discrete operation an agent performs during a conversation: play a message, transfer the call, query a knowledge base, run a workflow, and more. Actions never run on their own. They are grouped into a tool that the LLM decides to call, so the model controls when an ability fires while the configuration controls what it does.

The tool model

A tool (ToolCall) exposes a single function to the LLM. When the model calls it, the agent runs the tool’s ordered list of actions, then renders an output the model can read back.
FieldTypeDefaultDescription
namestringrequiredFunction name the LLM invokes.
descriptionstringrequiredWhen to call the tool. The model uses this to decide.
propertiesobject{}JSON-Schema-style argument definitions the LLM fills in.
requiredstring[][]Argument names that must be supplied.
actionsAction[]requiredOrdered list of actions run when the tool is called.
actions_on_errorAction[][]Actions run if one of the main actions raises an error.
outputstringnullTemplate rendered and returned to the LLM after the actions run.
Actions execute in order. Each action whose condition passes runs; its result is merged into the tool’s data so later actions and the output template can reference it.
Every action carries an optional condition expression. When set, the action runs only if the expression evaluates truthy against the current tool-call data. Leave it empty to always run the action.

Action catalog

Actions form a discriminated union keyed on type. The full set:
typeTitlePurpose
play_messagePlay MessageSpeak or send a message to the contact.
cold_transferCold TransferHand the call to another number and drop off.
warm_transferWarm TransferBrief a supervisor, then connect them to the caller.
conferenceAdd to ConferenceAdd the call to a conference bridge.
dtmfSend DTMFSend touch-tone digits or letters.
hangupHangupEnd the call.
leave_roomLeave RoomRemove the agent from the room.
waitWaitPause for a number of seconds.
update_endpointingUpdate EndpointingAdjust turn-detection timing mid-call.
play_audioPlay AudioPlay an audio file (loopable).
stop_audioStop AudioStop a currently playing audio file.
workflowWorkflowRun a workflow by reference or inline.
knowledge_baseKnowledge BaseRun a RAG query against a dataset.
Transfers, conferencing, and DTMF have their own page. See /agents/transfers for the call-routing actions (cold_transfer, warm_transfer, conference, dtmf).

play_message

FieldTypeDefaultDescription
messagestringrequiredThe message text. Supports templating.
generateboolfalseGenerate a paraphrase instead of speaking the literal text.
wait_for_playoutbooltrueWait for the message to finish before the next action.
allow_interruptionsbooltrueAllow the contact to interrupt the message.
conditionstringnullRun only if this expression is truthy.

workflow

Runs a workflow either by reference (workflow_id + workflow_version) or as an inline definition. The two sources are mutually exclusive.
FieldTypeDefaultDescription
workflow_idstringnullID of a saved workflow. Requires workflow_version.
workflow_versionintnullVersion of the saved workflow.
initial_stepstringnullStep to start at. Required when using a reference; defaults to trigger for inline definitions.
definitionobjectnullInline workflow definition. Mutually exclusive with workflow_id/workflow_version.
reject_on_errorboolfalseIf true, abort the conversation when the workflow fails.
conditionstringnullRun only if this expression is truthy.
You must supply either workflow_id + workflow_version or a non-empty inline definition, but not both. When using a reference, initial_step is required.
The workflow runs synchronously. The tool-call arguments and conversation data are passed as input, and the workflow’s output (or its context if there is no output) becomes the action result.

knowledge_base

Runs a retrieval query against a knowledge base dataset and returns the top matches as content and score pairs.
FieldTypeDefaultDescription
dataset_idstringrequiredThe dataset to query.
querystringrequiredQuery text. Supports templating against tool-call data.
top_nint5Number of results to return.
conditionstringnullRun only if this expression is truthy.

wait

FieldTypeDefaultDescription
secondsfloat1.0How long to pause.
conditionstringnullRun only if this expression is truthy.

play_audio / stop_audio

FieldTypeDefaultDescription
audio_urlstringrequiredURL to an MP3 or WAV file (play_audio only).
loopboolfalseLoop the file until stopped (play_audio only).
conditionstringnullRun only if this expression is truthy.
stop_audio takes only condition and stops the currently playing file.

update_endpointing

Adjusts turn-detection timing mid-call. Both delays are optional; leave one unset to keep its current value.
FieldTypeDefaultDescription
min_endpointing_delayfloatnullMinimum endpointing delay in seconds.
max_endpointing_delayfloatnullMaximum endpointing delay in seconds.
conditionstringnullRun only if this expression is truthy.

hangup / leave_room

Both take only condition. hangup ends the call; leave_room removes the agent from the room.

Which actions run on which channel

The action catalog is built for telephony. On the async text and email engine there is no audio playout or call control, so only three action types execute:
Async text / email engine
├── workflow         ✓ runs
├── knowledge_base   ✓ runs
├── play_message     ✓ runs (returns the rendered text as output)
└── everything else  ✗ skipped with a warning
ActionVoice / telephonyAsync text / email
play_message✓ (rendered text returned, no audio)
workflow
knowledge_base
cold_transferskipped
warm_transferskipped
conferenceskipped
dtmfskipped
hangupskipped
leave_roomskipped
waitskipped
update_endpointingskipped
play_audioskipped
stop_audioskipped
On async channels, play_message has no audio playout. The rendered message text is returned as the action output so the tool’s output template can reference it. Any voice-only action is skipped and logged, not failed.

Tools

How the LLM decides to call a tool and what arguments it passes.

Transfers and call routing

Cold transfer, warm transfer, conference, and DTMF in depth.

Workflows

Build the workflows a workflow action runs.

Knowledge bases with agents

Connect datasets a knowledge_base action can query.