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

# Overview: Tools

> Give your agents additional capabilities while maintaining a natural conversation flow.

export const ToolsPossibilities = ({}) => <div>
    Tools in Ultravox (also known as function calling) are a powerful way to extend your agents' capabilities by connecting them to external services and systems. At their core, tools are simply functions that agents can invoke to perform specific actions or retrieve information.
    <br /><br />
    Ultravox includes <a href="/tools/built-in-tools">built-in tools</a> and you can <a href="/tools/http-vs-client-tools">create custom tools</a>.
    <br /><br />
    Here are some of the things you can do with tools:

  <CardGroup cols={2}>
    <Card title="Communicate with the Outside world" icon="earth-americas">
      Lookup the weather, get movie times, create calendar events, or send emails.
    </Card>
    <Card title="Order Lookup" icon="cart-shopping">
      Lookup orders, backordered items, or provide shipment updates.
    </Card>
    <Card title="Knowledge Base" icon="circle-info">
      Consult product and support documentation for contextual support.
    </Card>
    <Card title="Create Support Case" icon="message-question">
      Open tailored support cases for human follow-up.
    </Card>
    <Card title="Transfer Call" icon="swap">
      Hand-off or escalate calls to human support agents.
    </Card>
    <Card title="End Call" icon="phone-hangup">
      End calls due to user inactivity or after successful resolution.
    </Card>
  </CardGroup>
  <br />
  Any functionality you can encapsulate in a function can be exposed to your agents as a tool. Addtionally, unlike other LLM APIs where you have to handle tool calls yourself, Ultravox actually executes your tools during live conversations, enabling real-time interactions with external systems, databases, and APIs.
  </div>;

<ToolsPossibilities />

## Types of Tools

### Built-in Tools

Ultravox provides several ready-to-use tools for common functionality:

* **queryCorpus**: Retrieve information from knowledge bases.
* **playDtmfSounds**: Play dial tones for telephony applications.
* **leaveVoicemail**: Leaves voicemail message and ends the call.
* **hangUp**: End calls programmatically.

[Learn more about Built-in Tools →](/tools/built-in-tools)

### Custom Tools

Create your own tools to integrate with any external system or API. Custom tools can:

* Send emails or notifications
* Look up customer information
* Process payments
* Update databases
* Integrate with third-party services

[Learn more about Custom Tools →](/tools/custom/overview)

## Tool Implementation Types

**HTTP Tools**: Most common type - your tool runs on your server and Ultravox calls it via HTTP.

**Client Tools**: Run directly in the client application using our SDKs.

[Compare HTTP vs Client Tools →](/tools/custom/http-vs-client-tools)

## Tool Persistence

**Durable Tools**: Created once via API or the web app, reused across calls and agents. Best for production.

**Temporary Tools**: Defined per-call, great for testing and rapid iteration.

[Learn about Durable vs Temporary Tools →](/tools/custom/durable-vs-temporary-tools)

## Getting Started with Tools

Ready to build your first tool? [Check out the Tools Quickstart →](/gettingstarted/quickstart/tools)

## Keep Building

* Learn about [Built-in Tools](./built-in-tools) you can use.
* Dig into [HTTP vs. Client Tools](./custom/http-vs-client-tools) to understand the differences.
* Read about [Durable vs. Temp Tools](./custom/durable-vs-temporary-tools).
