Skip to main content
Tools let an agent act during or around a call. A tool can look up an order, transfer the caller, update another system, or process call data. A tool belongs to your organization. You can attach one tool to several agents and configure each attachment independently. Three separate choices define how a tool works: its source, its invocation, and its lifecycle.

Choose the source

Choose where the work runs. The source does not determine when the tool runs.

Choose the invocation

Invocation controls what starts the tool. You choose it on each attachment. The same API Request tool can be model-invoked on one agent and system-invoked on another. MCP tools are model-invoked. Only Custom Code, API Request, Current date and time, and User phone number support system invocation. See Run a tool on call events for the supported events and arguments.

Follow the lifecycle

Most tools you author follow this lifecycle:
  1. Create and edit the draft.
  2. Run a successful test and resolve the publish checks.
  3. Publish an immutable numbered version.
  4. Attach that version to an agent.
  5. Publish a new version and upgrade each attachment when you are ready.
An agent always uses the version pinned in its attachment. Editing or publishing a draft does not change a live agent. There are three exceptions:
  • Ready-to-use tools already have published versions, so you only attach them.
  • Send SMS requires Twilio credentials and a successful test before publishing.
  • Activating an n8n workflow creates, tests, publishes, and attaches its tool.

Use built-in tools

Add call control and runtime context without authoring a tool.

Create a Send SMS tool

Connect Twilio, test a message, and publish the tool.

Call an external API

Configure one authenticated HTTPS request.

Write a custom code tool

Run typed Python in an isolated environment.

Connect an MCP server

Discover and attach tools exposed by an MCP server.

Use n8n for tools

Turn an n8n workflow into an agent tool.