TUTORIALES

Aprende a Construir un Chatbot Dialogflow-WhatsApp sin código

Daniel Ferrandiz
Marketing Assistant, Landbot
Ilustración: Jana Pérez
Dialogflow WhatsApp Chatbot

Descubre cómo construir un chatbot Dialogflow-WhatsApp utilizando la interfaz sin código de Landbot y el ‘campaign manager’ de WhatsApp para reducir costes y agilizar el proceso.

La pandemia mundial y la consecuente carrera por la digitalización han dado como resultado un aumento sin precedentes en el uso de tecnologías de chatbot, inteligencia artificial y algoritmos de aprendizaje automático, acercando más que nunca el futuro de los chatbots a nuestra realidad cotidiana.

Si bien en los últimos años han ido apareciendo cada vez más chats, la mayoría de ellos son conversaciones lineales con guión en las que la aportación natural de los usuarios es limitada o inexistente. Este tipo de bots también puede ser poderoso e increíblemente útil. Sin embargo, hay momentos -y canales- en los que el uso del procesamiento del lenguaje natural (NLP, Natural Language Processing) puede marcar una diferencia positiva en la experiencia del cliente. Uno de estos canales es la aplicación de mensajería más popular del mundo, WhatsApp.

Puedes también acceder, con Landbot, a la integración de WhatsApp Business API.

Dado que WhatsApp tiene una interfaz bastante limitada en comparación con otras aplicaciones de mensajería como Facebook Messenger, la conversación se basa en gran medida en el texto en lugar de en elementos ricos de la interfaz de usuario. Por lo tanto, WhatsApp es un lienzo perfecto para las conversaciones basadas en NLP.

El problema, sin embargo, es que la mayoría de las empresas, especialmente las más pequeñas, se mantienen alejadas de los bots de NLP, pensando que su producción es demasiado cara y consume demasiado tiempo para equilibrar y/o justificar la inversión. Por lo tanto, este artículo te mostrará cómo construir un chatbot usando el software de NLP de Google Dialogflow en combinación con el ‘builder’ de Landbot y hacerlo de forma rápida, eficiente y sin perder la visión general y el control.

Así que, tanto si eres un desarrollador que busca atajos y hackeos para facilitar tu trabajo como si eres una persona con pocos conocimientos de programación, este artículo es para ti.

¿Qué Necesitas Para Crear un Asistente Dialogflow-WhatsApp Con Landbot?

Para crear un bot de Dialogflow-WhatsApp, necesitarás:

1) WhatsApp Business API. A diferencia de la WhatsApp Business App básica, la API de WhatsApp permite enviar notificaciones masivas -también conocidas como mensajes altamente estructurados (HSM, Highly Structured Messages)- a un número ilimitado de usuarios, así como integrar tu canal con chatbot(s). Para obtener acceso, primero debes solicitar la API de WhatsApp directamente o a través de un proveedor (recomendado).

2) Cuenta de Dialogflow. Si aún no tienes una, también tendrás que crear una cuenta en la consola de Google Dialogflow. El servicio es gratuito, a menos que estés interesado en funciones más avanzadas, como el análisis de opiniones.

3) Cuenta de Landbot. Para unirlo todo, necesitarás una cuenta Landbot de la que el creador visual y el gestor de campañas de WhatsApp agilizarán las partes de la creación del bot de WhatsApp-Dialogflow que aún requieran codificación. De este modo, el proceso de desarrollo será más rápido y eficaz. Por lo tanto, puedes utilizar Landbot para configurar rápidamente integraciones de terceros o realizar cálculos que de otro modo habrían requerido codificación. Y, mejor aún, te permite 'testear' la experiencia del usuario final del bot en un canal seguro de WhatsApp sobre la marcha, en tiempo real:

Cómo Crear un Chatbot Dialogflow-WhatsApp Con Landbot?

Para seguir con el tutorial, regístrate con Landbot (gratis).

NOTA: Si eres nuevo en Dialogflow y te gustaría ver una explicación más detallada de los fundamentos del uso del software, revisa nuestra guía para el uso de Dialogflow y su integración en Landbot.

1. Construye tu Agente de Dialogflow

Lo primero y más importante es que tienes que crear tu agente de Dialogflow.

En resumen, "agente" es Dialogflow, esencialmente, el bot que estás construyendo. Sus principales componentes de construcción son intentos (en inglés, 'intents') que ayudan al agente a identificar lo que el usuario realmente quiere hacer. Cada intento requiere frases de entrenamiento (todas las diferentes maneras en que un usuario puede pedir la misma cosa) y, por supuesto, las respuestas (siempre crear más variaciones para mantener las conversaciones repetidas de forma natural.

Ve a la consola de Dialogflow y simplemente haz clic para crear un nuevo agente.

crear-agente-dialogflow

Luego, crea el nombre, elige la zona horaria y el idioma para tu agente.

crear-dialogflow-agente-nombre

Cuando todo esto esté configurado, ve a la sección de intentos usando el menú de la izquierda y comienza a crear los intentos. Para el propósito de este artículo, creamos un simple agente que permite reservar y cancelar citas, así como comprobar los horarios de apertura.

dialogflow-intentos

En esta etapa, nos centramos simplemente en crear el lado conversacional del cumplimiento de intenciones ya que nos encargaremos del resto (como las integraciones) en Landbot.

2. Crear un Bot en Landbot

Una vez que estés en el panel de control de Landbot, simplemente haz clic en el botón "Build a Chatbot" en la esquina superior derecha de la interfaz y, cuando aparezca la ventana emergente de selección de canal, selecciona WhatsApp/Messenger como canal.

whatsapp-dialogflow-chatbot-de-landbot

Después de esto, serás redirigido a la biblioteca de plantillas, pero no te preocupes por eso. En su lugar, haz clic en el botón "Start from Scratch":

dialogflow-whatsapp-asistente-desde-cero

Desde allí, serás redirigido al lienzo del constructor:

landbot-builder-interfaz

3. Ajustar el Primer Bloque

El constructor de Landbot se utiliza a menudo para diseñar configuraciones estructuradas basadas en reglas que no dependen de la NLP pero que, sin embargo, son increíblemente flexibles y poderosas:

NOTE: Si estás interesado en saber más sobre las capacidades basadas en reglas, visita la guía completa de un bot basado en reglas de WhatsApp!!

Sin embargo, si deseas confiar en las entradas naturales, necesitarás hacer algunos ajustes. El más importante es permitir que el usuario sea el primero en hablar.

Como se ha mostrado en la sección anterior, al aterrizar en el interior del constructor por primera vez, ya existe un bloque de "welcome" preestablecido. ¡Bórralo!Una vez que lo hagas, verás lo siguiente:

crear-dialogflow-whatsapp-chatbot-asistente

Haz clic en el campo y cuando aparezca el menú rápido, busca el bloque "Set Variable":

set-a-variable-bloque

Cuando el editor de bloques aparezca a la izquierda, deberás establece el campo "Create/Select a variable to modify" en @welcome y "Type the Value" como ${body}

set-a-variable-para-input-usuario-whatsapp-dialogflow

@welcome es la variable que almacena la primera entrada de usuario por defecto. Al establecer su valor en ${body} le decimos al bot que reconozca una entrada de usuario libre en WhatsApp como el primer mensaje de activación.

4. Integrar el Agente de Dialogflow Con Landbot

Ahora es el momento de hacer las cosas interesantes e integrar Dialogflow con WhatsApp usando Landbot.Dibuja una flecha desde el bloque "Set Variable" y selecciona "Dialogflow" en el menú de características:

landbot-dialogflow-integracion

Ahora, para seguir adelante, tienes que subir la clave JSON de Google Project de tu agente de Dialogflow.Si nunca has hecho eso antes...Vuelve a la consola > Open Agent settings > Haz clic en el enlace del campo "Service Account":

crear-JSON-key-para-landbot-integracion

Serás redirigido a la plataforma de Google Cloud. Haz clic en los tres puntos para abrir el menú de opciones y selecciona "Create key".

crear-JSON-key-dialogflow

Cuando aparezca la ventana, selecciona JSON y haz clic en CREATE.

dialogflow-JSON

Ahora vuelve a la interfaz de Landbot y sube el archivo! (Si todo está bien, el signo de la esquina superior derecha se volverá púrpura).

landbot-dialogflow-integracion-json

En el paso número dos, necesitas definir qué datos (entrada de usuario) quieres enviar desde Landbot a Dialogflow. Ya que definimos que nuestra entrada de usuario se guardará bajo la variable @welcome, la configuración será como sigue:

configurar-dialogflow-integracion-landbot

El tercer paso es identificar qué tipo de datos quieres traer de Dialogflow a Landbot. Hay dos campos principales a definir:

👉  Variable bajo la cual se quieren guardar las respuestas del agente que se definieron en Dialogflow

👉  Entidades que quieres sacar de Dialogflow a Landbot (sólo si es aplicable)

setup-dialogflow-integracion-landbot

Sin embargo, puedes ir mucho más allá. Activando la "Advanced Configuration" en la parte superior del editor de bloques del flujo de diálogo:

avanzada-configuracion

Puedes desbloquear y configurar otros datos clave del flujo de diálogo como el contexto, la carga útil y la respuesta a las consultas:

👉  La variable de respuesta trae la respuesta del agente de Dialogflow al Landbot.

👉  Las entidades ayudan a transferir datos individuales como la fecha, la hora, la dirección, la nacionalidad, la elección de productos.

👉  El contexto de salida, la carga útil (más para los devs) y la respuesta a la consulta permiten guardar, por ejemplo, el contexto del Dialogflow o el nombre de la intención que el agente identificó y utilizarlos para establecer condiciones y diversificar el flujo.

dialogflow-whatsapp-integracion-landbot

5. Entender la Integración de Dialogflow

Una vez que termines la configuración, pulsa 'SAVE' para guardar.

Notarás que el bloque de integración de Dialogflow tiene tres salidas diferentes:: verde, amarillo, y rosa:

dialogflow-fuljo-landbot-builder

El bot toma la salida verde si la intención se identificó correctamente; la salida amarilla si la intención se identificó correctamente pero para que se cumpla necesita que el usuario proporcione una o más entidades requeridas; por último, pero no menos importante, el asistente toma la salida rosa cuando el agente no identifica la intención (fallback).

La integración más simple del agente Dialogflow se verá así:

whatsapp-dialogflow-bot-integracion-landbot

Dibuja una flecha de cada salida y selecciona “Question: Text” y en lugar de una pregunta estática inserta cualquier variable que hayas elegido para representar las respuestas del agente de DF (por ejemplo, @df_response). Guarda la respuesta del usuario bajo la misma variable que antes (@welcome), guarda los cambios y vuelve a pasar el bloque a Dialogflow. Hazlo para cada bloque y estarás listo.

Por ejemplo, en la siguiente secuencia de reserva, el bot identifica correctamente la intención como un intento de concertar una cita. Sin embargo, como todavía falta una entidad requerida, pasa por la ruta amarilla. Por lo tanto, cuando la conversación vuelve al flujo de diálogo, se mantiene dentro de esa misma intención y pregunta por la entidad que falta. Sólo después de que se recogen ambas entidades, el usuario ve la respuesta final.

Configuración de Dialogflow:

dialogflow-intento-configuracion

Experiencia del usuario final:

6. Usa Parámetros Del Brick de Dialogflow Para Operaciones Más Complejas

Además de los bloques individuales que puedes usar para construir un chatbot WhatsApp-Dialogflow, Landbot también ofrece ‘Bricks’. Los Bricks son grupos de bloques que puedes guardar y reutilizar tantas veces como quieras. Puedes hacerlos tú mismo para usar simplemente los prediseñados de la biblioteca de Bricks de Landbot:

Uno de los Bricks disponibles, que es particularmente útil cuando se trabaja con Dialogflow, es "Dialogflow Params". Es un Brick de sistema prediseñado que te ayuda a convertir y limpiar los datos avanzados de Dialogflow como el contexto de salida, la carga útil y la consulta-respuesta de un 'array' a un formato que puedes aprovechar en Landbot. Lo hace usando la característica Fórmulas que permite cálculos y procesos similares a los de Excel:

dialogflow-parametros-bloqeu

El Brick contiene 5 configuraciones:

  • Matriz de contexto de salida en cadena de contexto de salida
  • Carga a cualquier parámetro de carga que estuvieras usando
  • La respuesta a la pregunta sobre el nombre de la intención
  • La respuesta a la consulta se convierte en una puntuación de confianza
  • Respuesta a la consulta en el código del lenguaje

¿Cómo te puedes beneficiar usando estos datos?Por ejemplo, queríamos sacar el intento de Dialogflow. Así que borramos todos los demás bloques del brick que no necesitábamos y configuramos el que convierte @query_response a @user_intent:

formula-desde-peticion-respuesta-hasta-intento-usuario

(Asegúrate de crear la variable de salida - el brick propone un nombre para ella pero aún tienes que hacer clic en "Create" para activarla)Además, asegúrate de haber especificado los datos de salida que deseas convertir en el bloque de integración de Dialogflow:

dialogflow-query-respuesta

Puedes haber notado que el bloque de Parámetros de Dialogflow contiene un gran bloque de Mensajes. Como las notas dentro del bloque sugieren, existe puramente para la solución de problemas y propósitos de prueba. Por lo tanto, una vez te asegures de que la fórmula que seleccionaste funciona correctamente, puedes eliminarla.A continuación puedes ver que el bot identifica correctamente "Hi" como "Default Welcome Intent”:

whatsapp-dialogflow-intento-reconocimiento-test

Conocer el nombre de la intención puede ayudarte a establecer procesos adicionales dentro de Landbot usando Conditional Logic (Lógica Condicional):

conditional-logic-en-whatsapp-dialogflow-asistent-en-landbot

Si la variable @intent_name es IGUAL a (EQUAL TO) "Make an Appointment" puedes desviar el flujo para que pase por tu CRM u otra integración que te envíe una notificación de Slack o una notificación por email para hacerte saber sobre la nueva reserva.Por ejemplo, decidimos usar la intención identificada y subir los datos de la cita a una hoja de cálculo antes de volver al flujo de diálogo:

whatsapp-dialogflow-asistente-en-landbot-google-sheet-integracion

Aquí lo verás mejor!

Sin embargo, hay muchas otras maneras en las que puedes usar los parámetros de Dialogflow en tu beneficio. Por ejemplo, para mejorar:

👉  Experiencia del cliente, puedes redirigir todas las coincidencias de intención con confianza por debajo de 0.6 a un agente humano.

👉  Recolección de datos, una vez que se identifica un contexto se puede cambiar a un camino estructurado basado en reglas hasta que se tenga lo que se necesita para minimizar los errores de NLP y sólo el bucle de regreso a Dialogflow.

👉  Experiencia de usuario añadiendo fácilmente elementos ricos como videos, imágenes y archivos a la conversación y dividiendo las respuestas de los bots en múltiples burbujas - sin necesidad de usar código. (Por ejemplo, tu agente de DF reconoce la intención como una solicitud de más información sobre tu empresa o producto. Proporciona una respuesta, pero como tu configuración de Landbot también reconoce esta intención, redirige al usuario a una ruta que contiene un video o un mensaje de audio personalizado. Una vez que la intención se cumple, vuelve a la configuración de NLP para continuar la conversación)

7. Siempre Hay Más Trucos

Cuando se trata de Landbot, siempre hay algo más que puedes hacer para tu asistente Dialogflow-WhatsApp.

Un buen ejemplo es el brick de "Business Open/Closed". Usando un webhook que ya está configurado, puede ayudarte a dirigir a tus clientes fuera de las horas de oficina. Todo lo que necesitas hacer es ajustar los horarios de apertura dentro del webhook para reflejar tu negocio:

horas-apertura-landbot-brick

Como puedes ver, puedes identificar fácilmente:

  • Zona horaria
  • Fechas de cierre
  • Horas especiales en fechas seleccionadas
  • Horario general de apertura
datos-webhook-horas-apertura

Para configurarlo, conecta la salida "Open" con un bloque de toma de posesión humana (¡sí, es así de fácil!) y crea un camino alternativo para la salida "Closed". En este caso, le pedimos al usuario que deje un mensaje que será enviado al equipo en forma de una notificación por correo electrónico.

Si su negocio está abierto, su agente recibirá una notificación a través del gestor de chat multiagente centralizado.

Siempre que el negocio esté abierto, desde la perspectiva del usuario el traspaso se verá así:

bot-human-posesion-dialogflow-whatsapp

Desde la perspectiva de un agente:

multi-agente-chat-manager-landbot-whatsapp

Sin embargo, si el negocio está cerrado, el bot dirige al usuario por un camino alternativo pidiéndole que envíe un mensaje/ticket para ser tratado cuando el negocio se abra:

business-cerrado-redirect-dialoglfow-whatsapp

Para Resumir…

Para ser honesto, este artículo podría seguir y seguir porque las posibilidades son infinitas. Landbot ofrece una oportunidad única de personalizar y subir el nivel de tu asistente de WhatsApp de NLP sin añadir mucho tiempo y coste al proceso de desarrollo. Es una oportunidad para convertir tu estrategia de mensajes de WhatsApp en algo más.

Tanto los desarrolladores de Chatbot como los creadores de no-code tienen mucho que ganar.

Si quieres probarlo, regístrate (gratis - no se requiere tarjeta de crédito) y prueba todas las features de forma gratuita!

Publicado
August 28, 2020
en
SHARE THIS ARTICLE
Quieres escribir para nosotros? Mira nuestra guía
landbot logo white
linkedin logoinstagram logo
Copyright © 2021 HELLO UMI S.L.