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

# Tools

> Definitions for tools, with explanations of how each term fits into Voiceflow and links to the related documentation.

## Tools

### Tool

Something a playbook can call mid-conversation: functions, API tools, MCP tools, integrations, and the
built-in system tools. Each also has a step form for use at a fixed point in a workflow.

**Also asked as:**
- things the assistant can do besides talking
- let the agent take an action in another system
- what can the agent actually do besides chat
- actions the assistant can take in other systems

**Related:** [Agent tools](/docs/resources/glossary/build/agent-setup#agent-tools) · [System tools](#system-tools)

**Documented in:** [Agent tools](/docs/documentation/build/tools/overview)

### Function

Custom JavaScript that runs in Voiceflow's sandbox and returns through a named path. Code runs
remotely in an isolated sandbox; it communicates back only through its return value (`outputVars`,
`next`, `trace`) and can make HTTP requests with `fetch`.

**Also asked as:**
- write custom code the agent can run
- a JavaScript tool that calls an external API
- return different outcomes from my own code

**Related:** [Function step](/docs/resources/glossary/build/steps#function-step) · [Function path](#function-path) · [Function variable](#function-variable) · [Code step](/docs/resources/glossary/build/steps#code-step)

**Documented in:** [Function tool › Creating a Function tool](/docs/documentation/build/tools/function-tool#creating-a-function-tool) · [Function tool › How function code works](/docs/documentation/build/tools/function-tool#how-function-code-works) · [Function tool › Making API requests with fetch](/docs/documentation/build/tools/function-tool#making-api-requests-with-fetch)

### Function tool

A function exposed to a playbook as something it can call. The agent calls it on its own when the
conversation requires it; in a workflow the same function runs through a Function step.

**Also asked as:**
- let the assistant run my custom code when it needs to
- expose a function to a skill
- give a playbook access to my JavaScript
- custom logic the agent can invoke

**Related:** [Function](#function) · [Function step](/docs/resources/glossary/build/steps#function-step)

**Documented in:** [Function tool › Using the Function tool](/docs/documentation/build/tools/function-tool#using-the-function-tool) · [Function tool › In a playbook](/docs/documentation/build/tools/function-tool#in-a-playbook)

### Function path

One of the named exits a function can return through. Paths are what let a function branch rather
than just return a value. They apply in Function steps only, not inside a playbook.

**Also asked as:**
- make my function send the flow one way or another
- success and failure exits from custom code
- multiple outcomes from one function
- route the workflow based on my code's result

**Related:** [Function](#function) · [Function step](/docs/resources/glossary/build/steps#function-step)

**Documented in:** [Function tool › next: choosing a path](/docs/documentation/build/tools/function-tool#next-choosing-a-path)

### Function variable

An input or output a function declares. Inputs are passed in when it runs (`args.inputVars`); outputs
are written back for later steps to read (`outputVars`).

**Also asked as:**
- pass a value into my code and get one back
- read the function's result in a later step
- declare inputs and outputs for my function
- what a function receives and returns

**Related:** [Function](#function) · [Variable](/docs/resources/glossary/knowledge-and-data#variable)

**Documented in:** [Function tool › Accessing input variables](/docs/documentation/build/tools/function-tool#accessing-input-variables) · [Function tool › outputVars: setting variables](/docs/documentation/build/tools/function-tool#outputvars-setting-variables)

### API tool

A saved HTTP request an agent can make, tested from the editor and used in a playbook (the agent
decides when) or a workflow (the API step, at a fixed point).

**Also asked as:**
- call a REST endpoint from the assistant
- make an HTTP request to our own backend
- connect the bot to an API that has no prebuilt connector

**Related:** [API step](/docs/resources/glossary/build/steps#api-step) · [API tool variable](#api-tool-variable) · [Asynchronous tool call](#asynchronous-tool-call) · [Secret](/docs/resources/glossary/knowledge-and-data#secret)

**Documented in:** [API tool › Creating an API tool](/docs/documentation/build/tools/api-tool#creating-an-api-tool) · [API tool › Testing the API tool](/docs/documentation/build/tools/api-tool#testing-the-api-tool) · [API tool › Using the API tool](/docs/documentation/build/tools/api-tool#using-the-api-tool)

### API tool variable

An input an API tool substitutes into its request, so one saved request can serve many calls.

**Also asked as:**
- put a variable into the request URL or body
- parameterise a saved request
- a placeholder in the request that changes per call
- dynamic values in an API request

**Related:** [API tool](#api-tool)

**Documented in:** [API tool › Creating an API tool](/docs/documentation/build/tools/api-tool#creating-an-api-tool)

### Asynchronous tool call

Running an API or Function tool in the background so the conversation continues immediately: fire
and forget when the response is not needed, deferred response when it still matters. The async toggle
is set per instance, not per tool.

**Also asked as:**
- don't make the visitor wait for a slow request
- run a call in the background and carry on talking
- log something without holding up the reply

**Related:** [API tool](#api-tool) · [Function](#function)

**Documented in:** [API tool › Running API tools asynchronously](/docs/documentation/build/tools/api-tool#running-api-tools-asynchronously) · [Function tool › Running Function tools asynchronously](/docs/documentation/build/tools/function-tool#running-function-tools-asynchronously)

### Integration

Calls a third-party service such as Salesforce, Shopify or Zendesk through a prebuilt connector:
Airtable, Gmail, Google Sheets, HubSpot, Make, Salesforce, Shopify, Twilio and Zendesk each expose a
set of actions.

**Also asked as:**
- connect our CRM or helpdesk to the assistant
- a prebuilt connector to a third-party app
- send an email or create a ticket from the bot

**Related:** [Integration step](/docs/resources/glossary/build/steps#integration-step) · [Tool](#tool)

**Documented in:** [Agent tools › Available integrations](/docs/documentation/build/tools/overview#available-integrations) · [Agent tools › Setting up an integration](/docs/documentation/build/tools/overview#setting-up-an-integration) · [Airtable tool](/docs/documentation/build/tools/airtable-tool) · [Gmail tool](/docs/documentation/build/tools/gmail-tool) · [Google Sheets tool](/docs/documentation/build/tools/google-sheets-tool) · [HubSpot tool](/docs/documentation/build/tools/hubspot-tool) · [Make tool](/docs/documentation/build/tools/make-tool) · [Salesforce tool](/docs/documentation/build/tools/salesforce-tool) · [Twilio tool](/docs/documentation/build/tools/twilio-tool) · [Zendesk tool](/docs/documentation/build/tools/zendesk-tool)

### System tools

Native capabilities built into Voiceflow that need no setup: knowledge base search, web search,
buttons, cards, carousels, skip turn, end and call forward. Enabled by a toggle at the agent level
(then available in every playbook) or per playbook, where a local override can change a tool's
settings and trigger.

**Also asked as:**
- the built-in tools the assistant comes with
- switch on web search or buttons for the agent
- change a built-in tool's behaviour in one playbook only

**Related:** [Knowledge base tool](#knowledge-base-tool) · [Buttons tool](#buttons-tool) · [Web search](#web-search) · [Skip turn](#skip-turn) · [End tool](#end-tool)

**Documented in:** [System tools › Enabling system tools](/docs/documentation/build/tools/system-tools#enabling-system-tools) · [System tools › Local overrides](/docs/documentation/build/tools/system-tools#local-overrides)

### Knowledge base tool

The system tool that searches the knowledge base to answer a question. Configurable: the trigger, a
custom query, query re-writing, the chunk limit (1–10, default 3), metadata filtering, tool messages,
and source URLs in the reply.

**Also asked as:**
- make the assistant answer from our uploaded documents
- control how many passages the bot pulls per question
- show where an answer came from

**Related:** [Knowledge base](/docs/resources/glossary/knowledge-and-data#knowledge-base) · [Chunk](/docs/resources/glossary/ai-terms#chunk) · [Metadata](/docs/resources/glossary/knowledge-and-data#metadata)

**Documented in:** [System tools › Knowledge base](/docs/documentation/build/tools/system-tools#knowledge-base) · [Querying the knowledge base › Configuring the knowledge base tool](/docs/documentation/build/querying-the-knowledge-base#configuring-the-knowledge-base-tool)

### Buttons tool

The system tool that lets the agent generate clickable options in its replies, so users choose rather
than type.

**Also asked as:**
- let the AI offer quick-reply choices on its own
- generated buttons in an agentic reply
- the assistant suggests options to tap
- AI-generated choice buttons

**Related:** [Buttons step](/docs/resources/glossary/build/steps#buttons-step) · [System tools](#system-tools)

**Documented in:** [System tools › Buttons](/docs/documentation/build/tools/system-tools#buttons)

### Cards tool

The system tool that lets the agent build rich cards — title, description, image, action buttons —
from the conversation context.

**Also asked as:**
- the assistant shows a product tile it composed itself
- dynamic cards rather than a fixed Card step
- let the agent show a rich card with an image and buttons
- cards generated during the conversation

**Related:** [Card step](/docs/resources/glossary/build/steps#card-step) · [Carousels tool](#carousels-tool)

**Documented in:** [System tools › Cards](/docs/documentation/build/tools/system-tools#cards)

### Carousels tool

The system tool that lets the agent show several cards in a horizontally scrollable carousel when it
needs to present multiple options at once.

**Also asked as:**
- the bot lists several items to swipe through
- generated carousel of results
- the agent shows several products to scroll through
- a swipeable set of options in an agentic reply

**Related:** [Carousel step](/docs/resources/glossary/build/steps#carousel-step) · [Cards tool](#cards-tool)

**Documented in:** [System tools › Carousels](/docs/documentation/build/tools/system-tools#carousels)

### Web search

A system tool that lets the agent search the web for current information during a conversation.

**Also asked as:**
- search the internet when the answer isn't in our content
- give the bot live web results
- up-to-date information from outside the knowledge base
- let the assistant look something up on the web
- answer with current information from the internet
- browse for facts the knowledge base doesn't have

**Related:** [Knowledge base tool](#knowledge-base-tool) · [System tools](#system-tools)

**Documented in:** [System tools › Web search](/docs/documentation/build/tools/system-tools#web-search)

### Skip turn

A system tool that lets the agent stay quiet and wait for the user instead of replying — when someone
says "hold on" or "give me a second".

**Also asked as:**
- the bot should wait silently when told to hold on
- don't reply until the person is ready
- pause without sending a message

**Related:** [System tools](#system-tools) · [Global no-reply](/docs/resources/glossary/build/behaviour#global-no-reply)

**Documented in:** [System tools › Skip turn](/docs/documentation/build/tools/system-tools#skip-turn)

### Call forward tool

The system tool that forwards the active call to a phone number or SIP address when the agent decides
to. Voice projects only.

**Also asked as:**
- let the assistant transfer the call when it judges it necessary
- agentic transfer to a human line
- transfer the call to a person when the agent decides
- agentic call transfer to a SIP address

**Related:** [Call forward step](/docs/resources/glossary/build/steps#call-forward-step)

**Documented in:** [System tools › Call forward](/docs/documentation/build/tools/system-tools#call-forward)

### End tool

A system tool that lets the agent end the conversation when it judges it complete.

**Also asked as:**
- let the assistant close the chat itself
- the bot decides the conversation is over
- the agent ends the call on its own
- let the bot wrap up the conversation when done

**Related:** [End step](/docs/resources/glossary/build/steps#end-step)

**Documented in:** [System tools › End](/docs/documentation/build/tools/system-tools#end)

### HubSpot tool

Connects an agent to HubSpot actions through the configured integration.

**Documented in:** [HubSpot tool](/docs/documentation/build/tools/hubspot-tool)
