---
title: "Herramientas integradas"
description: "Indica a los agentes de ThunderPhone que finalicen llamadas, transfieran a quienes llaman, naveguen teclados, esperen en línea, busquen conocimiento, reproduzcan sonidos y envíen correos electrónicos."
---

Las herramientas integradas permiten que un agente realice acciones comunes en llamadas sin conectar tu propia API. La mayoría están disponibles automáticamente; el correo electrónico, los sonidos y la búsqueda de conocimiento aparecen solo después de que configuras el ajuste o la fuente relacionados. Indícale al agente cuándo usar cada acción en su prompt.

| Herramienta | Úsala para | Cómo habilitarla | Llamadas compatibles |
| --- | --- | --- | --- |
| `end_call` | Finalizar una conversación completada | Siempre disponible | Teléfono, Talk en el navegador, widget, simulación y Realtime |
| `transfer_call` | Redirigir a quien llama por teléfono | Configura el enrutamiento en el prompt | Llamadas telefónicas normales; Realtime integrado con `call_events` puede usar transferencia en frío. Realtime de agente guardado la omite. |
| `send_keypad_input` | Pulsar teclas en un menú telefónico | Siempre disponible en llamadas telefónicas normales | Llamadas telefónicas; Realtime saliente integrado con `call_events`. Realtime de agente guardado la omite. |
| `no_response` | Seguir escuchando mientras habla un menú automatizado o quien llama piensa en voz alta; quien llama y le pide al agente que espere recibe solo "Claro." | Siempre disponible | Todos los tipos de llamadas |
| `wait_on_hold` | Esperar en silencio a que una persona regrese | Incluida en las llamadas salientes | Sesiones telefónicas salientes y sesiones Realtime salientes integradas |
| `search_knowledge_base` | Responder con información de fuentes adjuntas | Adjunta conocimiento al agente | Llamadas de agente guardado con conocimiento adjunto |
| `play_sound` | Reproducir un sonido de notificación configurado | **Avanzado → Sonido de herramienta** | Llamadas de agente guardado |
| `send_email` | Enviar un correo electrónico a un destinatario fijo | **Avanzado → Enviar correo electrónico** | Llamadas de agente guardado |

## `end_call`

Finaliza la llamada actual cuando el prompt le indica al modelo que lo haga. Está disponible de forma predeterminada y no tiene configuración del agente.

Escribe la condición y cualquier despedida necesaria en el prompt:

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

Una llamada finalizada por el modelo tiene `end_reason: "ai_hangup"`, incluida una que termina después de la advertencia de límite de tiempo de llamada. La llamada termina con `max_duration` solo si se alcanza primero el límite de tiempo, y con `balance_exhausted` cuando se agota el saldo prepagado.

## `transfer_call`

Transfiere a quien llama por teléfono a un número fijo proporcionado por el modelo. La transferencia en frío es inmediata. Una transferencia en caliente con filtrado llama de forma privada al destino antes de conectar a las partes. La transferencia en caliente requiere un número VoIP importado y verificado que pueda realizar llamadas salientes.

Incluye el número de destino y la condición exacta de enrutamiento en el prompt:

```text
If the caller asks for billing, transfer them to +15551234567.
```

Una transferencia en frío exitosa tiene `end_reason: "ai_transfer"`; una transferencia en caliente completada tiene `end_reason: "ai_warm_transfer"`. Un intento en caliente fallido devuelve el control al agente, por lo que la finalización posterior de la llamada determina su motivo de finalización. En sesiones que no son telefónicas, una solicitud de transferencia finaliza la sesión.

Consulta [Transferir llamadas](/es/guides/call-transfers) para conocer la configuración del dashboard y la API, el enrutamiento, el filtrado, el manejo de fallos, los límites y las pruebas.

## `send_keypad_input`

Envía dígitos DTMF (teclado telefónico) `0`–`9`, `*` y `#` a una línea telefónica. El modelo la usa para navegar un IVR, el menú automatizado que les pide a quienes llaman que presionen teclas. Está disponible de forma predeterminada y no tiene configuración del agente.

Indícale al modelo qué menús puede navegar y de dónde provienen los valores solicitados. No le pidas que adivine las opciones del menú:

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

La plataforma elimina los caracteres no compatibles y envía los dígitos válidos en orden. Si no quedan dígitos válidos o la llamada no puede enviar entrada de teclado, el fallo se devuelve al agente para que pueda recuperarse.

## `no_response`

Mantiene al agente en silencio mientras un sistema automatizado sigue hablando o le pide que continúe escuchando, y mientras quien llama piensa en voz alta ("eh, déjeme ver") o se gira para hablar con otra persona. Cuando quien llama le pide al agente que espere mientras hace algo ("un segundo", "déjeme revisar", "¿puede esperar un segundo?") y no le da nada más que responder, el agente dice solo "Claro." (no "Tómese su tiempo") y espera a que quien llama vuelva a hablar. Las comprobaciones de silencio del agente siguen ejecutándose y siempre se expresan en voz alta si la línea permanece en silencio. No es para el saludo de una persona en vivo, una pregunta ni una cola de espera real. Está disponible de forma predeterminada y no tiene una configuración del agente.

Si tu prompt le indica al agente qué decir cuando quien llama pide un momento, el prompt tiene prioridad.

Por lo general, la descripción integrada es suficiente. Para llamadas con mucho uso de IVR, refuerza el límite en el prompt:

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

Esta acción no finaliza la llamada.

## `wait_on_hold`

Coloca a un agente saliente en un estado de espera silenciosa hasta que una persona regrese.
El modelo lo usa solo después de que la otra persona indique explícitamente que pondrá al agente
en espera. Está disponible automáticamente en las llamadas salientes y no tiene ninguna
configuración en el panel.

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

No indiques al agente que lo use para un mensaje de «espere por favor» de un IVR. La espera dura
hasta 15 minutos de forma predeterminada. Para llamadas salientes normales, `POST /v1/call`
acepta un `max_hold_seconds` de entero positivo; Realtime integrado restringe
`max_hold_seconds` a entre 10 y 900 segundos. Si la persona
regresa, el agente reanuda la conversación sin cambiar el motivo de finalización de la llamada. Si el límite
vence, la plataforma finaliza la llamada con `end_reason: "ai_hangup"`.

## `search_knowledge_base`

Busca documentos adjuntos al agente y devuelve fragmentos relevantes. Adjunta
una base de conocimientos o documentos de conocimientos individuales para habilitarla, y luego indica al
modelo qué respuestas deben provenir de esas fuentes:

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

Si falla una búsqueda, el resultado se devuelve al agente. Consulta [Base de
conocimientos](/es/guides/knowledge-base) para configurar el panel y la API.

## `play_sound`

Reproduce el sonido de notificación configurado del agente después de cualquier intervención en el mismo
turno. En el panel, configura **Avanzado → Sonido de herramienta** como **Chime**, **Ding**
o **Beep**, y luego implementa el agente. **Ninguno** elimina la herramienta.

Con la [API de Agents](/api-reference/agents), prepara `play_sound_asset` como
`"chime"`, `"ding"` o `"beep"`, y luego implementa. Configúralo como `""` para desactivar
la herramienta.

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

Un error de reproducción se devuelve al agente y no finaliza la llamada.

## `send_email`

Envía un correo electrónico de texto sin formato al único destinatario configurado por el propietario del agente.
El modelo proporciona el asunto y el cuerpo. Nunca ve un parámetro de destinatario
ni puede elegir o cambiar la dirección.

En el panel, habilita **Avanzado → Enviar correo electrónico**, guarda una dirección de destinatario
y luego implementa el agente. Con la [API de Agents](/api-reference/agents), prepara tanto
`send_email_enabled: true` como un `send_email_recipient` no vacío, y luego implementa.
Define el desencadenante y el contenido obligatorio en el prompt:

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

Una llamada puede intentar enviar como máximo tres correos electrónicos. Cada asunto está limitado a 300
caracteres y cada cuerpo a 20.000 caracteres. La configuración faltante, el contenido no válido,
el límite por llamada y los errores de entrega se devuelven al agente.
Una entrega fallida sigue usando uno de los tres intentos.

Prueba con un destinatario controlado antes de implementar ampliamente. Browser Talk y
las simulaciones envían correos electrónicos reales; no existe un modo de ejecución en seco.

## Nota de compatibilidad

La configuración **Avanzado → Divulgaciones ininterrumpibles** y el campo heredado
`speak_uninterruptible_enabled` se mantienen por compatibilidad, pero habilitarlos
no tiene ningún efecto. Deja la configuración desactivada; ningún prompt puede activar esta herramienta.

Para una divulgación obligatoria al inicio de la llamada, usa **Anuncio de consentimiento**. Se reproduce
literalmente antes de la conversación normal y no puede interrumpirse. Consulta [Leyes de consentimiento para la grabación
de llamadas](/es/guides/recording-consent-laws).

## Prueba y supervisa las herramientas integradas

Usa Browser Talk o una simulación para comprobar los prompts, la búsqueda de conocimientos, los sonidos
y el correo electrónico. Esos entornos no pueden reproducir el comportamiento de la red telefónica. Prueba
la navegación por teclado y la espera en una llamada telefónica saliente, y prueba una transferencia
asistida completa en una llamada real con un número VoIP importado elegible. La compatibilidad con Realtime
es limitada, como se muestra en la tabla anterior.

## Llamadas, precios y webhooks

Las acciones integradas no tienen una tarifa por uso de herramienta. Se siguen aplicando los cargos normales por llamadas y del proveedor; consulta [Precios](/es/guides/pricing). Sus llamadas y resultados pueden aparecer en la transcripción completada, pero no emiten `telephony.tool` ni `web.tool`. Esos eventos son para [funciones definidas por el usuario](/es/tools/overview). Solo una finalización de llamada o transferencia completada cambia el `end_reason` de la llamada; otros errores se devuelven al agente. Consulta [Webhooks de finalización](/es/webhooks/call-complete) para ver el registro de la llamada.
