> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usesimple.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

> Connect agents to external APIs and built-in capabilities

Tools let your agents interact with external services and perform actions during a conversation. When an agent has tools configured, it can decide when to call them based on what is happening in the call.

## How Tools Work

Each tool is an HTTP request that the agent can trigger mid-conversation. When you create a tool, you define:

* **URL** — the endpoint the agent will call
* **Method** — GET, POST, PUT, PATCH, or DELETE
* **Headers** — any authentication headers or custom headers the request needs
* **Body format** — the JSON body template for the request
* **Description** — a plain-language explanation of when and why the agent should use this tool
* **Parameters** — the inputs the agent needs to provide when calling the tool

The description is important. It tells the agent when to invoke the tool, so write it clearly. For example: "Use this tool to look up the status of an order when the customer provides an order number."

## Example: Order Status Lookup

A support agent needs to check order status during calls. You would create a tool with:

* **URL**: `https://api.yourcompany.com/orders/lookup`
* **Method**: POST
* **Headers**: `Authorization: Bearer your-api-key`
* **Body**: `{"order_id": "{{order_id}}"}`
* **Description**: "Look up the status of a customer's order. Use this when the customer asks about their order or provides an order number."

During the call, when a customer says "Can you check on my order 12345?", the agent recognizes it should use this tool, sends the request, and reads the response back to the caller.

## Built-In Tools

In addition to custom API tools, agents have access to built-in capabilities:

### DTMF / IVR Navigation

The agent can press keys on the phone keypad. This is useful when your agent is calling into a system that has an IVR menu (press 1 for billing, press 2 for support, etc.).

### End Call

The agent can hang up and end the call when the conversation is complete or when instructed to do so.

### Call Transfer

The agent can transfer the call to another phone number or agent — either a blind transfer or an attended transfer.

## Tool Responses

When a tool returns a response, the agent reads the response body and uses it to continue the conversation. Make sure your API returns clear, readable data — the agent will try to communicate the results naturally to the caller.

If a tool call fails (timeout, error response), the agent handles it gracefully and continues the conversation.

## Best Practices

* **Write clear descriptions** — the agent relies on the description to know when to use each tool. Vague descriptions lead to the tool being used at the wrong time or not at all.
* **Keep responses concise** — return only the data the agent needs to communicate to the caller. Large payloads slow down the response.
* **Use tools per node** — in [flow-based agents](/agents), assign tools only to the nodes where they are relevant. This prevents the agent from using a tool at the wrong stage of the conversation.
* **Test with real calls** — make a few test calls to verify the agent uses the tool at the right moment and communicates the response naturally.

## Creating Tools

You can create and edit tools from the **Tools** tab of an agent in the Simple AI dashboard.
