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

# Agent tools

> Enable native telephony functions and connect the agent to your APIs with HTTP tools.

**Tools** are the actions the agent can take during a call beyond speaking. They come in two groups: the **native** ones, which are telephony functions already built in, and the **HTTP** ones, which you define so the agent can consume your own APIs.

They're in the **Tools** tab of the agent editor.

<Frame caption="Tools tab with native functions and HTTP tools">
  <img src="https://mintcdn.com/jelouai/AQag8di7NYjLixU_/assets/images/voice/agente-herramientas.png?fit=max&auto=format&n=AQag8di7NYjLixU_&q=85&s=8226cb9995fd13279dc89c575c574517" alt="List of native tools with their toggles and, below, the HTTP tools section with one tool configured" width="1446" height="941" data-path="assets/images/voice/agente-herramientas.png" />
</Frame>

## Native tools

These are built-in functions the agent can use during the conversation. Each one is an independent toggle, and the corner of the section shows how many you have active.

| Tool                          | What it allows                                      |
| ----------------------------- | --------------------------------------------------- |
| **End call**                  | The agent to hang up when the conversation is over. |
| **Language detection**        | Automatically switching to the caller's language.   |
| **Skip turn**                 | The agent to wait and let the caller continue.      |
| **Voicemail detection**       | Detecting when the call lands on a voicemail.       |
| **DTMF dialing**              | The agent to emit keypad tones to navigate menus.   |
| **Transfer to another agent** | Escalating the call to another voice agent.         |
| **Transfer to a number**      | Redirecting the call to an external number.         |

<Note>
  **End call** also has a **Configure** option next to its toggle, to tune its behavior in more detail.
</Note>

### When to enable each one

**End call** is the one you'll almost always want on: without it the agent has no way to close and the call stays open until the maximum duration limit.

**Voicemail detection** saves the most credits on outbound campaigns. Without it, a call that lands on voicemail becomes the agent talking to a recorder until the time runs out.

**Skip turn** helps when the person speaks slowly or takes long pauses to think; without it the agent tends to interrupt or fill the silence.

**DTMF dialing** only makes sense if the agent will have to get through an automated phone menu, for example when transferring to a switchboard that asks for an extension.

**Language detection** is worth it only if you genuinely expect callers in several languages. If your operation is monolingual, leaving it off keeps the agent from switching languages over a transcription misunderstanding.

<Warning>
  **Transfer to another agent** and **Transfer to a number** are the two that take the call away from the current agent. Before enabling them, define in the system prompt when they should be used: otherwise the agent may transfer too early and give away cases it could have resolved.
</Warning>

## HTTP tools

These let the agent **consume external APIs during the conversation**: check a balance, validate a document, record an order, or trigger a payment without leaving the call.

The section lists the ones you already have, showing the method, the name, the URL, and the description, with actions to edit or delete them. You create them with **+ Add tool**.

<Frame caption="HTTP tool configuration panel">
  <img src="https://mintcdn.com/jelouai/AQag8di7NYjLixU_/assets/images/voice/agente-herramienta-http.png?fit=max&auto=format&n=AQag8di7NYjLixU_&q=85&s=f646a48413995ce044fcb253a0608a9b" alt="Side panel with the tool name, the description for the model, the method and endpoint URL, the authentication section, additional headers, and body parameters" width="1839" height="1060" data-path="assets/images/voice/agente-herramienta-http.png" />
</Frame>

### The fields

<Steps>
  <Step title="Tool name">
    The internal identifier **in snake\_case** the model will use to invoke the tool. It's not text the user hears; it's the name the agent calls it by.
  </Step>

  <Step title="Description for the model">
    Explains **when** the tool should be used. This text is all the model has to decide whether to invoke it, so it pays to state explicitly which situation it applies to and what data it needs.
  </Step>

  <Step title="Method and endpoint URL">
    The HTTP verb and the address Jelou will send the request to.
  </Step>

  <Step title="Authentication">
    Reuse a connection saved in ElevenLabs or create a new one with **Create authentication**. Credentials are never shown once saved.
  </Step>

  <Step title="Additional headers">
    Extra headers sent with every request, if your API needs them.
  </Step>

  <Step title="Body parameters">
    Sent as JSON in the request body.
  </Step>

  <Step title="Body description">
    A required field. Describe **in detail how to extract the data from the transcript** to build the request body.
  </Step>
</Steps>

<Tip>
  An HTTP tool's quality depends almost entirely on two texts: the **description for the model** and the **body description**. If the agent doesn't invoke the tool when it should, the problem is usually the first; if it invokes it with incomplete or malformed data, the second.
</Tip>

<Warning>
  The agent extracts parameters from what it **understood** of the conversation, and a voice transcript can garble digits or proper names. On sensitive operations such as payments or data changes, have the agent read the value back out loud and ask for confirmation before invoking the tool, and validate in your backend before acting.
</Warning>

## Next step

<CardGroup cols={2}>
  <Card title="Knowledge base" icon="book" href="/en/guides/voice/knowledge-base">
    For frequently asked questions, a document usually beats a call to your API.
  </Card>

  <Card title="Analysis" icon="chart-line" href="/en/guides/voice/analysis">
    Define what you want to evaluate and extract from every conversation.
  </Card>
</CardGroup>
