Nodo de IVR: Petición HTTP
Cómo conectar tu IVR con un sistema externo (CRM, ERP, API propia) llamando a una URL y guardando la respuesta en una variable.
Para qué sirve
Llama a un endpoint HTTP externo desde el propio flujo del IVR, sin pasar por Asterisk, y opcionalmente guarda la respuesta (completa o un fragmento puntual) en una variable para usarla en nodos siguientes. Sirve para consultar un CRM antes de rutear, validar un cliente contra tu ERP, disparar una automatización, etc.
Configuración
- Método HTTP: GET, POST, PUT o DELETE.
- URL: admite interpolación de variables, por ejemplo
https://crm.com/api/lookup?phone=${caller.phone}. Solo se permiten URLs http(s); direcciones privadas, loopback o reservadas quedan bloqueadas por seguridad. - Cabeceras: pares clave/valor; los valores también admiten interpolación (útil para tokens guardados como variable, ej.
${secret}). - Cuerpo (JSON): el body de la petición para POST/PUT, también con interpolación de variables.
- Timeout (segundos): máximo 30 segundos.
- Guardar respuesta en variable: nombre de la variable donde queda el cuerpo completo de la respuesta.
- Extraer ruta JSON (opcional): un path tipo
data.user.emailo$.user.tier; si lo definís, solo ese fragmento se guarda en la variable en vez del JSON completo.
Salidas (edges)
success: respuesta 2xx (y, si configuraste una ruta JSON, que además se haya podido resolver).failure: cualquier error — status no-2xx, timeout, problema de red, respuesta que no es JSON válido, ruta JSON no encontrada, o URL bloqueada por la protección contra SSRF.
Ejemplo
Antes de rutear una llamada, agregás un nodo Petición HTTP con método GET a https://mi-erp.com/api/clientes?telefono=${caller.phone}, guardás la respuesta en la variable cliente_info y extraés la ruta $.tier hacia otra variable llamada nivel_cliente. Un nodo Condición después decide: si ${nivel_cliente} es "vip", rutea directo a un agente senior; si falla la consulta (salida failure), sigue al menú general.
Consejos
- Guardá siempre la salida
failurehacia algún nodo (un menú genérico, un mensaje de disculpas): nunca dejes esa rama sin conectar. - Usá la ruta JSON para quedarte solo con el dato que necesitás; guardar la respuesta completa obliga a los nodos siguientes a parsear el JSON manualmente.
Solución de problemas
- Si la petición siempre falla, revisá primero que la URL no apunte a una IP privada o a localhost: el nodo la bloquea automáticamente por seguridad (protección SSRF), aunque el endpoint exista y funcione desde tu red interna.
- Si guardás una ruta JSON y no aparece nada en la variable, confirmá que la respuesta sea JSON válido y que el path coincida exactamente con la estructura devuelta (el
$.inicial es opcional).
Artículos relacionados
-
Llamadas de WhatsApp en Omnifox
Recibe y realiza llamadas de voz de WhatsApp directamente desde el inbox de Omnifox.
-
IVR, colas y enrutamiento de llamadas
Diseña menús de voz (IVR), organiza colas de llamada y conecta tu propia central PBX a Omnifox.
-
Ver el historial de llamadas y reproducir grabaciones en la bandeja
Encontrá todas tus llamadas en la pestaña Llamadas de la bandeja y escuchá las grabaciones sin salir de Omnifox.
-
Iniciar una llamada desde una conversación
Llamá por voz a un contacto sin salir del chat: el botón Llamar por WhatsApp marca la llamada y la registra en la bandeja.
-
Configurar los ajustes de llamada (dispositivo, micrófono y SIP)
Prepara tu navegador, micrófono y la conexión SIP para recibir y hacer llamadas desde la Bandeja de entrada de Omnifox.