Skip to main content

Overview

Tool nodes execute server-side tools from your tool library — API calls, database queries, and external integrations. They reference existing tool templates that can be reused across multiple agents and flows. Key characteristic: Tool nodes execute server-side actions and then transition to the next node based on results. For client-side browser actions, use the Web Tool Node instead.

When to Use

Use tool nodes to:
  • Look up customer data from CRM systems
  • Check inventory, availability, or status
  • Submit forms or create records
  • Process payments or transactions
  • Send notifications (email, SMS, webhooks)
  • Retrieve data from databases
  • Execute business logic on external systems
  • Call any HTTP API with reusable configuration
Use Tool Node when:
  • The tool will be used in multiple places
  • The tool needs comprehensive documentation
  • The tool requires consistent configuration
  • You want centralized tool management
Use Web Tool Node instead when:
  • You need client-side actions in the browser (UI navigation, modals, page interactions)
  • The tool should reuse existing frontend API integrations
  • The agent is deployed via the Voice Agents SDK on a website

Core Configuration

Basic Setup

Tool Reference Architecture: The tool itself (toolId, toolType, overrides, version) is stored in agentSettings.tools array with tool.nodeId matching this node’s ID. The node only contains execution settings and parameter overrides.

Selecting a Tool

  1. Add a Tool Node to your flow
  2. Click Select Tool in the node configuration
  3. Choose from your tool library
  4. Tool details auto-populate (name, description, parameters)
What happens behind the scenes:
  • Selecting a tool creates an entry in agentSettings.tools array
  • This entry has nodeId set to this node’s ID to link them
  • Tool configuration (toolId, toolType, persistentId, version, overrides) is stored in that entry
  • The node itself only contains execution settings (timeout, error handling, output mapping, parameters)
Available tool types:
  • FUNCTION: Server-side HTTP API requests (full override support)
  • MCP: Model Context Protocol tools (no overrides allowed)
[→ Learn more about tool types and architecture/features/tools)

Parameter Mapping

Map flow variables and static values to tool input parameters.

Static Values

Hardcoded values that never change.

Variable References

Use data collected earlier in the flow using {{variable_name}} syntax.

System Variables

Reference built-in system variables.
→ See all system variables: Variables Guide

Mixed Static and Variables

Combine both for flexible configurations.

Parameter Types

Tool parameters can have different data types:
Example with mixed types:

Output Mapping

Extract data from tool responses into flow variables using JSON path syntax.

JSON Path Syntax

Use $.path.to.field notation to reference fields in the response. Tool response:
Output mapping:

Using Extracted Variables

Variables extracted via output mapping become available immediately in subsequent nodes.

Array Access

Access array elements by index. Response:
Mapping:

Nested Objects

Navigate deeply nested structures.

Error Handling

Configure how the flow responds when tool execution fails. Flow continues even if tool fails. Best for optional operations.
Use when:
  • Tool is non-critical (analytics, logging)
  • Flow can proceed without tool result
  • Degraded experience is acceptable

Retry (For Intermittent Failures)

Automatically retries failed tool calls.
Use when:
  • API has intermittent failures
  • Network issues are common
  • Tool is important but can fail temporarily

Fail (For Critical Operations)

Stops flow execution and ends call when tool fails.
Use when:
  • Tool is critical to conversation
  • Cannot proceed without successful result
  • Failure requires human intervention

Error Messages

Provide clear, user-friendly error messages.

Response Handling

Default Behavior (Silent)

By default, tool nodes execute silently—no message is spoken about the tool execution.

Custom Response Override

Speak a custom message after tool execution using extracted variables.
Variable interpolation:
  • Use {{variable_name}} syntax
  • Variables from output mapping are available
  • Variables from earlier nodes are available
  • System variables are available

Processing Message

Show message while tool executes (especially for slow APIs).
Static vs Prompt: Static: Exact message every time.
Prompt: AI generates contextual message.

Variable Extraction

In addition to output mapping (which extracts from tool responses), tool nodes support conversation-based variable extraction.

When to Use

Use variable extraction when:
  • Tool requires user confirmation before executing
  • You want to ask questions before calling the tool
  • Tool needs additional context from conversation

Configuration

Note: Variable extraction happens during conversation before tool execution. Most tool nodes use output mapping instead.

Timeout Configuration

Set maximum wait time for tool execution.
Recommendations:
  • Fast APIs (< 2s): 5000ms
  • Standard APIs: 10000ms
  • Slow operations: 20000-30000ms
When timeout occurs:
  • Follows onErrorBehavior setting
  • Displays errorMessage if configured
  • Can continue, retry, or fail based on configuration
Long timeouts create poor user experience. Consider async tools or processing messages for slow operations.

Use Cases & Examples

Example 1: Customer Lookup

Scenario: Look up customer by phone number.

Example 2: Check Inventory

Scenario: Verify product availability before taking order.

Example 3: Process Payment

Scenario: Charge customer credit card.

Example 4: Send Notification

Scenario: Send confirmation email after booking.

Example 5: Multi-Step Database Query

Scenario: Look up customer, then fetch their orders.

Example 6: Conditional Tool Execution

Scenario: Only call pricing API for premium members.

Transitions

Tool nodes support all transition types:

Natural Language

Evaluate conversation context.
Note: Tool nodes don’t have conversations by default. Natural language transitions evaluate context from previous nodes.

Structured Equation

Route based on extracted variables.

Always

Fallback transition.
→ Learn More: Transitions

Troubleshooting

Issue: Tool not appearing in selection

Solution:
  1. Verify tool exists in tool library
  2. Check tool is active
  3. Refresh the page
  4. Verify tool is in current project

Issue: Parameters not being sent correctly

Solution:
  1. Check variable names match exactly (case-sensitive)
  2. Verify variables exist (were extracted earlier)
  3. Review parameter type (string vs number vs boolean)
  4. Test with static values first

Issue: Output mapping not extracting variables

Solution:
  1. Verify JSON path syntax: $.path.to.field
  2. Check actual API response format
  3. Test JSON path with tool response
  4. Ensure response contains expected fields

Issue: Tool timeout

Solution:
  1. Increase timeout value
  2. Check API performance
  3. Add retry logic
  4. Consider async tools
  5. Add processing message

Issue: Variables not available in next node

Solution:
  1. Verify output mapping is configured
  2. Check variable names match exactly
  3. Ensure tool completed successfully
  4. Review flow transitions

Schema Reference


Next Steps

Web Tool Node

Execute client-side browser tools

Create Tools

Build reusable tool templates

Router Node

Route based on tool results

Variables

Master variable usage and mapping

Transitions

Control flow after tool execution