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. 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:
Transfers, conferencing, and DTMF have their own page. See /agents/transfers for the call-routing actions (cold_transfer, warm_transfer, conference, dtmf).

play_message

workflow

Runs a workflow either by reference (workflow_id + workflow_version) or as an inline definition. The two sources are mutually exclusive.
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.

wait

play_audio / stop_audio

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.

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:
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.