Sin conocimientos de Dialogflow y en solo 10 minutos este tutorial te enseña a crear un bot que pregunta una serie de datos a los usuarios y es capaz de guardarlos en Google Sheets.
La plataforma de comprensión del lenguaje natural Dialogflow permite integrarse con todo tipo de servicios a través de su API y por medio de Webhooks; métodos utilizados para conectar distintas plataformas entre sí e intercambiar información entre ellas por medio de mensajes con una estructura particular.
¿Cómo integro Dialogflow con Google Sheets?
Dialogflow es una plataforma gratuita y perfecta para crear chatbots y que no requiere de conocimientos técnicos.
Sin embargo, una vez necesites integrar un chatbot con un servicio externo surgirá la necesidad de aprender sobre su API o Webhooks, comprender el funcionamiento y escribir código para poder llevar a cabo aquello que requieras, lo que termina siendo una importante barrera para muchos.
Conectando Google Sheets sin necesidad de programación
Por suerte otras plataformas han resuelto este problema y habilitado mecanismos para poder unir ambas plataformas (y muchas otras) sin que para ello debamos saber programar.
Como resultado, ya podemos crear de principio a fin un asistente virtual capaz de comunicarse con otros servicios sin programar una sola línea de código, y más importante aún: gratis.
Escenario: Lo que aprenderás a continuación es a crear un bot capaz de consultar varios datos a los usuarios con los que hable y seguidamente guardar las respuestas en una hoja de cálculo.
Vas a aprender cómo se usa Dialogflow para hacer este tipo de asistentes virtuales y cómo conectarlo a otros servicios.
Nivel de dificultad: Bajo. No necesitas ningún conocimiento técnico para crear este tipo de bots. Al terminar sabrás cómo modificar el bot para que haga las preguntas exactas que necesites para tu caso, además de guardar cada dato en las celdas concretas que necesites.
Tiempo de implementación: Siguiendo estos pasos no te llevará más de 15 minutos empezar y terminar el chatbot.
¿Cómo se usa Dialogflow?
Como ya sabes es una plataforma de Google que además de gratuita es de las más utilizadas a la hora de crear asistentes virtuales.
Estos se diseñan en torno a las distintas fases (llamadas «intents») por las que puede pasar la conversación. Para entenderlo nada mejor que un ejemplo.
El bot de una cadena de pizzas se diseñaría de acuerdo a 4 posibles fases:
- Fase 1: Saludo
- Fase 2: Configuración del pedido
- Fase 3: Pago
- Fase 4: Confirmación
Podría extenderse e incluir fases para consultas o cancelaciones de pedidos, pero no deja de ser más de lo mismo.
Este diseño orientado en fases es lo que permite dividir en piezas simples un flujo o conversación que podría parecer complejo de abarcar.
Como en una conversación real, cada una de estas fases (o «intents») tienen un propósito concreto: recoger datos del usuario, ofrecer información, interactuar con otro servicio (pasarela de pago, software de la empresa, etc).
Nuestro trabajo y la manera de trabajar en Dialogflow es crear tantas fases como necesitemos y esto es justo lo que vamos a hacer ahora.
Creando el chatbot
Vamos a ver los pasos para crear un bot que nos pregunte 3 datos y al terminar se encargue de guardar nuestras respuestas en una hoja de cálculo.
Crearemos la fase («intent») más importante de todas, la de recogida de datos del usuario. Iremos directamente a cubrir nuestra necesidad principal, preguntando al usuario aquellos 3 datos que necesita saber el bot para guardarlos en un documento Excel.
El objetivo es que cualquier persona que tenga acceso al bot pueda conversar con él y los datos se almacenen cada vez en una nueva fila de la hoja de cálculo.
En primer lugar y como no puede ser de otro modo, accede a la web de Dialogflow.
Una vez dentro haz clic en el botón para crear un nuevo bot o agente: CREATE AGENT.
Selecciona un idioma y una zona horaria.
Ahora dale un nombre al bot y haz clic en el botón CREATE.
Haz clic en el “Intent” que ya viene por defecto para comenzar la configuración: Default Welcome Intent.
El bot iniciará una nueva conversación con nosotros cada vez que le escribamos una frase determinada, por ejemplo “Quiero añadir una nueva fila”.
Escribe esta frase o una similar en la caja de texto que tienes debajo de Training phrases.
Enseña al bot a preguntar
A continuación vamos a definir qué es lo que exactamente debe pedir el bot a los usuarios.
Cada cosa que ha de preguntar el bot se va a llamar «parámetro». Si un bot ha de preguntar por el nombre del usuario, crearemos el parámetro «nombre», si ha de preguntar por el teléfono de contacto crearemos el parámetro «telefono», etc.
Podemos nombrar a los parámetros como queramos, pero es una buena práctica y te evitará problemas en el futuro si utilizas nombres lo más auto explicativos posibles.
Hagamos entonces que pida un texto al usuario. Algo que luego guardará en la columna A de la hoja de cálculo. Como este es un ejemplo, llamaremos al parámetro «columna_a».
Para ello baja hasta el apartado Action and parameters.
Marca la casilla REQUIRED para indicar que el campo es obligatorio, es decir, que hasta que el usuario no responda el bot seguirá pidiendo por él.
Seguimos y ahora escribimos el nombre del parámetro en PARAMETER NAME. Como hemos dicho lo llamaremos columna_a.
A continuación vamos a escribir en ENTITY lo siguiente: @sys.any
Esto último es para indicar qué tipo de respuesta esperamos del usuario: si un nombre o un email, un código postal, un número, etc. Tienes la lista completa aquí. @sys.any es la manera de decir «cualquier cosa vale».
Ya solo nos queda enseñarle al bot cómo preguntar al usuario por el parámetro columna_a. Para hacerlo haz clic en define prompt.
Se abrirá una ventana donde podrás formular la pregunta, por ejemplo: ¿Cuál es el valor de la columna A?
Ahora repitamos el mismo proceso para preguntarle por el texto que guardará en la columna B.
Y lo mismo para un texto que guardará en la columna C.
Borremos ahora las frases que vienen predeterminadas para cuando el bot termina la conversación con un usuario.
Ahora personalicemos una frase para terminar la conversación, por ejemplo: Los datos se han enviado a la hoja de cálculo.
Guardemos los cambios…
…y probemos el resultado.
Cómo probar el bot
Escribiéndole al bot en el chat que nos da Dialogflow y que tienes arriba a la derecha. Puedes tanto escribirle como hablarle si usas el icono del micrófono que tienes al lado de la caja de texto.
Comprueba cómo el bot responde a nuestro mensaje más abajo.
Completa la conversación con el bot respondiendo las 2 preguntas que nos quedan.
Perfecto, has completado la primera conversación con tu bot. Fíjate cómo ha respondido usando la última frase que le configuramos.
Es hora de probar a interrumpir la conversación. Si necesitas volver a empezar de cero o terminar la conversación puedes responderle en cualquier momento con una palabra como “Cancelar”.
Listo, el flujo del bot está terminado y ahora podemos pasar a crear la tarea automática que guarde los datos en la hoja de cálculo.
Pasos para crear la tarea automática
Entra en Botize.com y accede con tu cuenta de usuario.
Una vez dentro haz clic en nueva tarea.
Haz clic en el primer paso de la tarea.
Cambia aquí el tipo de tarea por la que dice “Petición GET o POST” para que Dialogflow pueda ejecutarla.
A continuación indica cuáles son los parámetros que has definido en el bot y que se van a guardar en la hoja de cálculo.
Para ello en el campo Parámetro escribes el nombre: columna_a
Y en el campo Nombre para mostrar lo escribes de este otro modo: Columna A
Haz lo mismo con columna_b y columna_c.
Haz clic en Siguiente…
Y ahora selecciona la aplicación Google Sheets.
Selecciona la opción Añade una nueva fila al final de una hoja.
Pega la URL que te muestra el navegador para la hoja de cálculo que quieres utilizar. Si aún no tienes una hoja de cálculo es momento de crearla y copiar la URL que te da Google.
Indica en qué columna de la hoja quieres guardar el parámetro columna_a.
Esto lo hacemos escribiendo la letra «a» en el campo Columna y seleccionando el tag columna_a en el campo Valor.
Haz lo mismo con las columnas B y C.
Ahora ya podemos hacer clic en Siguiente…
Y Guardar cambios.
Vé al apartado Mis tareas.
Entra en la tarea que acabas de crear haciendo un clic en ella.
Haz clic de nuevo en el primer paso de la tarea.
Y ahora clic en el botón Obtener la URL de esta tarea.
Copia la dirección que aparece en Webhook URL Síncrono y con esto hemos terminado con la tarea automática.
Pasos para conectar la tarea al bot
Volvamos a Dialogflow donde lo dejamos.
Habilita la opción de Webhooks haciendo clic Enable webhook call for this intent, que en nuestro caso servirá para conectarnos con la tarea automática.
Guarda los cambios…
Y ahora ve al apartado Fulfillment.
Activa aquí también la opción Webhook.
Y en el campo URL pega la dirección que copiaste de Botize.
Vuelve a guardar los cambios y con esto hemos terminado.
Probar el resultado final
Ve al apartado Integrations.
Haz clic en Web Demo para probar el bot dentro de una aplicación de mensajería.
Haz clic en la URL para abrir el chat…
Y ahora prueba a hablar con el bot.
¡Perfecto! una vez el bot ha recogido las distintas respuestas ha llamado a Botize y este ha guardado los datos dentro de la hoja de cálculo, cada dato allí donde le hemos indicado.
Ahora es el momento de que vuelvas al apartado de Integraciones y pongas tu bot a trabajar dentro de Slack, Skype o cualquiera de las aplicaciones de mensajería que soporta Dialogflow.
A continuación tienes el proceso recogido en un vídeo para que tengas más información en caso de dudas con algún punto del tutorial.