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

# Overview

> Give your AI agent the ability to take actions during live calls.

## What are tools?

When your AI phone agent talks to a caller, it can do more than have a conversation. It can take real actions during the call:

* Schedule a meeting on Cal.com when a caller wants to book time
* Create a contact in Salesforce when someone provides their info
* Send a Slack message to notify your team about an interested lead
* Call your own API to check order status or update a database

These actions are called **tools**. A tool is something your agent can do when the conversation calls for it.

> [!NOTE]
>
> If you used Bland before agents, you may know **Custom Tools**. They are now legacy. Tools replace them, and you attach a tool to an agent by tagging it in a prompt.

For the full reference on building tools in the agent builder, see [Tools](https://docs.bland.ai/agents/tools.md). This page is a short orientation.

***

## Three kinds of tool

| Kind | Use it when |
| - | - |
| **Webhook** | You want to call an HTTP endpoint, such as your own API. This is the common case. |
| **Custom code** | A single HTTP call is not enough: you need to reshape a response, combine two services, or run a calculation. |
| **Integration** | You want to act on a service you have connected, like a CRM or calendar. |

Walkthroughs:

* [Integration Tools](https://docs.bland.ai/tutorials/tools/integration-tools.md): Cal.com, Salesforce, Slack, and others
* [Custom API Integration](https://docs.bland.ai/tutorials/tools/custom-api.md): your own endpoints, built as a webhook tool

***

## Where tools live

Set the sidebar selector to **All agents**, then open **Tools** under Resources. You get four tabs:

| Tab | What it holds |
| - | - |
| **Tools** | Every tool in the organization. |
| **Analytics** | How often each tool is called, and how often it fails. |
| **Secrets** | Credentials your tools use. See [Secrets](https://docs.bland.ai/tutorials/secrets.md). |
| **Connections** | Accounts you have linked, like a CRM. |

Inside an agent, **Tools** under Build lists only that agent's tools. See [Where tools live](https://docs.bland.ai/agents/tools.md#where-tools-live) for how the two scopes differ.

You connect an account once under Connections, then build as many tools on it as you need. One Salesforce connection can power a tool that creates a contact, another that creates a lead, and a third that creates an opportunity.

***

## How a tool gets its inputs and outputs

**Inputs.** In a webhook tool, write a variable like `{{email}}` anywhere a value should change per call. For each variable, choose **Add input variable** to have the agent fill it from the conversation. Leave it alone and it resolves from variables already on the call instead. See [Build a webhook tool](https://docs.bland.ai/agents/tools.md#build-a-webhook-tool).

**Outputs.** **Output fields** name the parts of the response the agent can use. Every tool starts with `ok`, `message`, and `data`. Keep `ok` checked: it is the only signal that the call failed.

Checking at least one output field makes the tool wait for a response. Check nothing and the tool fires and moves on. That suits logging and notifications, and it is wrong for anything the agent needs an answer from.

To use an output in a prompt, write its bare name, like `{{booking_id}}`.

***

## Give a tool to an agent

Building a tool does not give it to an agent. In the agent's **Prompt**, type `@` and pick the tool by name. The tool then appears under **Tool references** below the prompt.

Tools attach per prompt. A tool tagged in the agent's prompt does not follow the agent into a pathway, so tag it there too if the pathway needs it. Tagging also attaches a copy of the tool. See [Tag a tool into a prompt](https://docs.bland.ai/agents/tools.md#tag-a-tool-into-a-prompt) before you edit a tool an agent already uses.

The tool's description is what the agent reads to decide when to call it. Write the trigger, not the mechanism:

```text theme={null}
Use this tool when the caller wants to schedule a demo call
and has confirmed they're available next week.
Don't use for general questions about the product.
```

***

## Monitoring

The **Analytics** tab at All agents shows call volume and failure rate per tool. Watch the failure rate. A tool that fails quietly leaves the agent improvising mid-call.

To pull execution logs programmatically, including logs for a single call by `call_id`, use the [Tool Execution Logs](https://docs.bland.ai/api-v2/get/tools-logs.md) endpoint.

***

## API reference

Manage tools programmatically using the Tools API:

* **[Create Tool](https://docs.bland.ai/api-v2/post/tools.md):** Create a new integration tool connected to Slack, a custom API, or any supported integration.
* **[List Tools](https://docs.bland.ai/api-v2/get/tools.md):** Retrieve a paginated list of your tools.
* **[Update Tool](https://docs.bland.ai/api-v2/post/tools-tool-id.md):** Update any field on an existing tool. All fields are optional.
* **[Tool Execution Logs](https://docs.bland.ai/api-v2/get/tools-logs.md):** Query per-execution logs across your tools.
* **[Execution Stats](https://docs.bland.ai/api-v2/get/tools-logs-stats.md):** Aggregate execution metrics grouped by integration, status, date, and more.

***

Docs for agents: [llms.txt](https://docs.bland.ai/llms.txt)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.