Sigue estos pasos para hacer un bot que responda con la información guardada en una hoja de Google Sheets.
Mediante la opción Webhooks de Dialogflow un bot puede comunicarse con otros servicios en Internet, compartir o leer información de estos de manera segura, ampliando las posibilidades del Bot y simplificando su desarrollo.
Con herramientas como Botize esta conexión resulta aún más sencilla al estar integrado con Dialogflow y no requerir ningún desarrollo o programación por tu parte.
En los siguientes pasos vas a aprender como crear un sencillo pero potente Bot con Dialogflow capaz de buscar información en una hoja de cálculo y entregarla al usuario, todo ello sin programar una sola línea de código.
Al finalizar habrás aprendido un método que te servirá para conectar tu bot con muchos otros servicios sin apenas esfuerzo.
Nivel de dificultad: Bajo. No es necesario ningún conocimiento de programación.
Tiempo de implementación: Aproximadamente 15 minutos.
Bot para consultar productos
A modo de ejemplo vamos a crear un sencillo bot de consulta de productos. Le vamos a poder dar un código de producto y este lo va a buscar en una hoja de cálculo. Si lo encuentra, le responderá al usuario con la información que tengamos guardada.
El primer paso es crear una hoja de cálculo donde almacenar los distintos productos con los que vamos a querer trabajar.
Puedes crear esta hoja como prefieras, con más o menos columnas y dándoles el nombre que consideres más adecuado a cada una.
Lo único que necesitamos para seguir los pasos de este tutorial es que utilices la primera columna para poner los códigos de producto. En la imagen de arriba verás que la he nombrado «ASIN» pues en mi caso guardaré productos de Amazon Afiliados.
Chatbot para preguntar códigos de producto
Construyamos ahora un chatbot al que poder decirle códigos de producto y que vaya a buscarlos a la base de datos.
Para ello entra en la plataforma Dialogflow de Google o bien haz clic en este enlace: https://dialogflow.cloud.google.com
Una vez dentro crearemos nuestro chatbot haciendo clic en el botón «Create Agent«.
Seguidamente haz clic en «Default Language» para personalizar el idioma y clic en «Default Time Zone» para hacer lo mismo con la zona horaria del bot.
Para acabar esta primera parte, dale un nombre al bot que estás creando (por ejemplo «GoogleSheets») y después haz clic en el botón «Create«.
En Dialogflow el bot ya viene con el saludo programado, es decir, que si le mandas un «hola«, este ya es capaz sin que tu hagas nada de responder adecuadamente.
Cada cosa que sepa hacer el bot, como por ejemplo saludar, se conoce en Dialgflow como un «intent». Tu bot puede saber hacer varias cosas, por lo que en tal caso tendrá varios como: saludar, buscar, consultar la previsión meteorológica, despedirse, etc.
Para simplificar el proceso al máximo usaremos un solo «intent» y aprovecharemos el que ya viene creado para saludar. Haz por lo tanto un clic en «Default Welcome Intent«.
A continuación, en el campo «Add user expression» escribe una frase corta y sencilla, que el bot reconocerá y servirá para que se ponga en marcha. Por ejemplo, escribe «Comprar producto«.
De este modo, cuando tú o un usuario con acceso al Bot le escriba esta frase, se activará y comenzará la conversación con él.
Hagamos ahora algo habitual en el desarrollo de cualquier chatbot: preguntar al usuario.
En nuestro caso, el bot debe buscar un producto en la hoja de cálculo, pero para ello necesita saber primero cuál queremos que busque, por lo que debe preguntárselo al usuario.
En el apartado «Action and parameters» vamos indicar una lista de todos los parámetros que el chatbot deberá preguntar al usuario para poder hacer su parte del trabajo, que en nuestro caso será únicamente el código de producto.
Vamos indicarlo siguiendo estos pasos:
- Marca la casilla «Required» (puesto que será un dato obligatorio sin el cual el bot no podría buscar nada).
- En el campo «Parameter Name» indica un nombre como por ejemplo: product_id.
- En el campo «Entity» escribe @sys.any para que el bot acepte cualquier texto que le den (números, letras, etc).
Haz clic ahora en «Define prompt» y escribe la pregunta que quieres que le haga el bot al usuario para indicarle que debe introducir un código de producto, por ejemplo: ¿Cúal es el Id del producto?
Borra ahora todas las respuestas predefinidas que traía el intent que estamos modificando, haciendo un clic en el icono de la papelera que se muestra a la derecha de cada una de las opciones del apartado que hay más abajo: «Responses«.
Con esto habremos terminado de configurar el «intent», el propósito principal de nuestro bot y dado que no habrá otros, podemos marcar la conversación como terminada.
Esto lo haremos marcando la casilla «Set this intent as end of conversation«.
Solo nos queda un paso más y es activar la opción «Enable webhook call for this intent«, para que el chatbot sepa que antes de terminar debe hacer una llamada a un servicio que luego especificaremos, pero que será el encargado de buscar la información en la hoja de cálculo y devolvérsela al bot.
Ahora guarda los cambios haciendo clic en el botón «Save» y el flujo del bot estará terminado.
Ya tenemos un chatbot que es capaz de preguntarle al usuario los datos que necesita, en nuestro caso, el Id de un producto.
A continuación, para que el chatbot responda con la información que haya para este producto en la base de datos, deberíamos estudiar el API de Google Sheets y programar una llamada que enviase la información necesaria e interpretase la respuesta para adecuarla al chatbot, sin embargo, vamos a evitarnos todo este proceso recurriendo a las tareas automáticas de Botize.
Tarea automática para leer de Google Sheets
Botize nos ayuda a automatizar todo tipo de operaciones con otros servicios, sin necesidad de programar y además es compatible con Dialogflow, lo que simplifica todo el proceso aún más.
Entraremos en Botize.com y crearemos una cuenta gratuita si aún no dispone de una.
Una vez dentro crea una tarea automática haciendo clic en el botón «Nueva tarea«.
Nuestra tarea está programada para ejecutarse en principio cada cierto tiempo (cada hora, cada día, etc).
Queremos que la tarea se ejecute sólo cuando el chatbot necesite buscar el código de producto en la hoja de cálculo, por lo que vamos a indicarlo haciendo clic en el primer paso de la tarea, sobre el icono del reloj.
Entre las opciones que nos muestra, haz clic en «Operación» y selecciona la opción «Al recibir una petición GET/POST«. De este modo la tarea solo va a ejecutarse cuando reciba una petición de Dialogflow.
Indicaremos ahora todos los datos que nuestra tarea va a recibir de Dialogflow. En este caso solo será el código de producto, al que hemos llamado anteriormente product_id.
Para indicarlo escribe en el campo «Parámetro» el texto product_id y en el campo «Nombre para mostrar» el texto Product Id.
Haz clic en el botón de «Siguiente» para guardar los cambios y continuar con los siguientes pasos de la tarea automática.
Nos encontramos ahora en el segundo paso de la tarea y vamos a pedirle que busque en en al hoja de cálculo aquella fila que coincida con el código de producto introducido por el usuario.
Haz clic por lo tanto rn el icono de Google Sheets.
Aquí se nos presentan distintas operaciones que podemos automatizar con este servicio. Selecciona la que dice «Extraer una fila según el valor de una columna«.
Botize nos muestra ahora los distintos parámetros que podemos personalizar con Google Sheets.
En el campo «Dirección URL de la hoja de cálculo«, pega la URL que te muestra el navegador para la hoja de cálculo donde tienes tus productos.
En el campo «Solo filas que tengan en esta columna determinados valores» indica aquella fila donde tienes especificados los códigos de productos.
Creamos ahora un filtro para indicar que el texto de dicha columna deberá ser exactamente igual al del código de producto introducido por el usuario. Para ello selecciona «Filtros para textos«, seguidamente «debe ser igual a» y por último escribe {{product_id}} en la caja de texto, exactamente como puedes ver en la siguiente imagen.
Haz clic en el botón «Siguiente» para aceptar los cambios.
Botize volverá a mostrarte los principales servicios que puedes automatizar. En esta ocasión selecciona «Dialogflow» haciendo un clic sobre el icono.
Elige ahora la operación «Responder a una llamada Fulfillment«, que servirá para poder configurar el mensaje de respuesta que queremos que Dialogflow utilice y en el que indicaremos el resto de información obtenida de la hoja de cálculo.
Esta respuesta la definimos escribiéndola en el campo «Respuesta en formato mensaje de texto«.
Haz un clic en este campo y añade todas las columnas que quieras incluir en la respuesta, como por ejemplo:
ASIN: {{column_a}} SELLER: {{column_b}} URL: {{column_e}} |
Dependiendo de las columnas y los datos que tengas guardados en cada una de ellas, necesitarás personalizar el mensaje de respuesta para tu caso concreto.
Con esto ya habremos terminado de configurar la tarea automática. Haz clic en el botón de «Siguiente«…
y clic en «Guardar cambios«.
Ahora que tu tarea está creada y guardada, accede de nuevo haciendo un clic sobre ella.
Hemos de copiar la dirección de la tarea para poderla llamar desde Dialogflow. Esta dirección se encuentra dentro del primer paso, por lo que ahora haz clic en él.
Pulsa el botón «Obtener la URL de esta tarea» para ver la URL que necesitamos.
Copia la URL que aparece en «Webhook URL Síncrono«. La pegaremos dentro de un momento en Dialogflow.
Si lo prefieres puedes ahorrarte el proceso de crear la tarea de cero. Aquí te dejo la tarea lista para usar: https://botize.com/task/5623
Conectar Dialogflow a una tarea automática
Conectemos ahora nuestro chatbot a la tarea automática que hemos creado.
Para conectarla haz clic en el apartado «Fulfillment» del menú izquierdo.
Una vez dentro haz clic en el botón «Enabled» del apartado Webhook.
Pega ahora la URL que has copiado de Botize en el campo «URL«.
Y para terminar haz clic en el botón «Save«. Ya solo queda probar que todo funcione correctamente.
Como ves el proceso de conectar Dialogflow a una tarea automática de Botize es sencillo, pero lo más interesante se que puedes modificar tantas veces como quieras tu tarea, añadiéndole más pasos o cambiándola por completo, sin que para ello tengas que modificar nada en Dialogflow.
Probar el funcionamiento del bot dentro de Dialogflow
Dialogflow integra un chat en la parte superior derecha para probar el funcionamiento del chatbot.
En cualquier momento, también durante el desarrollo del chatbot, puedes acudir a ella y escribirle para ver cómo actúa y responde según los mensajes que le mandes.
En nuestro caso ya definimos una frase para activar el bot («comprar producto«), de modo que ahora puedes hacer clic en el chat y escribirla para ver cómo responde.
Comprueba cómo el chatbot responde a tus mensajes además de mostrarte información útil como el «intent» en el que se encuentra o los parámetros que le hemos definido y el valor que van a ir teniendo así como conversemos con nuestro asistente.
El bot nos está preguntando «Cuál es el Id del producto?«, por lo que le responderemos con un código que sepamos que existe en nuestra hoja de cálculo para ver si es capaz de respondernos adecuadamente.
Si todo está bien, verás que el chatbot responde adecuadamente con la información que hay guardada en la hoja de cálculo para ese código de producto.
¡Enhorabuena! ¡Ya tienes tu chatbot terminado!
Integrar Dialogflow con una aplicación de mensajería de ejemplo
Tu chatbot puede integrarse ahora con distintas aplicaciones de mensajería, entre las cuales se incluye una versión web que puedes incluso embeber dentro de tu propia página web.
Veamos esta aplicación de ejemplo y probemos el asistente dentro de ella haciendo clic en el apartado «Integrations» del menú izquierdo.
Entre las distintas integraciones que ofrece Dialogflow, haz clic en la llamada «Web Demo«, que encontrarás en el apartado de integraciones basadas en texto («Text based«).
Como puedes ver te ofrece un pequeño código HTML que puedes pegar dentro de tu blog o página web, o bien, hacer clic en el enlace que aparece para poder interactuar ya con él dentro de Dialogflow.
Haz clic en el enlace y se abrirá el cliente de chat.
Ahora ya puedes probar tu bot, pegar el código HTML en tu página web para que otros usuarios lo utilicen o bien integrarlo con otras aplicaciones de mensajería como Line, Telegram, Slack o Skype entre muchas otras.
Te dejo un vídeo con todo el proceso por si necesitas ver en detalle algún paso.
Al igual que has creado un chatbot para leer información de una hoja de cálculo, puedes también crear otros para guardar información en ellas.
En este enlace te muestro los pasos para hacer un chatbot que recoge información de los usuarios y la guarda en un Spreadsheet.