Integraciones REST

Conectar Audara con las APIs de tus propios servicios

Vista general del módulo

El módulo API Rest permite integrar Audara con servicios externos por medio de sus APIs: defines la URL del servicio, cómo autenticarte y las solicitudes que quieres ejecutar, y esas solicitudes quedan disponibles para tus flujos de chatbot y voicebot. Lo encuentras en Configuración > General > Integraciones, en la tarjeta API.

Tarjeta API en el módulo de Integraciones
Integraciones, tarjeta API
Lista de integraciones API
Lista API

La lista muestra el Nombre de cada integración y su Estado (activo o inactivo). Haz clic en el nombre para abrirla y editarla.

Crear una integración

Presiona el botón (+) en el encabezado de la lista. La configuración se organiza en tres pestañas: Ajustes, Solicitudes y Autenticación. Los campos obligatorios están marcados con un asterisco (*). Al completarlos se activa el botón Guardar.

Formulario Nuevo REST, pestaña Ajustes
Nuevo REST, pestaña Ajustes
Nombre*
Nombre de la integración. Es el que verás al usarla desde otros módulos.
URL Base*
URL base para las peticiones REST de esta integración. La ruta de cada solicitud se agrega a esta URL.

Variables Globales

En la misma pestaña Ajustes defines las variables globales que se usarán en tus solicitudes, como tokens de autenticación o claves API. Defines el valor una sola vez y lo reutilizas en los headers de la integración.

Variables globales de una integración REST
Variables Globales
Nombre*
Nombre de la variable. No puede repetirse dentro de la integración.
Valor*
Valor de la variable, por ejemplo el token o la clave que entrega el servicio externo.
Secreto
Si la variable es secreta, su valor se oculta al editar la integración y en los logs.
Buenas prácticas

Guarda los tokens y claves como variables globales secretas en lugar de escribirlos directamente en cada header. Así los actualizas en un solo lugar y no quedan visibles para otros administradores.

Headers predeterminados

Aquí defines los headers que se enviarán en todas las solicitudes de la integración, como los headers Authorization o Bearer.

Headers predeterminados de una integración REST
Headers predeterminados

El valor de un header puede venir de dos fuentes:

Variable*
Usa una de las variables globales definidas en Ajustes. Ideal para tokens y claves que quieres reutilizar.
Valor fijo*
Usa un valor estático, como "application/json" o un número de versión. En este modo aparece su propio interruptor Secreto por si el valor fijo también debe ocultarse.

Autenticación

En la pestaña Autenticación configuras cómo la integración se autentica con el servicio externo. Úsala para APIs que requieren OAuth 2.0.

Pestaña Autenticación con OAuth 2.0 Client Credentials
Autenticación con OAuth 2.0 (Client Credentials)
Tipo de autenticación
Selecciona Ninguna para usar solo headers estáticos, Bearer Token para un token fijo, u OAuth 2.0 (Client Credentials) para obtener y renovar un token automáticamente.

Bearer Token

Token*
Token que se enviará como header "Authorization: Bearer" en todas las solicitudes. Se almacena de forma segura y se oculta al editar.

OAuth 2.0 (Client Credentials)

Token URL*
Endpoint que emite el token. Para Microsoft tiene la forma https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token.
Client ID*
Identificador de la aplicación registrada en el proveedor.
Client Secret*
Secreto de la aplicación. Se almacena de forma segura y se oculta al editar.
Scope
Alcance del token. Para Dynamics tiene la forma https://<org>.crm.dynamics.com/.default.
Ubicación de las credenciales
Dónde se envían el Client ID y el Secret en la petición del token. La mayoría de proveedores los recibe en el cuerpo; algunos requieren un header Basic.
Parámetros adicionales
Parámetros extra para la petición del token, por ejemplo "resource" o "audience" según el proveedor. Cada uno se define como clave y valor.
Nota

Con OAuth 2.0 la plataforma pide el token y lo renueva automáticamente cuando expira. No necesitas actualizarlo a mano ni crear headers para él.

Solicitudes

En la pestaña Solicitudes defines las peticiones que se usarán desde tus integraciones, como GET o POST. Cada solicitud queda guardada en la integración y lista para usarse desde tus bots.

Lista de solicitudes de una integración REST
Solicitudes de la integración

Al crear o editar una solicitud se abre el formulario junto al panel Probar solicitud:

Editor de una solicitud con el panel Probar
Editar solicitud
Nombre*
Nombre de la solicitud. No puede repetirse dentro de la integración.
Método*
Método HTTP de la solicitud: GET, POST, PUT o PATCH. Cada uno tiene su color en la lista de solicitudes, para reconocerlos de un vistazo.
Ruta*
Ruta de la solicitud. Se agrega a la URL Base de la integración y puede incluir parámetros.
Body JSON*
Body de la solicitud para los métodos que lo envían. Debe ser un JSON válido.
Enviar como
Formato para enviar el body: JSON o Form-data.

Cuando la solicitud envía datos, es decir con POST, PUT o PATCH, el formulario muestra además el formato de envío y el body. Con GET esos dos campos no aparecen.

Solicitud POST con body JSON y variables
Solicitud POST con variables en el body
Nota

Lo mismo aplica para la ruta: si usa variables, aparecen en la sección Variables Ruta del panel Probar. Los valores que escribas ahí solo se usan para la prueba.

Nota

Una solicitud tiene 60 segundos para responder. Si tu servicio se demora más, la petición se corta y el paso del bot sigue con el error, en vez de quedarse esperando.

Mandar un archivo a tu API

Cuando un chatbot le pide un archivo a la persona, ese archivo se puede guardar en una variable y mandárselo después a tu servicio desde una de estas solicitudes. Del lado del bot, el paso que lo pide es el de captura de archivo, y ahí se elige en qué variable queda guardado; del lado de la integración no tienes que configurar nada especial, solo usar esa variable en el body como cualquier otra.

Solicitud PUT que sube un archivo como form-data
Solicitud que sube un archivo

Lo que decide la solicitud es cómo viaja el archivo, y eso sale del campo Enviar como:

Form-data
El archivo viaja dentro de la petición, como cuando lo subes desde un formulario web. Es lo que espera la mayoría de servicios que reciben archivos.
JSON
En lugar del archivo viaja un enlace para descargarlo, que vive una hora. Tu servicio recibe la dirección y baja el archivo por su cuenta dentro de ese plazo.

No hay una tercera opción, y no te toca coordinar las dos puntas: eliges el formato y Audara arma la petición que corresponde.

Importante

Un archivo no puede pesar más de 20 MB. El paso que lo pide en el chatbot puede exigir menos, nunca más, así que si necesitas un tope más bajo para tu caso, se configura allá.

Buenas prácticas

Si tu endpoint de subida es un PUT, ya lo puedes usar: PUT es uno de los métodos que envían body y aparece en el selector junto a POST y PATCH.

Probar y elegir campos de la respuesta

El panel Probar solicitud muestra el método y la URL completa que se va a ejecutar. Presiona Probar para enviar la solicitud real al servicio y ver la respuesta.

Respuesta de prueba con campos seleccionados
Respuesta de prueba y campos seleccionados

Los campos que selecciones son los que quedan disponibles como variables al usar la solicitud desde otros módulos. En Campos respuesta puedes cambiarles el nombre por uno más informativo; si dejas el campo vacío, conserva el nombre original de la respuesta.

Importante

El botón Probar ejecuta la solicitud real contra el servicio externo. Ten cuidado al probar solicitudes que crean o modifican datos, como los POST.

Respuestas tipo lista

Cuando la respuesta trae un arreglo de elementos, por ejemplo una lista de contactos o de citas disponibles, puedes tratar todo el arreglo como una sola variable de tipo lista.

Configuración de una respuesta tipo lista
Respuesta tratada como lista
Nombre de la variable
Nombre con el que usarás la lista completa desde otros módulos.
Campos del elemento
Campos de cada elemento que quieres usar. Selecciónalos haciendo clic en los campos resaltados dentro del elemento de muestra, y renómbralos si necesitas nombres más claros.
Plantilla del elemento (opcional)
Cómo se muestra cada elemento. Inserta valores con {NombreCampo}, usando el nombre que le diste al campo, o con la ruta directa como {name.first}. Por ejemplo: {Nombre} <{email}>. Si la dejas vacía, se unen los campos seleccionados separados por espacio.
Separador
Texto que se coloca entre cada elemento al unir la lista. Por defecto es una coma con espacio, y el botón Nueva línea usa un salto de línea.

Dónde se usan las integraciones

Las solicitudes que configures quedan disponibles en los flujos de tus bots:

En ambos casos, los campos y listas que definiste en Campos respuesta son los que aparecen como variables disponibles.

Editar, desactivar o eliminar

Haz clic en el nombre de una integración para editarla. Desde el menú de más opciones (⋮) a la derecha de cada integración puedes Editar, Desactivar o Eliminar. Una integración desactivada conserva su configuración pero deja de estar disponible.

Nota

Antes de eliminar una integración, revisa qué bots la usan. Un flujo que dependa de una solicitud eliminada dejará de obtener esos datos.