Skip to content

Tools & Integrations

SpeakNode agents can call external APIs during conversations, enabling them to look up data, perform actions, and integrate with your systems.

Overview

Tools are HTTP-based integrations that the LLM can invoke during a conversation. When the agent decides it needs external data or needs to perform an action, it calls the configured tool and uses the result in its response.

Tool Types

Webhook Tools

Custom HTTP endpoints that the agent can call:

  • Method — GET, POST, PUT, DELETE
  • URL — endpoint address (supports variable substitution)
  • Headers — custom headers defined via OpenAPI schema
  • Body — request body defined via OpenAPI schema
  • Description — explains to the LLM when and how to use the tool

System Tools

Built-in tools provided by the platform (e.g., language detection, transfer).

Tool Configuration

Each tool is defined with an OpenAPI schema for its parameters:

  • Body schema — defines the JSON body structure the LLM should construct
  • Header schema — defines custom headers to send
  • Code — unique identifier used by the LLM to reference the tool

Speech During Tool Execution

Tools support configurable speech while executing:

  • Pre-tool speech — what the agent says before calling the tool (e.g., "Let me look that up...")
  • Progress speech — what the agent says while waiting for the response

Transfer Rules

Tools can include transfer rules that redirect the conversation:

  • Transfer to another agent — hand off to a different AI agent
  • Condition — when the transfer should happen

This enables multi-agent workflows where specialized agents handle specific topics.

How It Works

  1. The LLM decides to call a tool based on the conversation context
  2. The Python worker constructs the HTTP request from the OpenAPI schema
  3. The request is sent to the configured endpoint
  4. The response is passed back to the LLM
  5. The LLM incorporates the result into its response

Webhook Management

The platform also provides a separate webhook system for receiving events:

  • Configure webhook endpoints to receive session events
  • View webhook request history and payloads
  • Manage allowed paths and routing via the Webhook Receiver Client

Examples

CRM Lookup:

Tool: get_customer_info
Method: GET
URL: https://crm.example.com/api/customers/{{ customer_id }}
Description: Look up customer information by their ID

Order Status:

Tool: check_order_status
Method: POST
URL: https://api.example.com/orders/status
Body: { "order_id": "string" }
Description: Check the current status of a customer order