Introducción
Este documento menciona como se puede conectar el agente a Servicios externos del cliente, por ejemplo consultar servicios a base de datos, productos, reservar citas, etc.
Campos del Servicio
Formatos de Campos
Los campos que se usan en el bodyTemplate pueden usar formatos especiales para diferentes tipos de datos: Para fechas:{{fecha|format('yyyy-MM-dd')}}→ “2024-01-15”{{fecha|format('dd/MM/yyyy')}}→ “15/01/2024”{{fecha|format('yyyy-MM-dd HH:mm:ss')}}→ “2024-01-15 14:30:00”
{{precio|number}}→ 1500 (número entero){{precio|format('0.00')}}→ “1500.00” (dos decimales){{cantidad|number}}→ 5
{{nombre}}→ “Juan Pérez”{{email}}→ “juan@email.com”
- Las variables
{{variable}}se reemplazan con los datos que el usuario proporciona durante la conversación - Solo funcionan las variables que están definidas en
requiredFieldso que el usuario haya proporcionado
Ejemplo de responseMapping
ElresponseMapping te permite extraer datos específicos de la respuesta de tu API externa usando JSONPath. Estos valores extraídos luego se pueden usar en el responseMessage y responseConditions.
responseMapping básico:
Sintaxis JSONPath
Acceso básico:$.campo→ Accede a un campo en la raíz$.objeto.subcampo→ Accede a campos anidados$.array[0]→ Primer elemento de un array$.array[*]→ Todos los elementos de un array
$.response.message→response.message$.data.user.email→data.user.email$.items[0].price→ Precio del primer item$.orders[-1].id→ ID de la última orden
Campos requeridos
Los campos requeridos son la base fundamental de los servicios. Definen qué información debe recopilar el agente del usuario antes de ejecutar el servicio. Estos campos son las variables que alimentarán elbodyTemplate.

Configuración de campos requeridos
Cada campo requerido se define con las siguientes propiedades:Tipos de datos soportados
Tipo Array (Objects) - arrayObject
El tipo arrayObject permite definir campos que son arrays de objetos con propiedades configurables. Esto es útil cuando necesitas que el usuario proporcione una lista de elementos con múltiples atributos cada uno.
Ejemplo de caso de uso: Un servicio de portabilidad numérica donde el usuario debe proporcionar una lista de números a portar, cada uno con su tipo de plan, operador y número.
Playground
Aquí puedes experimentar con la configuración de servicios y campos requeridos, para eso existe una pantalla en cada uno de los servicios creados para probar el servicio y poder saber el retorno que se tendra.
Flujo de recopilación
- El usuario expresa una intención que coincide con el servicio
- El agente identifica campos faltantes comparando con
requiredFields - Pregunta los campos uno por uno usando
promptHintcomo guía - Valida cada respuesta según el
typeespecificado - Una vez completos todos los campos, ejecuta el servicio con
bodyTemplate
Campos Condicionales
Con la plataforma se puede tener condicionales para que el Agente pueda responder de forma diferente en base a la respuesta del servicio.
- == (Igual a)
- != (Distinto a)
<(Menor que)>(Mayor que)<=(Menor o igual a)>=(Mayor o igual a)
Encadenamiento de Servicios (nextService)
Cada condicion dentro deresponseConditions puede incluir un campo nextService que indica el intent de otro servicio que debe ejecutarse automaticamente si esa condicion se cumple. Esto permite encadenar servicios de forma secuencial.
El
nextService es opcional. Si no se define, el flujo termina despues de mostrar el mensaje. Si se define, el agente ejecutara el siguiente servicio usando los datos ya recopilados del usuario.Consideraciones
- El Agente de IA consultará al usuario, los campos que se encuentran en el campo
requiredFieldsen el formato: campo: campo, el usuario puede llenar un campo o todos, la IA entenderá si faltan o no campos antes del consumir el servicio. - El
responseMappingte ayudará a poder completar los datos del camporequiredMessage, colocando la información en las llaves correspondientes, el json que te trae el servicio deberia de poder colocar los campos dentro del Mensaje. - Se pueden crear uno o varios servicios dentro de la configuración del Agente, para que pueda consultar sus servicios.

