Tools (Herramientas) para Agentes de Voz

⚠️ Funcionalidad en Fase Beta

Las Tools para Agentes de Voz están actualmente en fase beta. Si estás interesado en probar esta funcionalidad, contacta con nuestro equipo de soporte.

Introducción

Las Tools (herramientas) son extensiones que permiten a tus agentes de voz realizar acciones durante las conversaciones, como consultar bases de datos, agendar reuniones, actualizar CRM, verificar disponibilidad de productos, y mucho más.

Beneficios Principales

  • 🔧 Extensibilidad: Conecta tu agente con cualquier sistema externo

  • 🤖 Automatización inteligente: El agente decide cuándo usar cada tool

  • 🔄 Integración en tiempo real: Obtén datos actualizados durante la conversación

  • 🎯 Personalización: Crea tools específicas para tu negocio

  • 📊 Trazabilidad: Registra todas las llamadas a tools para auditoría

¿Qué es una Tool?

Una Tool es una función que tu agente de voz puede llamar durante una conversación para:

  1. Obtener información de sistemas externos (bases de datos, APIs, CRM)

  2. Realizar acciones (crear registros, enviar emails, actualizar datos)

  3. Tomar decisiones basadas en datos en tiempo real

Cómo Funciona

Flujo detallado:

  1. El cliente habla: "¿Tienen disponibilidad para el martes a las 3pm?"

  2. El agente analiza: Detecta que necesita consultar disponibilidad

  3. Llama a tu tool: Envía una petición HTTP a tu webhook con los parámetros

  4. Tu sistema responde: Devuelve la información solicitada

  5. El agente continúa: "Sí, tenemos disponibilidad el martes a las 3pm. ¿Te gustaría agendar?"

Tipos de Tools

Tools de Sistema (SYSTEM)

Son tools predefinidas por Salescaling que están disponibles para todos los agentes:

  • 🗓️ Calendar Scheduler: Agenda reuniones en calendarios integrados

  • 📧 Email Sender: Envía emails automáticos

  • 📝 Note Creator: Crea notas en el CRM

ℹ️ Nota: Las tools de sistema no pueden ser editadas ni eliminadas. Solo puedes visualizar su configuración.

Tools de Usuario (USER)

Son tools personalizadas que tú creas para tu caso de uso específico:

  • 🔍 Consultar disponibilidad de productos

  • 💰 Verificar precios en tiempo real

  • 👤 Buscar información de cliente en CRM

  • 📦 Comprobar estado de pedidos

  • Validar códigos promocionales

  • 🎫 Reservar tickets o servicios

Crear una Tool

Paso 1: Navegar a Tools

  1. Ve a Agentes de Voz en el menú principal

  2. Haz clic en la pestaña Tools

  3. Haz clic en "Create tool"

Paso 2: Configuración Básica

Nombre

El nombre debe ser descriptivo y en inglés (snake_case):

💡 Tip: El nombre se usa internamente. Usa nombres claros que describan la acción.

Descripción

La descripción es crucial porque el agente la usa para decidir cuándo llamar a la tool.

Mejores prácticas para descripciones:

  • Sé específico sobre qué hace la tool

  • Menciona qué información necesita (parámetros)

  • Indica qué información devuelve

  • Usa un lenguaje claro y directo

  • Escribe en español (el agente entiende ambos idiomas)

Paso 3: Configurar el Webhook

URL del Webhook

La URL de tu endpoint que recibirá las llamadas:

Requisitos:

  • ✅ Debe ser HTTPS (seguro)

  • ✅ Debe estar accesible públicamente

  • ✅ Debe responder en menos de 10 segundos

  • ✅ Debe devolver JSON válido

Método HTTP

Selecciona el método apropiado:

  • GET: Para consultar información sin modificar datos

  • POST: Para crear o modificar datos (recomendado)

  • PUT: Para actualizar recursos existentes

  • PATCH: Para actualizaciones parciales

  • DELETE: Para eliminar recursos

💡 Recomendación: Usa POST para la mayoría de tools, ya que permite enviar parámetros complejos en el body.

Secret del Webhook (Opcional)

Un secreto que se enviará en el header X-Webhook-Secret para autenticar las peticiones:

Uso recomendado:

Paso 4: Definir Input Schema

El Input Schema define qué parámetros enviará el agente a tu webhook.

Ejemplo: Tool de Disponibilidad de Productos

Propiedades del Input Schema:

Nombre
Tipo
Descripción

product_id

string

ID del producto a consultar

quantity

number

Cantidad deseada

location

string

Ubicación del cliente (opcional)

Petición que recibirás:

Tipos de Datos Soportados

  • string: Texto (nombres, IDs, descripciones)

  • number: Números (cantidades, precios, IDs numéricos)

ℹ️ Nota: Próximamente se añadirán más tipos (boolean, array, object).

Mejores Prácticas

  • ✅ Usa nombres descriptivos en inglés (snake_case)

  • ✅ Añade descripciones claras a cada propiedad

  • ✅ Solo incluye parámetros necesarios

  • ✅ Considera qué información puede extraer el agente de la conversación

Paso 5: Definir Output Schema (Opcional)

El Output Schema define qué información devolverá tu webhook al agente.

¿Es Obligatorio?

No, pero es altamente recomendado porque:

  • 📊 Documenta qué devuelve tu tool

  • 🤖 Ayuda al agente a entender la respuesta

  • 🔍 Facilita el debugging

  • ✅ Valida que la respuesta sea correcta

Ejemplo: Respuesta de Disponibilidad

Propiedades del Output Schema:

Nombre
Tipo
Descripción

available

string

"yes" o "no"

quantity

number

Cantidad disponible

delivery_days

number

Días hasta la entrega

message

string

Mensaje para el cliente

Respuesta que debes devolver:

Implementar el Webhook

Estructura de la Petición

Cuando el agente llama a tu tool, envía una petición con esta estructura:

Headers:

Body:

Ejemplo de Implementación

Node.js (Express)

Python (Flask)

Manejo de Errores

Tu webhook debe manejar errores gracefully:

Regla de oro: Siempre devuelve un status 200 con un mensaje útil para el cliente, incluso cuando hay errores internos.

Asignar Tools a Agentes

Una vez creada la tool, debes asignarla a los agentes que la usarán:

Paso 1: Editar el Agente

  1. Ve a Agentes de Voz > Agents

  2. Haz clic en el agente que quieres editar

  3. Busca la sección "Tools"

Paso 2: Seleccionar Tools

  1. Haz clic en "Add tool"

  2. Selecciona las tools que quieres habilitar

  3. Guarda los cambios

Paso 3: Actualizar el Prompt (Importante)

Debes actualizar el prompt del agente para que sepa cuándo usar cada tool:

💡 Tip: Sé explícito sobre cuándo y cómo usar cada tool. El agente seguirá tus instrucciones.

Ejemplos de Uso

Ejemplo 1: Verificar Disponibilidad de Producto

Conversación:

Tool Call:

Respuesta:


Ejemplo 2: Agendar Reunión

Conversación:

Tool Call:

Respuesta:


Ejemplo 3: Validar Código Promocional

Conversación:

Tool Call:

Respuesta:

Testing y Debugging

Probar tu Tool

  1. Crea una llamada de prueba:

    • Ve a tu agente

    • Haz clic en "Nueva llamada"

    • Usa tu propio número para probar

  2. Menciona el caso de uso:

    • Di algo que active la tool

    • Ejemplo: "¿Tienen el producto XYZ disponible?"

  3. Revisa los logs:

    • Ve a la conversación completada

    • Busca la sección "Tool Calls"

    • Verifica la petición y respuesta

Logs de Tool Calls

Cada llamada a una tool se registra con:

  • Timestamp: Cuándo se llamó

  • 📤 Request: Qué parámetros se enviaron

  • 📥 Response: Qué devolvió tu webhook

  • ⏱️ Duration: Cuánto tardó

  • ✅/❌ Status: Si fue exitosa o falló

Debugging Común

Error: "Tool call timeout"

Causa: Tu webhook tardó más de 10 segundos en responder.

Solución:

  • Optimiza las consultas a base de datos

  • Usa caché para datos frecuentes

  • Considera respuestas asíncronas

Error: "Invalid JSON response"

Causa: Tu webhook no devolvió JSON válido.

Solución:

Error: "Webhook unreachable"

Causa: Tu webhook no es accesible públicamente.

Solución:

  • Verifica que la URL sea correcta

  • Asegúrate de que tu servidor esté corriendo

  • Comprueba el firewall y reglas de seguridad

  • Usa HTTPS, no HTTP

El agente no llama a la tool

Causa: El prompt no es claro sobre cuándo usar la tool.

Solución:

  • Actualiza el prompt con instrucciones explícitas

  • Menciona la tool por nombre en el prompt

  • Da ejemplos de cuándo usarla

Mejores Prácticas

✅ Hacer

  • Respuestas rápidas: Optimiza para responder en < 2 segundos

  • Mensajes claros: Devuelve mensajes que el agente pueda usar directamente

  • Manejo de errores: Siempre devuelve una respuesta útil, incluso en errores

  • Validación: Valida los parámetros antes de procesarlos

  • Logging: Registra todas las llamadas para debugging

  • Idempotencia: Las mismas entradas deben dar las mismas salidas

  • Documentación: Documenta qué hace cada tool y cómo usarla

❌ Evitar

  • Timeouts largos: No hagas consultas que tarden > 10 segundos

  • Respuestas técnicas: No devuelvas mensajes de error técnicos

  • Datos sensibles: No incluyas información confidencial en respuestas

  • Side effects no documentados: No hagas acciones no descritas en la tool

  • Dependencias externas: Minimiza llamadas a APIs externas lentas

  • Respuestas ambiguas: Sé específico en tus respuestas

Seguridad

Autenticación

Siempre valida el webhook secret:

Validación de Datos

Valida todos los parámetros recibidos:

Rate Limiting

Implementa rate limiting para prevenir abuso:

HTTPS Obligatorio

Siempre usa HTTPS para tus webhooks:

Limitaciones Actuales

Como esta funcionalidad está en fase beta, ten en cuenta:

  • ⚠️ Timeout: Las tools deben responder en < 10 segundos

  • 🔢 Tipos de datos: Solo string y number (más tipos próximamente)

  • 📊 Llamadas por conversación: Máximo 10 tool calls por conversación

  • 🌍 Idiomas: Optimizado para español e inglés

  • 📝 Schemas complejos: Arrays y objetos anidados próximamente

Preguntas Frecuentes

chevron-right¿Cuántas tools puedo crear?hashtag

No hay límite en el número de tools que puedes crear. Sin embargo, recomendamos mantener un número manejable (5-10) para facilitar el mantenimiento.

chevron-right¿Puedo editar una tool después de crearla?hashtag

Sí, puedes editar cualquier tool de tipo USER. Las tools de tipo SYSTEM no pueden ser editadas.

chevron-right¿Qué pasa si mi webhook está caído?hashtag

Si tu webhook no responde, el agente continuará la conversación sin la información de la tool y le dirá al cliente que no pudo verificar la información en ese momento.

chevron-right¿Puedo usar la misma tool en múltiples agentes?hashtag

Sí, puedes asignar la misma tool a múltiples agentes. Esto es útil para tools genéricas como verificación de disponibilidad.

chevron-right¿Cómo sé cuántas veces se ha llamado a mi tool?hashtag

Puedes ver las estadísticas de uso de cada tool en la página de Tools. También puedes revisar los logs de cada conversación individual.

chevron-right¿Puedo pasar contexto adicional a mi webhook?hashtag

Sí, cada llamada incluye un objeto context con información de la llamada (call_id, agent_id, customer_phone, etc.) que puedes usar para logging o personalización.

chevron-right¿Qué pasa si devuelvo un formato incorrecto?hashtag

Si tu respuesta no coincide con el output schema definido, el agente intentará interpretar la respuesta de la mejor manera posible. Sin embargo, es recomendable siempre seguir el schema definido.

chevron-right¿Puedo hacer que una tool llame a otra tool?hashtag

No directamente. Cada tool es independiente. Si necesitas encadenar acciones, debes hacerlo en tu webhook antes de devolver la respuesta.

chevron-right¿Cómo puedo probar mi webhook localmente?hashtag

Puedes usar herramientas como ngrokarrow-up-right para exponer tu servidor local con una URL pública temporal:

chevron-right¿Las tools funcionan en todos los idiomas?hashtag

Sí, las tools funcionan independientemente del idioma del agente. Los parámetros se extraen de la conversación en cualquier idioma soportado.

Soporte

Si necesitas ayuda con las Tools:

Recursos Relacionados


Última actualización

¿Te fue útil?