0% encontró este documento útil (0 votos)
180 vistas62 páginas

Instructivo Watson Assistant

Este documento explica cómo editar robots creados con la herramienta Watson Assistant de IBM y cómo integrarlos con el sistema Keybe. Instruye sobre cómo ingresar a la plataforma IBM, navegar hasta el servicio asignado y acceder al robot deseado para realizar ediciones. También provee detalles sobre la estructura y tipos de respuestas que puede tener un robot de Watson Assistant.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
180 vistas62 páginas

Instructivo Watson Assistant

Este documento explica cómo editar robots creados con la herramienta Watson Assistant de IBM y cómo integrarlos con el sistema Keybe. Instruye sobre cómo ingresar a la plataforma IBM, navegar hasta el servicio asignado y acceder al robot deseado para realizar ediciones. También provee detalles sobre la estructura y tipos de respuestas que puede tener un robot de Watson Assistant.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Instructivo Watson

Assistant
Keybe Version 5.1
2022
2

Contenido
Exoneración de responsabilidad ...................................................................................................................... 4
Introducción ................................................................................................................................................... 4
Ingresar a IBM y Edición de un Robot ............................................................................................................. 4
Ingresar a los servicios de IBM................................................................................................................... 5
Edición del texto y contenido de un robot ................................................................................................... 8
Panel de trabajo ......................................................................................................................................... 8
Estructura de un nodo ................................................................................................................................ 9
Tipos de respuesta ................................................................................................................................... 11
Respuesta en Text ................................................................................................................................ 11
Respuesta Image.................................................................................................................................. 13
Respuesta Option ................................................................................................................................. 13
Respuesta Audio .................................................................................................................................. 14
Respuesta Video .................................................................................................................................. 15
Almacenar Datos de Usuarios ....................................................................................................................... 17
¿Cuáles datos puede almacenar? .............................................................................................................. 17
Características de las variables de contexto .............................................................................................. 17
Duración de las variables de contexto................................................................................................... 17
¿Cómo almacena el robot? ....................................................................................................................... 18
Almacenar con extradata ...................................................................................................................... 18
Almacenar a campos principales .......................................................................................................... 24
Almacenar políticas, términos de acuerdo, etc. ..................................................................................... 27
Cambio en los estados del journey....................................................................................................... 28
Recomendaciones .................................................................................................................................... 29
Acciones con Variables de Contexto ............................................................................................................. 30
Asignación de asesores ............................................................................................................................ 30
Conexión del robot con horarios dentro de Keybe .................................................................................... 32
Cierre del chat .......................................................................................................................................... 34
Asignación automática de tags .................................................................................................................. 35
Casos a tener en cuenta en el uso de tags ........................................................................................... 40
Consulta de Información entre el Robot y Keybe ........................................................................................... 42
Ejemplo del código en $core .................................................................................................................... 45
WhatsApp: ........................................................................................................................................... 46
3

Facebook ............................................................................................................................................. 47
Instagram ............................................................................................................................................. 48
Web ..................................................................................................................................................... 50
Proactividades Keybe .................................................................................................................................... 52
Estructura ................................................................................................................................................. 52
Configuración de una campaña o disparador ............................................................................................ 54
Funcionamiento........................................................................................................................................ 56
Integraciones posibles desde el bot. ............................................................................................................. 58
4

Exoneración de responsabilidad
La presente documentación tiene como objetivo entregar las herramientas necesarias a los clientes de Keybe
S.A.S. para que intervengan en las modificaciones de los robots que sus marcas tienen conectados y que
previamente fueron desarrollados por el equipo de diseño de robots a la medida o bien, para que creen los
robots desde cero. Al recibir las credenciales y autorización para modificar el robot, cada cliente se hace
responsable de los posibles daños que sus modificaciones puedan generar en el robot. Keybe [Link]. no se hace
responsable del soporte en los casos en los que por una incorrecta modificación que realiza el cliente se vea
afectado el robot.

Para ver las reglamentaciones completas los invitamos a visitar el siguiente enlace, diligenciar el documento y
enviarlo a su agente comercial: [Link]

Introducción
Watson assistant es una herramienta de IBM que permite crear robots para chats, los cuales pueden ser
integrados a los servicios de Keybe para manejar los canales de redes sociales, WhatsApp y Web que se tengan
configurados en el aplicativo de Keybe.

Este instructivo explicará los elementos que se deben tener en cuenta a la hora de realizar un robot en esta
herramienta. De tal forma que se pueda aprovechar al máximo la integración con todas las posibilidades que
tenga Watson y el soporte que brindamos desde Keybe.

Puedes ver la documentación que ofrece Watson assistant con todas las funcionalidades que ofrece, pero
ten en cuenta que no todas son soportadas por nuestro aplicativo.
5

Ingresar a IBM y Edición de un Robot


Ingresar a los servicios de IBM
Si se realiza edición de los robots desde servicios de Keybe se debe haber finalizado el proceso de activación
de la cuenta con IBM y la asignación de permisos otorgados por Keybe, luego de esto o si se trabaja desde un
servicio propio, puedes iniciar sesión en IBM.

Para ingresar a IBM, seguir por el link [Link] o buscando IBM cloud en Google.

Realiza el log-In con el correo y la clave que generaste al momento de activar tu cuenta en IBM.

Imagen: Plataforma IBM, página Log-In.

Al iniciar sesión, verán la página a continuación. Deben ingresar a los recursos disponibles, debe aparecer por
lo menos uno habilitado.
6

Imagen: Plataforma IBM, inicio.

Dentro de la opción de Servicios y software encontrarán el servicio de Keybe al cual se les dio acceso.

Nombre del servicio otorgado no es igual para todos.

Imagen: Plataforma IBM, lista de recursos disponibles.


7

Selecciona el servicio que aparece disponible y luego ingresa por la opción de Iniciar Watson Assistant.

Imagen: Plataforma IBM, detalles del servicio.

Estando dentro del servicio, ingresa por el icono de Skills y selecciona el robot que te aparece en el panel.

Imagen: Plataforma IBM, lista de robots (skills)


8

Edición del texto y contenido de un robot


Para un manejo más completo de las funciones que trae Watson assistant, utilizar la documentación
[Link]

Hay que recordar que este manual pretende servir de guía para la edición de textos y otro contenido
que comparte el robot con los usuarios, cualquier edición de otro elemento que no esté orientado a este
alcance es bajo la responsabilidad de la marca.

.
Panel de trabajo
Dentro del skill seleccionado, encontrará el siguiente panel de trabajo que funciona de la siguiente forma.

1. Opciones principales de configuración:


a) Intents: Son la configuración de las categorías que el robot entiende y sobre las que realizara
alguna acción determinada.
b) Entities: Son listas o patrones de texto que componen el negocio y/o servicio. Se divide en
dos categorías:
1. My Entities: Creadas por nosotros.
2. System Entities. Creadas por IBM, como: fechas, números, moneda, etc.
c) Dialog: corresponde al contenido y estructura del bot, como se muestra en el punto 2 y 3 de
la imagen.
d) Options: opciones adicionales:
1. Webhooks: Soportado
2. Disambiguation: No soportado
3. Intent Detection: Configuración del uso lógico de las intenciones en Watson.
e) Versions: Versiones guardadas disponibles (límite de 10)
f) Content Catalog: Lista de intenciones habilitables y generadas por Watson assistant.
2. Elementos que componen la estructura del robot:
a) Add node: Agrega nodo, El rectángulo que carga información lógica al robot y es visible en el
punto 3 de la imagen.
b) Add child node: Watson funciona bajo una estructura de nodos padres e hijos.
c) Add folder: Agrega carpetas que también llevan funciones lógicas, así como también contienen
nodos con alguna temática en común. ejemplo Nodos desactivados del punto 3 de la imagen.
3. Estructura de nodos de un robot, el orden lógico de funcionamiento es descendente.
4. Barra que contiene:
a) Buscador para ubicar información dentro de la estructura del punto 3, sea por título de los
nodos, funciones lógicas o contenido de los nodos como sus respuestas.
b) Save new version: guardar el estado actual del robot (límite de 10 versiones)
c) Try it: Simulación de la conversación con el robot actual.
9

Imagen: Plataforma IBM, panel de trabajo del skill.

Para modificar el contenido del robot, permanecer en el panel de dialog y seleccionar el nodo a modificar.

El contenido a modificar depende de la versión del aplicativo donde se encuentra y no todas las
opciones disponibles en Watson son compatibles con Keybe.

.
Estructura de un nodo
Básicamente, los nodos se componen de:

1. Título: es una descripción breve del nodo y su función no es relevante para el funcionamiento de un
robot.
2. Evaluador de condiciones: comprende la o las condiciones que permiten a un usuario ingresar a este
nodo para ver el contenido o ejecutar las acciones dispuestas en el nodo.
3. Respuestas: En el assistant responds está todo el contenido de las respuestas que puede manejar el
bot. Hay que tener en cuenta que no todas las opciones que permite watson assistant son compatibles
con keybe asi que limitarse a las mencionadas en este manual.
10

Si solo se pretenda realizar cambios de textos básicos, bajo ningún motivo se deben modificar las
funciones o condiciones lógicas que aparecen en el if assistant recognizes. Hay que tener un mayor
entendimiento de las funciones del robot para configurar el if assistant recognizes.

Imagen: Plataforma IBM, configuración de un nodo


11

Tipos de respuesta
Cada nodo tiene un límite de 5 respuestas que puede generar. Cada una de estas respuestas pueden ser en
forma de:

1. Text
2. Option
3. Image
4. Audio
5. Video

Respuesta en Text

Para los canales WSP, IG, FB, WEB. Es posible manejar todos los caracteres alfanuméricos, teniendo cuidado
con los caracteres especiales como $ y @ que son usado para procesar información dentro de Watson. De tal
manera que, si se desea escribir un correo o precio de un artículo, se debe llenar un carácter de escape como
se muestra en el ejemplo:

\$1.000

prueba\@[Link]

Evitar manipular las variables de contexto y entidades que se utilizan en las respuestas de algunos robots para
dar más dinamismo en la respuesta, algunos ejemplos que puedes encontrar son:

$nombre_usuario: Esto corresponde al nombre del usuario.

@productos: Esto corresponde a un producto de una lista definida.

De igual manera, se recomienda no editar campos ubicados dentro de los caracteres especiales <??> ya que
aquí se está procesando una respuesta dinámica del robot y su edición sin conocimiento puede llevar a daños
del flujo del robot.

Si miras la imagen a continuación, verás un ejemplo de formas en las que puedes configurar los textos en una
respuesta:

1. Debe estar la opción de respuesta como Text.


2. Los textos subrayados son los permitidos a editar.
3. Al final verás las opciones de:
12

1. Sequential: muestra los mensajes en orden, es decir, la primera vez que el usuario entra muestra la
primera línea, la segunda vez muestra la segunda y así sucesivamente en un ciclo indefinido.
2. Random: muestra una de las líneas de forma aleatoria cada que el usuario pasa por este nodo.
3. Multiline: Muestra toda la información escrita en cada línea en un mensaje en conjunto.

Si tienes dos assistants responds seguidos, se desplegarán en el chat como dos mensajes separados,
mientras que si usas el multiline de un assistant responds se verá como un solo mensaje pero con línea
nueva (espacio o párrafos).

Las Urls de YouTube se visualizan como thumbnails en los distintos canales.

Imagen: Assistant responds, Text.


13

Respuesta Image

Para los canales WSP, IG, FB, WEB. Se pueden usar imágenes desde que están ligadas a una URL sea que se
encuentren en páginas web o en un servicio como el Google cloud.

La Url se pega en el Image Source.

Title, description y alternative text no son soportados por la app de Keybe. Mantener vacíos.

Evitar el uso de Ñ y otras letras o caracteres no existentes en el idioma inglés. Las urls tienden a
reemplazar esos campos con una numeración codificada que entra en conflictos con Watson assistant.

Imagen: Assistant responds, Image.

Respuesta Option

Solo para el canal WEB se despliega botones funcionales. En WSP, IG y FB se muestra como un mensaje
adicional con el contenido de la List label.

Esta respuesta es muy sensible para la capacidad del robot ya que se trata de un menú de sugerencia con unos
campos definidos en sus respuestas (Value) y que se le presenta a los usuarios (List label). Cuando el usuario
selecciona una de las opciones configuradas, según la List label, viaja un valor de retorno a watson en forma de
Value, watson evalúa los nodos hijos y elije una respuesta.

Limitar la edición de esta opciones, si se desea agregar emojis no hay problema desde que estén separados
por un espacio respecto al texto.
14

Title, description y alternative text no son soportados por la app de Keybe. Mantener vacíos.

Si se modifica el contenido las opciones sin considerar las respuestas que evalúa el robot, se corre el
riesgo de dañar el flujo.

Imagen: Assistant responds, Option.

Respuesta Audio

Solo está soportado para los canales WSP y WEB.

Al igual que el Image, los campos de title, description y alternative text no son soportados por Keybe, así que
es preferible dejar vacíos. La condición de loop tampoco es soportada así que permanece en off.

Para su funcionamiento, se debe tener el archivo de audio en un servicio como Google cloud donde se puede
generar una URL pública la cual debe ir pegada en el Audio source.

Solo para formato OGG o MP3.

Evitar el uso de Ñ y otras letras o caracteres no existentes en el idioma inglés. Las urls tienden a
reemplazar esos campos con una numeración codificada que entra en conflictos con Watson assistant.

.
15

Imagen: Assistant responds, Audio.

Respuesta Video

Actualmente hay dos formas de manejar los videos dentro de keybe. Si el video se encuentra con URL de
YouTube, lo mejor es pegar la URL como texto en el Text del assistant responds. Cada canal genera el thumbnail
automático cuando identifica una URL de YouTube. Esta opción es como compartir un video desde el dispositivo,
se genera la ventana para ver el video sin mostrar la URL.

Solo está soportado para los canales WSP y WEB. Al igual que el Image, los campos de title, description y
alternative text no son soportados por keybe, así que es preferible dejar vací[Link] condición de Base height
tampoco es soportada así que permanece vacío.

Para su funcionamiento, se debe tener el archivo de video en un servicio como Google cloud donde se puede
generar una URL pública la cual debe ir pegada en el Audio source.

Solo para formato OGG o MP3.

Evitar el uso de Ñ y otras letras o caracteres no existentes en el idioma inglés. Las urls tienden a
reemplazar esos campos con una numeración codificada que entra en conflictos con Watson assistant.

.
16

Imagen: Assistant responds, Video.


17

Almacenar Datos de Usuarios


Los robots para chats son muy útiles para recopilar datos del usuario, no solo para llevar una conversación con
tus usuarios y tener una lista de preguntas frecuentes que aplican para tu marca, sino también para almacenar
información relevante de tus usuarios y realizar diferentes tipos de estrategias de marketing.

En esta sección veras los campos más utilizados en el almacenamiento de la información, como los diferentes
canales afectan la toma de datos de tu usuario y aspectos importantes para tener en cuenta a la hora de almacenar
la información.

¿Cuáles datos puede almacenar?


Toda la información compartida por el usuario bien sea que esté definida en las listas o patrones de entidades
definidas en el robot, texto ingresado por el usuario como una respuesta abierta a una pregunta o estados
asignados a variables de contexto cuando el usuario elige una u otra opción de diálogo.

Los datos que se suelen pedir son, pero no se limitan a:

• Nombre
• Celular
• Correo
• Ciudad
• Necesidad

Los tipos de campos pueden ser numéricos o textos y también reciben campos de fechas o patrones
como el caso de correos. También pueden incluir diferentes tipos de formatos de fechas y números, todo
depende de la forma de almacenar la información desde Watson.

Características de las variables de contexto


Los datos que se almacenan dependen en la mayoría de los casos de las variables de contexto, que son variables
creadas desde el robot y que se utilizan para guardar de forma dinámica la información ingresada por el usuario.

Duración de las variables de contexto.

Las conversaciones entre los usuarios permanecen abiertas indefinidamente. Esto quiere decir que si el usuario
A, escribe el día de hoy por el canal que se encuentre activo el robot, esté recordará la conversación al día
siguiente, semana siguiente, mes que viene, etc.
18

¿Cómo almacena el robot?


Existen 2 formas de almacenar la información del robot y dependen del trato que se desea dar al dato a
almacenar. Para empezar hablaremos de la acción de extradata.

Las acciones de almacenamiento de información no son compatibles con las proactividades de


campañas masivas ni los disparadores. Si se va a configurar proactividades, favor mirar la sección de
Proactividades en Keybe.

.
Almacenar con extradata

Son los que aparecen en la sección de campos adicionales en los detalles del usuario y deberían estar creados
en Información adicional de las personas de tu marca, que se encuentra en el panel de Configura/Aplicativos,
si se desea observar en los detalles de todos los usuarios disponibles de la base de datos y para manejarlos
dentro del módulo de CONECTA/personas. Puedes ver en los detalles del usuario como lo muestra la imagen
a continuación.

Imagen: Aplicación Keybe conversa versión 5.1


19

Paso 0: Definir la estructura para almacenar por extradata.

Se utiliza la misma estructura para almacenar la información en los detalles principales del usuario. A
continuación se muestra un ejemplo de una estructura que pretende almacenar un nombre que se pregunta al
usuario y se seguirán los siguientes pasos a partir de este ejemplo.

Imagen: Estructura de los nodos en Watson para almacenar extradata

1. Nombre: En este nodo se pregunta el nombre del usuario


2. Captura Nombre: En este nodo se almacena.
3. Guardar extradata: En este nodo se ejecuta la acción de almacenamiento de la información.
4. True porque si: Es un nodo de manejo interno.
5. Hacer otra cosa: continuar con el diálogo del robot.

Paso 1: Crear variable de contexto.

Para almacenar la información del robot y que esta aparezca en los detalles del usuario dentro del aplicativo de
Keybe, debemos almacenar la información dentro de una variable de contexto.

Variable de contexto es un campo que definimos dentro del robot, el cual almacena la respuesta del
usuario. Solo tiene acceso el robot y existe mientras la conversación con el usuario exista.
20

Este paso ocurre entre los Nodos 1 y 2 descritos en el ejemplo anterior y se ve así:

Imagen: Creación de una variable de contexto.

Paso 2: Realizar acción para guardar la información.

Una vez se tenga la información almacenada en la variable de contexto, se ejecutan los Nodos 3 y 4 de guardar
extradata y true porque sí.

Imagen: Try it out


21

Imagen: Nodos 3 y 4 para realizar accion de almacenamiento de la información,

En el Nodo 3 que dice Guardar extradata, debes poner en el JSON editor el código que se muestra a
continuación.

Un solo action para almacenar la extradata

{
"output": {
"generic": []
},
"actions": [
{
"name": "saveExtradata",
"type": "client",
"parameters": {
"field": "Nombre Usuario",
"value": "<? $nombre_usuario ?>"
},
"result_variable": "api_save_extradata"
}
]
}

Se pueden almacenar un máximo de 5 datos en el mismo nodo


22

{
"output": {
"generic": []
},
"actions": [
{
"name": "saveExtradata",
"type": "client",
"parameters": {
"field": "Nombre Usuario",
"value": "<? $nombre_usuario ?>"
},
"result_variable": "api_save_extradata"
},
{
"name": "saveExtradata",
"type": "client",
"parameters": {
"field": "Otro Dato",
"value": "<? $otro_dato ?>"
},
"result_variable": "api_save_extradata"
}
]
}

Los campos de “output“ y “context“ pertenecen a Watson y no son relevantes para la acción de guardar extradata,
solo se muestra un ejemplo del código completo como aparece en Watson.

Los campos de guardar extradata son:

• "actions": Obligatorio.
• "name": siempre debe llevar "saveExtradata"
• "type": siempre debe llevar "client"
• "parameters": Obligatorio.
• "field": título del campo con el que se desea que aparezca en los detalles del usuario "Nombre Usuario"
• "value": donde se almacena el valor del robot y almacenado en la variable de contexto "<? $nombre_usuario
?>" alternativamente si es un dato fijo se puede dejar entre comillas sin los caracteres especiales <??>
que son usados para que Watson utilice el valor contenido en la variable de contexto $nombre_usuario.

Hay que recordar que el nodo “true porque si” es un nodo que se necesita para darle manejo a la acción
de guardar extradata y no lleva ningún tipo de configuración a parte de “jump to” o “skip user input”.

.
23

En el nodo 5 de “Hacer otra cosa“ solo es para simbolizar el paso a otro punto de la conversación.

El resultado de esta acción se debe ver reflejado en los detalles del usuario como se muestra en la imagen a
continuación:

Los campos de extradata son editables, lo que quiere decir que cada vez que un usuario almacene un
nombre diferente, la extradata cambiará su valor, siempre y cuando el título sea el mismo.

Ej. primera interacción con el robot se almacena Mar, segunda interacción se ingresa Maria, haciendo que se
reemplace Mar por Maria.

Imagen: Dato almacenado en Nombre, Keybe conversa versión 5.1


24

Almacenar a campos principales

Los campos predefinidos por Keybe y que comprenden: Nombre, Apellido, teléfono y correo. Estos campos se
almacenan como muestra la imagen a continuación.

Imagen: Aplicación Keybe conversa versión 5.1

Pasos para almacenar campos principales.

Este almacenamiento funciona con el mismo paso 0 y paso 1 que se describen en el almacenamiento de
extradata. La diferencia se presenta en el action que funciona como se muestra a continuación.
25

{
"output": {
"generic": []
},
"actions": [
{
"name": "changeUserInfo",
"type": "client",
"parameters": {
"name": "Harry",
"email": "ejemplo@[Link]",
"phone": "+573100000001", // solo surgirá para canales que no sean de whatsapp
"lastName": "Potter",
"countryCode": "57"
},
"result_variable": "api_save_extradata"
}
],
"context": {}
}

Los campos de guardar extradata son:

• "actions": Obligatorio.
• "name": Siempre debe llevar "ChangeUserInfo"
• "parameters": Obligatorio.
• "name": Opcional, en el ejemplo está con un nombre fijo, pero puede llevar la variable de contexto para
que sea dinámico el dato que toma del cliente adicionando por ejemplo <? $nombre_usuario ?>
• "lastName": Opcional, en el ejemplo está con un apellido fijo, pero puede llevar la variable de contexto
para que sea dinámico el dato que toma del cliente adicionando por ejemplo <? $apellido_usuario ?>
• "email": Opcional, en el ejemplo está con un correo fijo, pero puede llevar la variable de contexto para
que sea dinámico el dato que toma del cliente adicionando por ejemplo <? $correo_usuario ?>
• "phone": Opcional, en el ejemplo está con un teléfono fijo, pero puede llevar la variable de contexto
para que sea dinámico el dato que toma del cliente adicionando por ejemplo <? $celular_usuario ?>

Solo utilizar los campos “name“, “lastName“, “email“, “phone“ si se va a almacenar información en
ellos ya que dejarlos vacíos los guardaría de esta forma, reemplazando la información que se tenga del
usuario en sus detalles y perdiendo los datos anteriores.
Especial cuidado con “phone“ ya que no debe funcionar en robots con canales de WhatsApp por el tema
de estar ligado la cuenta del usuario a su número telefónico.

Las acciones de almacenamiento de la información descritos a continuación sólo aplican para la


versión 4.0 de Keybe y no para bluebird. Contactar al equipo de success para confirmar la versión del
aplicativo donde se encuentra el robot antes de utilizar.

.
26

Almacenar Nombre

{
"output": {
"generic": []
},
"actions": [
{
"name": "changeName",
"type": "client",
"parameters": {
"value": "<? $captura_nombre ?>"
},
"result_variable": "api_save_extradata"
}
],
"context": {}
}

Almacenar Apellido

{
"output": {
"generic": []
},
"actions": [
{
"name": "changeLastName",
"type": "client",
"parameters": {
"value": "<? $apellido_usuario ?>"
},
"result_variable": "api_save_extradata"
}
],
"context": {}
}
27

Almacenar Correo
{
"output": {
"generic": []
},
"actions": [
{
"name": "changeEmail",
"type": "client",
"parameters": {
"value": "<? $correo ?>"
},
"result_variable": "api_save_extradata"
}
],
"context": {}
}

Almacenar políticas, términos de acuerdo, etc.

Los campos son:

• "actions": Obligatorio.
• "name": Siempre debe llevar "updateUserHabeasData"
• "parameters": Obligatorio.
• "habeasData": La condición del campo que debe quedar almacenada según la respuesta del usuario.
o "accepted": Acepta las políticas de datos.
o “unkown": Sin definir, así se crean por defecto cuando un usuario habla por primera vez por
alguno de los canales de la marca.
o “rejected": Rechaza la política de datos.
o “blacklisted": El usuario queda marcado en la lista negra.

{
"output": {
"generic": []
},
"actions": [
{
"name": "updateUserHabeasData",
"type": "client",
"parameters": {
"habeasData": "accepted" // 'accepted', 'unknown', 'rejected', 'blacklisted'
},
"result_variable": "api_save_extradata"
}
],
"context": {}
}
28

Cambio en los estados del journey

Los campos son:

1. "actions": Obligatorio.
2. "name": Siempre debe llevar "call_integration"
3. "parameters": Obligatorio.
4. "journeyId": el ID del estado del journey que se le debe asignar al usuario cuando pase por este action.
Por defecto se puede configurar desde Keybe que la primera conversación de un usuario inicie con
determinado estado de journey o ninguno.
5. "serviceName": Campo obligatorio y siempre debe se “keybe" sin importar el nombre de la marca.
6. "serviceAction": Campo obligatorio y siempre debe se “updateJourney" sin importar el nombre de la
marca.
7. "result_variable": Campo obligatorio, a diferencia de los almacenamientos de información, los
call_integrations si generan respuesta en el result_variable. El campo puede ser el que deseen pero se
recomienda usar “result" para que todos los call_integrations tengan la misma estructura.

El resultado de un call_integration llega dentro de la variable $[Link], donde el result es el nombre


de la variable del result_variable.

El resultado solo está disponible 1 paso en el proceso del robot asi que si desean utilizar esta respuesta
en otras partes del flujo, deben ser almacenados en una variable de contexto.

Los actions de almacenamiento de la información (saveExtradata updateUserInfo changeName


changeLastName changeEmail) no son compatibles con los call_integration. Se deben realizar los
.almacenamientos antes del call_integration, no después.

.
29

{
"output": {
"generic": []
},
"actions": [
{
"name": "call_integration",
"type": "client",
"parameters": {
"journeyId": 3260,
"serviceName": "keybe",
"serviceAction": "updateJourney"
},
"result_variable": "result"
}
],
"context": {}
}

Los IDs de los journey se pueden obtener creando los estados desde CONFIGURA/Estado

Recomendaciones
Analiza que tipo de información es relevante para tu marca y como puede ser utilizada para métricas o decisiones
estratégicas. Hay que entender que el usuario no desea entregar toda la información en la mayoría de los casos
y hacer un flujo conversacional prolongado puede llevar a la mala experiencia de usuario.

Siempre piensa en tu usuario y considera si este estaría dispuesto a continuar con el flujo si apareciera esta
pregunta.
30

Acciones con Variables de Contexto


Son campos creados desde el robot y se utilizan para guardar de forma dinámica la información ingresada por
los diferentes usuarios. Otro uso que tienen estas variables dentro de Keybe es controlar el proceso de
asignación de asesores, diferenciar entre horario laboral y no laboral, cierre de conversaciones y consulta de
información almacenados en los detalles del usuario.

Asignación de asesores
La asignación de asesores funciona creando una variable de contexto de nombre askHelp con un valor de true.

En el caso de la imagen de abajo, se genera un mensaje de bienvenida en el nodo de “Bienvenida”, cuando el


usuario pide hablar con un agente, se activa el segundo nodo que lleva un mensaje de conectar con asesor
seguido del nodo “ASK HELP” que pasa la conversación a los asesores en Keybe.

Imagen: Nodo conectar con asesor con nodo hijo ASK HELP.

Al realizar el try out de observa el diálogo como en la imagen a continuación


31

Imagen: Try it out de pedir asesor y Manage Context de watson, donde se almacenan las variables de
contexto..

Se puede revisar el Manage Context de la conversación para validar que la variable de contexto fue generada
por Watson.

El resultado en el aplicativo Keybe de la marca, se ve reflejado en el panel de CONVERSA, en el panel de


conversa de la siguiente forma:

• Panel de la izquierda: Conversación queda en bandeja de espera por asesor simbolizado por el icono
de reloj y la etiqueta de Sin Asesor se mantiene hasta que algún asesor tome la conversación.
• Panel del centro: se muestra el mensaje de “Esperando ayuda del agente…”(al usuario no le aparece
este mensaje).
32

Conexión del robot con horarios dentro de Keybe


La opción de configurar mensajes específicos para horarios fuera de línea y de conexión directa con el asesor
se realiza debe realizar dentro del robot, pero es importante tener en cuenta que los horarios se habilitan dentro
del aplicativo. En Keybe, ingresando a CONFIGURA, configurar chats, selecciona la opción horarios.

Imagen: Configuración de horarios en Keybe versión 5.1.


33

El horario fuera de línea de esta marca, por ejemplo, detonaría un mensaje de ausencia para el día domingo
todo el día, martes entre las 12:00 y las 14:00 hrs y entre las 17:30 y las 6:00 hrs.

Dentro del bot, los parámetros que se procesan para la variable de contexto $core son offline para fuera de línea
y online para en línea. Estos mismos parámetros se cambian manualmente dentro de la variable $core creada
en el manage context, con la finalidad de verificar en el try out que el flujo y los mensajes queden bien
configurados.

En el if assistant recognizes se ingresa $[Link] != null para el nodo en el que se ingresa el mensaje de
ausencia por Asesor Offline.

Imagen: Nodo de asesor offline

Un nodo hijo se configura con skip user input y usando la variable de contexto askHelp, también la siguiente
variable de contexto para cierre de chats endChat.

En el nodo inferior, se agrega otro nodo con un true que es lo mismo que decir, cuando el horario no esté fuera
de línea. A este se le puede predeterminar un mensaje de conexión con asesor y/o directamente el askHelp.
34

La lógica contraria podría realizarse, anteponiendo $[Link] != null. Esta manera se puede detallar con
claridad en la imagen que sigue.

Cierre del chat


Se puede accionar el cierre del chat con la variable de contexto endChat ingresando en el valor de este “Cerrado
por IA”.

Imagen: Nodo offline con variable de contexto endChat

El ingresar como valor “Cerrado por IA” se verá reflejado dentro del aplicativo así:

Imagen: Visualización del valor “Cerrado por IA” en Keybe versión 5.1.
35

También se puede configurar el $endChat directamente en el if assistant recognizes del nodo. Esta forma
ocasiona que no se tenga claridad dentro de Keybe si el chat fue cerrado por el robot y no fue otro el motivo.
Así que la forma recomendada es la anterior.

Imagen: Uso del endChat directamente.

Asignación automática de tags


La asignación automática de tags es un mecanismo diseñado para automatizar la estrategia de asignación de
conversaciones de asesores y además cumplir con una segmentación de acuerdo con su área de negocio.

En el ejemplo siguiente dentro del módulo CONFIGURA, se observa que se ingresan dos tags, “ventas” y
“garantía”.
36

Imagen: Ruta para configurar asignación de tags y asignación automática.


37

Imagen: Configurar asignación de tags y asignación automática.


38

Imagen: Configurar asignación de tags y asignación automática.

Los tags pasan a ser asignados a los asesores ingresados al aplicativo dando clic el tag y añadiendo al o los
asesores designados.
39

Al finalizar la configuración importante darle clic en “Actualizar cambios”

Imagen: Asignación de asesores a tags.


40

Al ingresar a editar cada administrador, al final del panel como se observa en la siguiente imagen, se encuentra
un menú que despliega las posibles etiquetas a asignar. Múltiples etiquetas pueden ser asignadas por asesor.

Dentro de IBM Watson, usualmente asignamos una nueva variable de contexto llamada $tagsla cual se va a
encargar de llevar el valor del tag ingresado en Keybe. Para el caso anterior donde se tiene etiquetas
“serviciocliente” y “compra”, estas tal cual son ingresadas a Keybe de la misma manera que esta escrita en la
variable de contexto $tags de Watson. Importante que estas etiquetas sean escritas en minúscula y que no
contengan carácteres especiales como tildes y la letra ñ.

Imagen: Asignación de tags en Watson

Cada tag es activado en la parte del flujo que es requerido. Por ejemplo, para un menú principal que despliega
a dos partes una de ventas y otra de atencion al cliente, en el nodo que direcciona a la siguiente parte de cada
flujo se activa el valor del tag.

Estos tags deben ser reiniciados, es decir, dejando el valor del tag vacío y ubicados al inicio y al final del flujo
del bot.

Casos a tener en cuenta en el uso de tags

Estos casos deben tenerse en cuenta siempre y cuando desde Keybe la opción de asignar automáticamente
conversaciones para los asesores esté habilitada:

1. Si el robot no tiene programado tags y la variable tags no existe, es decir, no se ha asignado dentro
del robot, la conversación puede ser asignada a cualquier agente.
2. Si el robot tiene tags programados y estos están actualizados dentro de Keybe, pero existen asesores
que no tienen asignados tags, la conversación desborda al agente con el tag correspondiente. Si
todos los asesores se encuentran fuera de horario laboral, la conversación se va al reloj. Solamente,
cuando entre el primer asesor con el tag correspondiente la primera conversación entrante le será
asignada.
3. Si la opción por la que entra la persona no actualiza el tag pero trae un tag de una conversación
anterior, cuando conecte con asesor, se conectará con el agente del tag último identificado.
41

4. Si el valor de tags dentro del robot se encuentra vacío, puede conectar con cualquier asesor
indiferente de si este tiene tags asignados dentro de Keybe o no.
5. Cuando se tiene un tag que se envía desde el robot pero no se tiene creado en Keybe, la
conversacion es dirigida al reloj, a la espera por atención.
42

Consulta de Información entre el Robot y Keybe


La información que se encuentra en el aplicativo tal como es
el nombre, teléfono, entre otros datos que ya fueron
previamente preguntados al usuario, pueden configurarse
desde el robot como una verificación de la variable de
contexto $core.

Al consultar variable de contexto $core desde el robot, el


sistema devuelve una estructura Json que contiene diversos
datos que pueden ser utilizados para hacer validaciones en
los nodos del robot.

En la siguiente imagen se puede observar el uso del la


variable de contexto $core para verificar si el usuario que
ingresa tiene almacenado en Keybe nombre o no. La
estructura de nodos usada en IBM que se muestra a
continuación indica que primero se realiza una validación de
la existencia o no de determinado valor en el $core (v.g.
valida si existe el nombre del usuario), si no existe el
resultado es false en cuyo caso el robot continúa la
validación al siguiente nodo hijo.

Imagen: Visualización de detalles del usuario desde Keybe versión 5.1


43

El siguiente nodo hijo ubicado por debajo del verificador del $core se activa siempre que la condición de arriba
no se cumple, en este caso, capturaría el nombre de un usuario del cual no tenemos almacenado dicho dato.

Es justo recordar que el nombre del usuario puede ser modificado cuando disponga un administrador
del negocio en Keybe.

La configuración del nodo que verifica los datos que se encuentran ya cargados en el aplicativo es la siguiente:

Imagen: Nodo de validación del nombre del usuario

Las condiciones lógicas ingresadas en el if assistant recognizes se expresan a continuación:


44

$core["conversation_context"] &&

$core["conversation_context"].user &&

$core["conversation_context"].[Link]

Siempre usar la forma de condiciones lógicas del if assistant recognizes como se acaba de mostrar,
cuando se evalúan elementos del $core o una lista/objeto creado desde las variables de contexto. Un error
en el manejo de la información daña el flujo conversacional.

La condición && es and y || es or


.
En el caso de consultar el correo electrónico puede ser usada la siguiente condición lógica:
$core["conversation_context"].[Link] y para el teléfono celular: $core["conversation_context"].[Link].

La siguiente tabla muestra las expresiones usadas para capturar el nombre del usuario y ser aplicadas como
variables de contexto dentro del diálogo de flujo del robot. En “The set context” se ingresan las siguientes:

Variable Value
$lista_nombre "<? $core['conversation_context'].[Link](' ') ?>"
"<? $lista_nombre[0].substring(0,1).toUpperCase() +
$nombre_usuario
$lista_nombre[0].substring(1).toLowerCase() ?>"

La variable lista_nombre se encarga de separar los nombres por un espacio, y la variable nombre_usuario de
pasar cada nombre de esa lista a la primera letra con mayúscula.

También se puede realizar esta misma validación con información que fue previamente capturada por el robot y
que está almacenada en extradata o campos personalizados de información.

Por ejemplo, el nodo ejemplo “1.2 Validar Empresa” contiene un nodo que valida consultando en la extradata el
campo personalizado de información que es “Empresa”. Este es el nombre del campo, el cual se verá reflejado
en el panel de información del usuario en Conversa, en Keybe.
45

Imagen: Consultar información de la extradata

Las siguientes son las condiciones usadas para consultar la extradata:

$core["conversation_context"] &&

$core["conversation_context"].user &&

$core["conversation_context"].[Link] &&
$core['conversation_context'].[Link]('data','[Link] == ''Empresa''').size()!=0 &&

$core['conversation_context'].[Link]('data','[Link] == ''Empresa''').[0].value !=""

Otros casos de uso para esta expresión filter() pueden ser consultados en la documentación de Watson
[Link]

Ejemplo del código en $core


El $core viene en una estructura Json. Esta estructura tiene una variación en sus parámetros dependiendo del
canal, esto puede ser observado en la sección de Canales - Externos. No obstante, la estructura que
mostraremos a continuación funciona igual para los diferentes canales (FB, IG, WSP, WEB).

A continuación tenemos un ejemplo de la estructura que llegaría en la variable de contexto $core.


46

WhatsApp:
{
"online": {
"offline": false
},
"mediaType": "chat",
"media": null,
"conversation_context": {
"appUUID": "XXXXAAAAA44444",
"companyUUID": "XXXXAAAAA44444",
"channel": "gupshup_wp",
"user": {
"email": "prueba@[Link]",
"name": "Harry Potter",
"UUID": "XXAA44",
"verified": false,
"terms": false,
"id": 333333,
"appUUID": "XXXXAAAAA44444,
"country": "CO",
"countryCode": "57",
"createdAt": "Sat Jan 29 2022 [Link] GMT-0500 (Colombia Standard Time)",
"createdById": 0,
"createdByName": "Hagrid",
"customId": "XXXXAAAAA44444",
"fullName": "Harry Potter",
"habeasData": "accepted",
"habeasDataIp": "",
"habeasDataSetAt": "Fri May 27 2022 [Link] GMT-0500 (Colombia Standard Time)",
"habeasDataSetById": 0,
"habeasDataSetByName": "Harry Potter",
"habeasDataURL": "",
"habeasDocument": "XXXXAAAAA44444",
"identificationType": "identification_card",
"image": "",
"isInvited": false,
"journeyId": 2633,
"lastName": "",
"phone": "3100000000",
"registerChannel": "other",
"type": "imported",
"updatedById": 0,
"updatedByName": "Hermion",
"userId": "XXXXXX",
"journey": {},
"business": [
{}
],
"extraData": [
{
"field": "Casa",
"value": "Gryffindor",
"access": "app",
47

"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444"
},
{
"field": "Edad",
"value": "18",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444",
"updatedById": "XXXXAAAAA44444"
}
],
"location": {}
}
}
}

Facebook
{
"facebookMessenger": {
"name": "facebookMessenger"
},
"online": {
"offline": false
},
"mediaType": "chat",
"conversation_context": {
"appUUID": "XXXXAAAAA44444",
"companyUUID": "XXXXAAAAA44444",
"channel": "facebookMessenger",
"user": {
"email": "",
"name": "Harry Potter",
"UUID": "XXXXXX",
"verified": true,
"terms": false,
"id": 1111111,
"appUUID": "XXXXAAAAA44444",
"country": "",
"countryCode": "",
"createdAt": "Fri Jan 07 2022 [Link] GMT-0500 (Colombia Standard Time)",
"customId": "3b2d0ec9-bd31-49c5-8593-8dfac558a9c9",
"fullName": "Harry Potter",
"habeasData": "accepted",
"habeasDataIp": "",
"habeasDataSetAt": "Wed May 11 2022 [Link] GMT-0500 (Colombia Standard Time)",
"habeasDataSetById": 0,
"habeasDataSetByName": "Harry Potter",
"identificationType": "citizen_card",
"image": "XXXXAAAAA44444",
"isInvited": false,
"lastName": "",
48

"phone": "",
"registerChannel": "facebookMessenger",
"type": "standard",
"updatedById": 0,
"updatedByName": "Keybe API KB ",
"userId": "XXXXXX",
"journey": {},
"auths": [
{}
],
"extraData": [
{
"field": "Casa",
"value": "Gryffindor",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444"
},
{
"field": "Edad",
"value": "18",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444",
"updatedById": "XXXXAAAAA44444"
}
],
"location": {}
}
}
}

Instagram
{
"instagram": {
"name": "instagram"
},
"online": {
"offline": false
},
"mediaType": "text",
"conversation_context": {
"appUUID": "XXXXAAAAA44444",
"companyUUID": "XXXXAAAAA44444",
"channel": "instagram",
"user": {
"email": "",
"name": "Harry Potter",
"UUID": "XXXXXX",
"verified": true,
"terms": false,
"id": 1111111,
49

"appUUID": "XXXXAAAAA44444",
"country": "",
"countryCode": "",
"createdAt": "Tue Nov 23 2021 [Link] GMT-0500 (Colombia Standard Time)",
"customId": "XXXXAAAAA44444",
"fullName": "Harry Potter",
"habeasData": "accepted",
"habeasDataIp": "",
"habeasDataSetAt": "Wed May 11 2022 [Link] GMT-0500 (Colombia Standard Time)",
"habeasDataSetById": 0,
"habeasDataSetByName": "Harry Potter",
"identificationType": "citizen_card",
"image": "XXXXAAAAA44444",
"isInvited": false,
"lastName": "",
"phone": "",
"registerChannel": "instagram",
"type": "standard",
"updatedById": 0,
"updatedByName": "Keybe API",
"userId": "XXXXXX",
"journey": {},
"auths": [
{}
],
"extraData": [
{
"field": "Casa",
"value": "Gryffindor",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444"
},
{
"field": "Edad",
"value": "18",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444",
"updatedById": "XXXXAAAAA44444"
}
],
"location": {}
}
}
}
50

Web
{
"web": {
"name": "web"
},
"online": {
"offline": false
},
"mediaType": "chat",
"media": "",
"conversation_context": {
"appUUID": "XXXXAAAAA44444",
"companyUUID": "XXXXAAAAA44444",
"channel": "web",
"user": {
"email": "prueba@[Link]",
"name": "Harry Potter",
"UUID": "XXXXXX",
"verified": false,
"terms": false,
"id": 1111111,
"appUUID": "XXXXAAAAA44444",
"country": "CO",
"countryCode": "57",
"createdAt": "Sat Jan 29 2022 [Link] GMT-0500 (Colombia Standard Time)",
"createdById": 0,
"createdByName": "Hagrid",
"customId": "e6213ab2-58c6-4c40-9ada-74caa2b01216",
"fullName": "Harry Potter",
"habeasData": "accepted",
"habeasDataIp": "",
"habeasDataSetAt": "Fri May 27 2022 [Link] GMT-0500 (Colombia Standard Time)",
"habeasDataSetById": 0,
"habeasDataSetByName": "Harry Potter",
"habeasDataURL": "",
"habeasDocument": "XXXXAAAAA44444",
"identificationType": "identification_card",
"image": "",
"isInvited": false,
"lastName": "",
"phone": "3100000001",
"registerChannel": "other",
"type": "imported",
"updatedById": 0,
"updatedByName": "Hagrid",
"userId": "XXXXXX",
"journey": {},
"business": [
{}
],
"extraData": [
{
"field": "Casa",
51

"value": "Gryffindor",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444"
},
{
"field": "Edad",
"value": "18",
"access": "app",
"userTransactionId": "XXXXAAAAA44444",
"jobId": "XXXXAAAAA44444",
"updatedById": "XXXXAAAAA44444"
}
],
"location": {},
"company": {
"address": "",
"url": "XXXXXXXXX",
"phone": "111111111111",
"name": "XXXXXXXX"
}
}
}
}

Todos estos campos pueden ser evaluados desde el robot, para esta explicación nos centraremos en los datos
del usuario así como la información disponible como extraData.

En el campo $core.['conversation_context'].user llegan los detalles de los campos principales del perfil de
cada usuario, asi como los detalles de la extraData o como se conocen en el aplicativo de keybe La
Información Adicional de la marca.
52

Proactividades Keybe
Si se hará uso de las proactividades de Keybe (campañas masivas y disparadores), enviando mensajes de
WhatsApp a los usuarios, la configuración de un nodo que maneje esas proactividades es obligatorio.

Las acciones de almacenamiento de información no son compatibles con las productividades de campañas
masivas ni los disparadores.

Estructura
El nodo que manejara las proactividades se debe anteponer a todos los existentes en el flujo del robot.

Debe tener configurado en el if assistant recognizes $core.proactivity_type

Imagen: proactividades, panel dialog.


53

En el siguiente ejemplo suponemos una campaña donde se enviará al usuario un bono con las opciones de si
desea aceptarlo o no.

La forma en la que la proactividad funciona es:

1. Reinicia la conversación de los usuarios que la reciben


2. El robot desconoce el contenido del mensaje de la campaña o disparador y solo hasta el momento que
el usuario responde, se reinicia la conversación y se evalúa unos parámetros específicos.
3. Las proactividades funcionan de forma indefinida y la más nueva cancela la más antigua.

Imagen: proactividades, panel dialog.

Para el primer nodo usar $core.proactivity_type

Para el siguiente usar $core.proactivity_type=='generico_1'


54

Donde generico_1 corresponde al nombre de la plantilla de la proactividad que se desea evaluar.

Puede haber múltiples plantillas evaluadas para manejar diferentes campañas ejemplo. generico_1,
generico_2, factura_1, etc.

La configuración de los Else son el elemento más importante de la configuración del $core. Deben
estar siempre.

Configuración de una campaña o disparador


Al ingresar a configurar la campaña se solicitarán 3 campos: Nombre de la campaña, Segmento (lista de números
de teléfono a los cuales se va a enviar el mensaje) y plantilla.
55
56

Imagenes: keybe envios masivos, configurando campaña.

Funcionamiento
Como bien se mencionaba antes, cuando el robot recibe la respuesta del usuario es cuando se reinicia la
conversación. Motivo por el cual todos los nodos que evalúan hasta la respuesta de “sí” y “no”, de forma que
todo se encuentran en skip user input, es decir, se evalúa en un solo paso (Reinicio, proactivity_type,
'generico_1' y respuesta del usuario).

El Else se usa entonces como un seguro en caso de que el usuario responda algo diferente a lo esperado, para
evitar que se encuentre con un action como saveExtradata con el cual no es compatible. Mirar sección de
almacenamiento de la información en keybe.

El Else puede hacer saltos a menú principal o el nodo de saludo desde que no existan action de saveExtradata.
De igual manera, no puede haber estos actions en los nodos que evalúan la proactividad.
57

Imagen: proactividades, panel dialog. Ejemplo de cómo no puede ser usado.


58

Integraciones posibles desde el bot.


A través del robot es posible consultar información de otras páginas web o aplicativos. Una de las opciones para
ello son los Webhooks.

Un Webhook permite conectar el robot con un programa externo. Para realizar esta conexión es necesario contar
con una URL desde la cual se va a realizar la solicitud POST y a la cual va a ser enviada determinada información
desde el robot.

Configuración de la Url del Webhook al cual se va a enviar la petición.

Una vez que se tiene configurada la URL en la opción de Webhooks, cualquier petición que se realice
en el robot incluso en el “try it” se envía realmente al Webhook, puesto que esta petición no llega a Keybe
sino que se envía directamente desde Watson.
59

Al tener configurada la URL como se muestra en la imagen anterior, lo siguiente es configurar la petición que
desea hacerse desde los nodos de dialogo. Desde la opción “Customize” se puede activar el nodo de dialogo
tipo Webhook:

Una vez activada la configuración tipo Webhook, la apariencia del nodo cambia y ahora contiene una sección
llamada “Parameters” desde la cual se definen los elementos clave que van a enviarse a través del Webhook. El
campo Key contiene el nombre del campo, mientras que el campo value contiene el valor que asume este
campo. Es posible enviar un valor estático (ej. El campo Teléfono) , un valor basado en una variable de contexto
previamente creada en un nodo anterior (ej. El campo Respuesta) , o un valor extraído de la variable $core (ej.
El campo Nombre)
60

El webhook al recibir la información clave opcionalmente retorna una respuesta. Con dicha información o con
otras cláusulas lógicas (true or false) el robot puede ejecutar diferentes acciones desde el Assistent responds.
61

Para más información visitar: Cómo realizar una llamada mediante programa desde el diálogo |
Documentos de IBM Cloud.

Otro tipo de integraciones se realizan por por medio de Call-Integration. Algunos ejemplos de plataformas con
las que Keybe ha realizado integraciones son Woocomerce y Shopify.

Los Call-integrations requieren previa cotización y desarrollo por parte del equipo de tecnología de Keybe. Por
medio de los Call-integrations es posible enviar y recibir información entre el robot y una plataforma web.

Los Call integration se configuran con el formato tipo JSON disponible en los nodos de dialogo. Dentro del
objeto: “parameters” del JSON se envían los datos que van a ser analizados por el sitio web con el cual se hizo
la integración. El nodo que contiene el Call-integration debe configurarse seguido de un nodo hijo en TRUE;
62

luego del nodo hijo en TRUE se realiza la validación de la respuesta que envía de regreso el call-integration. La
respuesta llega en forma de variable de contexto (precedida por el símbolo pesos $).

Ya sea vía Webhook o Call-integration, lo que estas herramientas permiten es consultar información externa que
pueda ser analizada por el robot en función de determinar la respuesta que llega al usuario final (ej. consultar
el estado de un pedido a través del número de guía). O bien enviar información que pueda ser almacenada en
bases de datos externas del cliente (Ej. Almacenar cuando y sí un usuario acepta las políticas de tratamiento de
datos.)

También podría gustarte