Este contenido es extenso, por lo tanto, para ayudarte, aquí al lado encontrarás los títulos específicos de cada paso. ¡Simplemente haz clic y serás redirigido!
En el artículo Construyendo un flujo de chatbot, vimos la breve relación sobre los pasos (steps) disponibles para la creación de flujos.
A continuación, detallaremos cada uno de ellos y sus respectivas funciones.
Crear nuevo paso: Enviar SMS
Aquí, puedes enviar un SMS durante un flujo completando los campos Título del paso (opcional) y Mensaje a ser enviada.
En el mensaje se pueden incluir variables en el formato estándar, por ejemplo, #{username}, si se completan o responden durante el viaje.
Asegúrate de que:
La opción Sobrescribir destinatarios originales esté seleccionada;
En el campo Destinatario, debes insertar una variable que tenga como valor el número de teléfono con DDI+DDD+número, por ejemplo, 5551999999999;
La forma en que escribas la variable en el campo, por ejemplo, "#{phone}", debe ser solo el nombre sin caracteres especiales, es decir, "phone".
💡Consejo: Si utilizas el componente Valida teléfono estándar de Zenvia, la variable de salida tel imprimirá exactamente la información que el usuario respondió. Por lo tanto, solo tienes que orientarlo a escribir con DDI + DDD + número para que se envíe el SMS.
⚠️ Atencion: Para poder enviar SMS desde Zenvia Bots, es necesario tener una cuenta específica para el envío, contratada.
Crear nuevo paso: Generar URL
Paso en el que se genera la URL de la sesión de chat para enviarla al usuario.
ID de la sala de Web Chat: ID generado en la configuración del canal de chat.
Dominio de Web Chat: dominio utilizado en la sesión de chat.
Caduca en: plazo en el que la sesión de chat expirará.
Crear nuevo paso: Temporizador
Para crear un temporizador, proporciona:
Título del paso (opcional);
Minutos de espera (tiempo de espera para ejecutar el siguiente paso).
Opción de mover las variables al componente de Control de Variables y crear un nuevo paso justo debajo en el flujo.
Crear nuevo paso: Lead
El componente Lead permite la integración con las herramientas de Inbound Marketing RD Station o Sharpspring, específicamente para la generación de leads en la base de la cuenta del cliente.
Accede al menú superior derecho donde se encuentra el nombre de la organización.
Busca por Integraciones.
Y conecta con la solución que la empresa ya posee internamente.
La composición del componente es sencilla:
Añade un Título al paso (opcional).
Selecciona el proveedor que has integrado.
En Acción, si es la primera vez en el flujo que se está creando el paso, selecciona Crear.
Para la primera opción de Campo, selecciona Correo electrónico.
En Expresión, proporciona la variable de tu flujo que tenga como valor los datos deseados. En este caso, el primero siempre es el correo electrónico.
Escríbelo según el estándar de Zenvia Bots: #{user_email}, por ejemplo.
Crear nuevo paso: Fork y Join
La Forky y Join permiten realizar una Fork en el flujo, permitiendo que la jornada ejecute dos tareas en paralelo. Normalmente se utilizan en lógicas que implican controlar el tiempo de ejecución en una tarea específica. Por ejemplo: si la tarea no se ejecuta en el tiempo estimado, y para eso también utilizamos el paso (step) del temporizador, es posible programar el resto de la jornada en función del cumplimiento, o no, de la condición.
Fork
Crea una Fork, realizando un paralelismo en el flujo, permitiendo la ejecución de dos jornadas simultáneas.
Join
Agrupa la Forkde los pasos (steps) realizada por la Fork.
En la práctica
¿Necesitas editar el componente con algún dato para realizar la configuración? Sí.
Simplemente abre el paso (step), elimina la palabra payload en el campo Expresión y haz clic en Aceptar.
Automáticamente, el Título del paso se definirá como Dividir el flujo.
Para el Join, el título automático es Unificar el flujo.
En el ejemplo siguiente, hay un escenario en el que se pregunta al usuario cuál es su pregunta y se ha incluido un temporizador de X tiempo en caso de que la pregunta no sea respondida. Si el usuario responde a la pregunta, la variable #{duvida} se completará y el flujo continuará. En caso de que se alcance el tiempo establecido, el flujo seguirá con la continuación de la y Join sin completar la variable.
Aprende a crear la ramificación y, si lo deseas, copia el Json en un flujo en blanco para ver la estructura en Zenvia Bots:
{
"alias": "Teste",
"description": "",
"steps": [
{
"id": "step03",
"type": "fork",
"properties": {
"timeUnit": "minute",
"expirationInMinutes": ""
}
},
{
"id": "step0",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "¿Cuál es tu pregunta?"
}
}
]
},
{
"id": "step04",
"type": "exclusiveJoin",
"properties": {
"timeUnit": "minute",
"expirationInMinutes": ""
}
},
{
"id": "step02",
"type": "chatEvent",
"variables": {
"duvida": "payload"
}
},
{
"id": "step05",
"type": "timerEvent",
"properties": {
"expiresInMinutes": "2",
"timeUnit": "minute",
"expirationInMinutes": ""
}
},
{
"id": "idEventoFinal",
"type": "endEvent",
"label": "label 3",
"properties": {
"endEvent": "true"
}
},
{
"id": "idEventoInicial",
"type": "chatEvent",
"label": "Evento inicial",
"properties": {
"startEvent": "true"
},
"variables": {
"chatFrom": "empty"
},
"conditions": [
{
"type": "channelSourceCondition",
"values": [
""
]
}
]
}
],
"connections": [
{
"from": "step03",
"to": "step02"
},
{
"from": "step05",
"to": "step04"
},
{
"from": "step03",
"to": "step05"
},
{
"from": "step04",
"to": "idEventoFinal"
},
{
"from": "step02",
"to": "step04"
},
{
"from": "step0",
"to": "step03"
},
{
"from": "idEventoInicial",
"to": "step0"
}
],
"defaultConversationalChannel": "CHAT"
}
Crear nuevo paso: Json API
Paso que permite que el flujo se conecte con otros sistemas, realizando acciones que generan resultados a partir de reglas Json API (Rest).
💡Consejo: Esta integración solo funcionará con APIs que devuelvan JSON como respuesta.
El Título del paso se llena automáticamente como "Llamada de API", donde la edición es opcional.
En Método, puedes elegir entre GET, POST, PUT, PATCH y DELETE.
En URL, es el campo que debe completarse con el punto final al que se conectará el flujo.
Si la llamada requiere parámetros y encabezados obligatorios, ingrésalos en Parámetros de consulta y Encabezados (HTTP), respectivamente.
A partir de cada método, el componente cambia, variando los campos. Por ejemplo, al elegir POST, PUT, PATCH o DELETE, habilita la opción de crear el cuerpo de la solicitud, donde puedes incluir el formato necesario para que la llamada sea exitosa.
💡Consejo: En cualquier campo del componente Json API, se permite insertar variables recopiladas durante el flujo en el formato de Zenvia Bots. Por ejemplo, #{nombre}.
Generalmente, cada llamada API resulta en un resultado a partir de la conexión. Por lo tanto, el componente permite utilizar el formato estándar de absorción de variables, utilizando la expresión #{response} como estándar, como se muestra a continuación.
Mira un ejemplo práctico a través de este artículo: Configurando la integración con API externa.
¡Importante!
Zenvia Bots no acepta caracteres especiales en los parámetros, por ejemplo, $. Puedes agregar este tipo de carácter en los parámetros de consulta con comillas simples, por ejemplo, '$param1', o agregarlo directamente en la URL a la que se va a realizar la solicitud GET.
Crear nuevo paso: Configurar Webhook
Configurar un Webhook en un viaje automatizado es una opción práctica que permite establecer comunicación entre dos entornos.
En Zenvia Bots, para implementar este paso (step), simplemente sigue las siguientes instrucciones:
Crea un Título para el paso (opcional).
Define el Tipo de Webhook (Fijo o Dinámico).
Crea un Identificador / nombre para el Webhook.
Automáticamente, una vez que generes el Identificador, se generará la URL.
En Contacto (clave principal), debes ingresar la información utilizada para identificar el retorno de la llamada al flujo. Es decir, lo que estamos esperando como el ID de la conversación, definido con cualquier nombre. Este campo garantiza la seguridad de los datos.
En Json Path, especifica lo que el medio externo (API) debe devolver para que coincida con el campo Contacto.
En Opciones Avanzadas, tienes la opción de declarar nuevas variables para usarlas durante todo el flujo, según las necesidades del creador del viaje.
Crear nuevo paso: Recibir Webhook
Este paso representa al Webhook en estado de espera, esperando el ID de la llamada y otra información para poder consumirla y continuar en el viaje.
Ingresa un Título para el paso (opcional).
Utiliza las variables estándar enumeradas en el componente para gestionar la información o separar el retorno de las variables (inicializar el contenido recibido), al igual que en la llamada de Json API, que se encuentra en este mismo artículo.
Crear nuevo paso: Enviar Correo Electrónico
Dentro de Zenvia Bots, hay un paso (step) que permite enviar correos electrónicos en un momento específico del viaje, como parte de la experiencia configurada.
Para que este proceso se realice con éxito, es necesario:
Que el cliente tenga contratada la herramienta de mercado SendGrid.
Accede al menú superior derecho, donde se encuentra el nombre de la organización.
Busca Integramos.
Y conecta el ID de tu cuenta SendGrid en el campo de Correo Electrónico.
Para editar el componente, sigue los pasos a continuación:
Asunto del correo electrónico: información visible en el correo electrónico principal, con el tema propuesto de la comunicación.
Dirección de correo electrónico de origen: muestra de dónde proviene el correo electrónico o quién lo envía.
Dirección de correo electrónico de destino: el destinatario del correo electrónico.
Contenido del correo electrónico: contenido de la comunicación deseada.
Recuerda que todos los campos de texto pueden incluir variables.
En el campo Dirección de correo electrónico de destino, solo puedes ingresar una dirección de correo electrónico.
Si es necesario enviar a más de una dirección de correo electrónico, puedes recopilar correos electrónicos en viajes paralelos, dependiendo del usuario, y absorber la información en una variable, como #{user_email}, por ejemplo.
Hablando de variables: ¿qué sucede cuando el correo electrónico no se envía en algunos casos?
Principal escenario de atención:
Si se envía un correo electrónico que imprime algunas variables del flujo en el Contenido, es obligatorio completar todas ellas con la información correspondiente.
Si alguna variable está vacía, el paso Dispara Correo Electrónico no comprenderá la acción y no se realizará.
En otras palabras, no incluyas variables en el contenido del correo electrónico que no hayan pasado por el camino del viaje.
Crear nuevo paso: Valida CNPJ
Componente que solicita el CNPJ de un usuario y espera su respuesta. A partir de esto, se valida la información y, en caso de que no cumpla con el formato de un CNPJ válido, se realiza una nueva pregunta.
Configuración de la información de entrada*:
*Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta después de respuesta incorrecta: frase enviada al usuario cuando el CNPJ proporcionado no es correcto. Pregunta inicial: texto para preguntar al usuario cuál es el CNPJ. Cantidad máxima de intentos: cantidad de intentos que el usuario tendrá para proporcionar el CNPJ, permaneciendo en un bucle de preguntas y respuestas. Mensaje de desistimiento: texto para enviar después de que el usuario haya cometido la cantidad de errores establecida.
Variables de salida*:
*Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que los datos se completarán en una de las variables de salida.
CNPJ formateado: #{user_cnpj_formatted} - Formatea el CNPJ con puntuación y guiones. CNPJ válido: #{is_cnpj_valid} - Indica si el CNPJ proporcionado es verdadero (true) o falso (false). CNPJ del usuario: #{user_cnpj} - CNPJ ingresado por el usuario.
¡Recuerda! Si se configura un límite de X intentos para que el usuario responda correctamente y aún así no tiene éxito en la respuesta, la variable de salida #{is_cnpj_valid} será igual a false. En otras palabras, es posible realizar una validación mediante la inserción de un Punto de Decisión después del paso (step) de Valida CNPJ con la regla de que si is_cnpj_valid == false, el flujo tomará otro rumbo, como la atención humana, por ejemplo.
Crear nuevo paso: Valida CPF
Componente que solicita el CPF de un usuario y espera su respuesta. A partir de esto, se valida la información y, en caso de que no cumpla con el formato de un CPF válido, se realiza una nueva pregunta.
Configuración de la información de entrada*:
*Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta inicial: texto para preguntar al usuario cuál es el CPF. Pregunta después de respuesta incorrecta: frase enviada al usuario cuando el CPF proporcionado no es correcto. Cantidad máxima de intentos: cantidad de intentos que el usuario tendrá para proporcionar el CPF, permaneciendo en un bucle de preguntas y respuestas. Mensaje de desistimiento: texto para enviar después de que el usuario haya cometido la cantidad de errores establecida.
Variables de salida*:
*Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que los datos se completarán en una de las variables de salida.
CPF formateado: #{user_cpf_formatted} - Formatea el CPF con puntuación y guiones. Cantidad de intentos fallidos: #{countTries} - Muestra la cantidad de intentos. CPF válido: #{is_cpf_valid} - Indica si el CPF proporcionado es verdadero (true) o falso (false). CPF del usuario: #{user_cpf} - CPF ingresado por el usuario.
¡Recuerda! Si se configura un límite de X intentos para que el usuario responda correctamente y aún así no tiene éxito en la respuesta, la variable de salida #{is_cpf_valid} será igual a false. En otras palabras, es posible realizar una validación mediante la inserción de un Punto de Decisión después del paso (step) de Valida CPF con la regla de que si is_cpf_valid == false, el flujo tomará otro rumbo, como la atención humana, por ejemplo.
Crear nuevo paso: Valida CEP
El paso Pregunta CEP valida el formato de la información, verifica su existencia en la API pública http://viacep.com.br y devuelve información sobre estado (UF), ciudad, barrio y calle.
Configuración de la información de entrada*:
*Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta CEP: texto para preguntar al usuario cuál es el CEP. Pregunta después de respuesta incorrecta: frase enviada al usuario cuando el CEP proporcionado no tiene el formato correcto. Pregunta después de CEP no encontrado: texto para enviar después de que el usuario haya proporcionado un CEP inexistente.
Variables de salida*:
*Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que los datos se completarán en una de las variables de salida.
Calle: #{logradouro} - Imprime la dirección del CEP. Localidad: #{localidade} - Ciudad del CEP. CEP: #{cep} - CEP proporcionado. Barrio: #{bairro} - Barrio del CEP. UF: #{uf} - Estado del CEP.
Crear nuevo paso: Valida E-mail
Pregunta el correo electrónico de un usuario, valida según las reglas de puntuación y estructura estándar ([email protected]) y almacena la respuesta.
Configuración de la información de entrada*:
*Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta inicial: texto para preguntar al usuario cuál es su correo electrónico. Pregunta después de respuesta incorrecta: frase enviada al usuario cuando el correo electrónico proporcionado no es correcto. Cantidad máxima de intentos: cantidad de intentos que el usuario tendrá para proporcionar el correo electrónico, permaneciendo en un bucle de preguntas y respuestas. Mensaje de desistimiento: texto para enviar después de que el usuario haya cometido la cantidad de errores establecida.
Variables de salida*:
*Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que los datos se completarán en una de las variables de salida.
Correo electrónico válido: #{is_email_valid} - Indica si el correo electrónico proporcionado es verdadero (true) o falso (false). Correo electrónico del usuario: #{user_email} - Correo electrónico proporcionado en la respuesta.
¡Recuerda! Si se configura un límite de X intentos para que el usuario responda correctamente y aún así no tiene éxito en la respuesta, la variable de salida #{is_email_valid} será igual a false. En otras palabras, es posible realizar una validación mediante la inserción de un Punto de Decisión después del paso (step) de Valida CPF con la regla de que si is_email_valid == false, el flujo tomará otro rumbo, como la atención humana, por ejemplo.
Crear nuevo paso: Valida Teléfono
El componente Valida Teléfono permite que el usuario ingrese un número de teléfono en el formato con código de área (DDD) + número.
Configuración de la información de entrada*:
*Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Texto para solicitar el teléfono: pregunta inicial al usuario.
Variables de salida*:
*Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que los datos se completarán en una de las variables de salida.
Teléfono formateado: #{telFormatado} - Dato impreso formateado (XX) XXXX-XXXX. Tipo de dispositivo: #{tipoTelefone} - Realiza la distinción entre fijo y celular. Teléfono: #{tel} - Número de teléfono sin formato.
Crear nuevo paso: Pregunta Nombre
La funcionalidad de Pregunta Nombre realiza la consulta al usuario, preguntándole su nombre y almacenando la respuesta.
Configuración de la información de entrada*:
Las informaciones de entrada se refieren a los datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta: pregunta inicial al usuario.
Pregunta después de respuesta incorrecta: pregunta en caso de respuesta incorrecta.
Variables de salida*:
Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que el dato ya será llenado en una de las variables de salida.
Nombre del usuario: #{username} - Nombre respondido
Crear nuevo paso: Pregunta Fecha
El componente de Pregunta Fecha valida una respuesta en formato dd/MM/aaaa, realizando el tratamiento cuando el usuario ingresa algún elemento que no sigue el patrón.
Configuración de la información de entrada*:
Las informaciones de entrada se refieren a datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta inicial: texto para preguntar al usuario la fecha.
Pregunta después de respuesta incorrecta: frase enviada al usuario cuando la fecha proporcionada no es correcta.
Cantidad máxima de intentos: cantidad de intentos que el usuario tendrá para proporcionar la fecha, permaneciendo en un bucle de preguntas y respuestas.
Mensaje de abandono: texto para enviar después de que el usuario haya cometido la cantidad de errores establecida.
Variables de salida*:
Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que el dato ya será llenado en una de las variables de salida.
Fecha válida: #{is_date_valid} - Indica si la fecha proporcionada es verdadera (true) o falsa (false).
Fecha: #{user_date} - Fecha proporcionada con formato.
El componente Pregunta Fecha también sigue la misma lógica que otros componentes mencionados en este artículo (como valida CNPJ y CPF) con respecto al manejo de intentos.
Crear nuevo paso: Encuesta NPS
El paso de Encuesta NPS permite la creación de una encuesta de satisfacción durante la jornada del flujo.
Configuración de la información de entrada*:
Las informaciones de entrada se refieren a datos obligatorios para que la lógica del paso (step) se realice con éxito.
Pregunta Cuantitativa: pregunta sobre el grado de satisfacción del usuario.
Variables de salida*:
Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que el dato ya será llenado en una de las variables de salida.
Nota: #{nota} - Nota cuantitativa.
Respuesta cualitativa: #{resp_qualitativa} - Comentario si la nota está por debajo del promedio esperado.
Crear nuevo Paso: Integración Zenvia Conversion
Los clientes que hayan contratado Zenvia Conversion pueden agregar este complemento a su flujo cuando consideren necesario hacer una transferencia a un agente humano.
¿Cómo funciona?
Básicamente, el usuario inicia una conversación a través de WhatsApp y cuando la automatización llega al paso de 'Integración Zenvia Conversion', el usuario es transferido a una sala con agentes en la aplicación de Zenvia Conversion. El agente mantiene una atención personalizada a través del canal de WhatsApp y, al finalizar la conversación, la interacción con el usuario puede cerrarse o volver a la automatización del flujo.
Configuración de la información de entrada*:
La información se divide en esencial y parámetros adicionales. El primer grupo debe completarse obligatoriamente, mientras que el segundo es opcional.
Siguiendo la tendencia en la mayoría de los casos, los campos ya están completados con una frase de sugerencia, pero puedes ajustar los mensajes y otras configuraciones para que se integren con la propuesta de tu flujo.
Variables de salida*:
Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que el dato ya se completará en una de las variables de salida.
La primera implementación de esta funcionalidad requiere ciertos cuidados en la configuración:
Solo es compatible con el canal de WhatsApp, y el número de canal registrado en Zenvia Conversion debe ser el mismo que el registrado en Zenvia Bots.
Solo después de contratar el producto Zenvia Conversion y recibir un token de acceso de Zenvia Conversion, este token debe ser ingresado en el complemento Zenvia Conversion de Zenvia Bots.
Crear nuevo paso: Mes por extenso
La funcionalidad de Mes por Extenso identifica el número proporcionado y devuelve el nombre completo del mes para su uso en el flujo.
Configuración de la información de entrada*:
Las informaciones de entrada se refieren a datos obligatorios para que la lógica del paso (step) se realice con éxito.
Número del mes: variable creada para almacenar el número correspondiente al mes.
Variables de salida*:
Son datos que pueden utilizarse en la continuidad del flujo, estableciendo reglas e información. Además, al utilizar el componente, no es necesario crear un Mensaje del Usuario para recopilar la respuesta, ya que el dato ya será llenado en una de las variables de salida.
month_name: variable que contendrá el nombre completo del mes correspondiente al número proporcionado como parámetro de entrada.
Crear nuevo Paso: Integración Watson
Con el uso del componente, es posible registrar las credenciales de la Workspace de Watson Assistant que la empresa ya posee, lo que permite acciones basadas en conocimiento, previendo salidas específicas a partir de respuestas configuradas.
Configuración de la información de entrada*:
Las informaciones de entrada se refieren a datos obligatorios para que la lógica del paso (step) se realice con éxito.
Todas las siguientes informaciones de Watson deben obtenerse directamente en la página de Skills de Watson, específicamente accediendo a la base de conocimiento (datos) que se desee integrar.
Ubicación para acceder a Watson (IBM) para la composición del componente:
Código de Autorización: código en Base64 que combina la información de la clave API y su valor que aparece en la pantalla. Ejemplo:
Un consejo para combinar los datos es utilizar el sitio https://www.base64encode.org/ e ingresar los datos de la siguiente manera:
El resultado será en este formato: YXBpa2V5OnQ5gTU1nZU5hV0FWXXbkJ2ZWJaWnFpLWFlWQldKYzhoNGw=
Inserta este resultado seguido de la palabra "Basic":
Basic YXBpa2V5OnQ5gTU1nZU5hV0FWXXbkJ2ZWJaWnFpLWFlWQldKYzhoNGw=
URL de Watson: parte inicial de la URL que se encuentra en el campo URL del workspace v1 Legacy:
O
Inserta solo la parte hasta .net o .com
Resto de la URL: inserta el resto de la URL que se encuentra en el campo URL del workspace v1 Legacy, agregando /?version=2018-09-20 al final. Ejemplo:
/assistant/api/v1/workspaces/b2a4d877-8a6f-4d6f-981e-XXXXX287d27/message/?version=2018-09-20
O
/instances/b2a4d877-8a6f-4d6f-981e-XXXXX287d27/v1/workspaces/c8eabcad-XXX-48a2-XXX-d1b7f205XXc6/message/?version=2018-09-20
Pantalla completa del componente Watson.
Más parámetros: opción para especificar las intenciones de salida de Watson, continuando la conversación en el flujo.
Nombre de las intenciones para salida de Watson: da nombre a las intenciones configuradas dentro de Watson Assistant, de modo que cuando se activen en la herramienta, el componente las retorne al flujo en Zenvia Bots. Ejemplo:
Si existe una intención llamada "Atención Humana", donde la persona solicita hablar con un agente y en ese momento Watson la asocia con la intención, el usuario vuelve a Zenvia Bots y se dirige a un humano en ese mismo momento.
Variables de salida:
Intención de Watson que sale al flujo guiado: #{out01} - nombre de la intención por escrito.
Ejemplo de plantilla para usar en Zenvia Bots:
Copia todo el JSON a continuación y pégalo en un nuevo flujo, reemplazando el código existente para ver la lógica inicial con algunos consejos:
{
"alias": "[Template] Flujo con Watson Assistant",
"description": "",
"steps": [
{
"id": "step0",
"type": "callComponent",
"label": "Integración Watson",
"properties": {
"componentId": "a531c540-9627-4fbf-891b-567ea61b7a64",
"timeUnit": "minute",
"expirationInMinutes": ""
},
"inputs": {
"intents": "'atencion, salir, volverMenu'",
"authorization_Watson": "'[CÓDIGO EN BASE 64 DE LA CLAVE API:CÓDIGO]'",
"url_Watson": "'[URL DE LA CUENTA HASTA .NET]'",
"resource_Watson": "'[RESTO DE LA URL, AGREGANDO "/?version=2018-09-20" al final de la URL. Ejemplo: 12345/message/?version=2018-09-20]'"
}
},
{
"id": "step03",
"type": "branch",
"label": "¿Cuál es la dirección?"
},
{
"id": "step04",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "¡Adiós!"
}
}
]
},
{
"id": "step02",
"type": "chatEvent",
"properties": {
"timeUnit": "minute",
"expirationInMinutes": ""
},
"variables": {
"userMsg": "payload"
}
},
{
"id": "step020",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "Inicia una conversación y configura Watson Assistant según tu cuenta en IBM"
}
}
]
},
{
"id": "idEventoFinal",
"type": "endEvent",
"label": "Etiqueta 3",
"properties": {
"endEvent": "true"
}
},
{
"id": "idEventoInicial",
"type": "chatEvent",
"label": "Evento inicial",
"properties": {
"startEvent": "true"
},
"variables": {
"chatFrom": "empty"
},
"conditions": [
{
"type": "channelSourceCondition",
"values": [
""
]
}
]
},
{
"id": "step0202",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "Cuando el usuario responda una pregunta que debe ser absorbida por Watson, la variable debe tener siempre el nombre de "userMsg". Esto nos permite acceder a la base de la IA."
}
}
]
},
{
"id": "step0203",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "Es posible configurar salidas de intenciones específicas en Watson. Es decir, el cliente solo vuelve a interactuar con el bot si en la conversación en la IA la respuesta coincide con alguna intención de escape configurada en el componente. Por ejemplo: si la interacción en la IA coincide con la intención "atención humana", el componente Flow identifica la intención y completa la variable OUT01 con su nombre. Y así, es posible dirigir la jornada según el ejemplo a continuación."
}
}
]
},
{
"id": "step05",
"type": "sendChatActivity",
"properties": {
"from": "#{session['chatFrom']}"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "Atención Humana"
}
}
]
}
],
"connections": [
{
"from": "step02",
"to": "step0"
},
{
"from": "step03",
"to": "step05",
"label": "Atención",
"conditions": [
{
"type": "elCondition",
"expression": "out01 == 'atencion'"
}
]
},
{
"from": "step04",
"to": "idEventoFinal"
},
{
"from": "step03",
"to": "step04",
"label": "Salir",
"conditions": [
{
"type": "elCondition",
"expression": "out01 == 'salir'"
}
]
},
{
"from": "step020",
"to": "step0202"
},
{
"from": "step0",
"to": "step0203"
},
{
"from": "step0203",
"to": "step03"
},
{
"from": "step03",
"to": "step020",
"label": "Volver",
"conditions": [
{
"type": "elCondition",
"expression": "out01 == 'volverMenu'"
}
]
},
{
"from": "step05",
"to": "idEventoFinal"
},
{
"from": "step0202",
"to": "step02"
},
{
"from": "idEventoInicial",
"to": "step020"
}
],
"defaultConversationalChannel": "CHAT"
}
⚠️ Atencion: Como se muestra en el ejemplo anterior (JSON), la variable de Mensaje del Usuario debe tener siempre el nombre "userMsg" para acceder al componente Watson.