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:
Obtener información de sistemas externos (bases de datos, APIs, CRM)
Realizar acciones (crear registros, enviar emails, actualizar datos)
Tomar decisiones basadas en datos en tiempo real
Cómo Funciona
Flujo detallado:
El cliente habla: "¿Tienen disponibilidad para el martes a las 3pm?"
El agente analiza: Detecta que necesita consultar disponibilidad
Llama a tu tool: Envía una petición HTTP a tu webhook con los parámetros
Tu sistema responde: Devuelve la información solicitada
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
Ve a Agentes de Voz en el menú principal
Haz clic en la pestaña Tools
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:
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:
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
Ve a Agentes de Voz > Agents
Haz clic en el agente que quieres editar
Busca la sección "Tools"
Paso 2: Seleccionar Tools
Haz clic en "Add tool"
Selecciona las tools que quieres habilitar
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
Crea una llamada de prueba:
Ve a tu agente
Haz clic en "Nueva llamada"
Usa tu propio número para probar
Menciona el caso de uso:
Di algo que active la tool
Ejemplo: "¿Tienen el producto XYZ disponible?"
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
¿Cuántas tools puedo crear?
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.
¿Puedo editar una tool después de crearla?
Sí, puedes editar cualquier tool de tipo USER. Las tools de tipo SYSTEM no pueden ser editadas.
¿Qué pasa si mi webhook está caído?
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.
¿Puedo usar la misma tool en múltiples agentes?
Sí, puedes asignar la misma tool a múltiples agentes. Esto es útil para tools genéricas como verificación de disponibilidad.
¿Cómo sé cuántas veces se ha llamado a mi tool?
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.
¿Puedo pasar contexto adicional a mi webhook?
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.
¿Qué pasa si devuelvo un formato incorrecto?
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.
¿Puedo hacer que una tool llame a otra tool?
No directamente. Cada tool es independiente. Si necesitas encadenar acciones, debes hacerlo en tu webhook antes de devolver la respuesta.
¿Cómo puedo probar mi webhook localmente?
Puedes usar herramientas como ngrok para exponer tu servidor local con una URL pública temporal:
¿Las tools funcionan en todos los idiomas?
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:
📧 Email: [email protected]
💬 Chat en vivo: Disponible en la plataforma
📚 Documentación: docs.salescaling.com
🔗 API Reference: API de Webhooks
Recursos Relacionados
Última actualización
¿Te fue útil?
