Cómo crear un Chatbot con un sistema de reservas desde Google Sheets
Puedes integrar chatbots SendPulse con otros servicios para solicitar información a través de Make. En este artículo, veremos cómo crear un sistema de reservas utilizando un chatbot para una estación de servicio de automóviles. Puedes registrar a un cliente para que reserve hacer el servicio de su automóvil en un horario específico si la celda deseada está vacía o sugerir una hora y/o día diferentes si está reservado ese horario.
Podrás automatizar y optimizar el proceso de reserva y utilizar este esquema para registrar usuarios en una estación de servicio de automóviles, concertar una cita con un médico, reservar mesas en un restaurante, etc.
Este artículo proporciona un ejemplo de cómo integrar Google Sheets con SendPulse a través de Make. Puedes elegir cualquier otro servicio disponible en Make en lugar de Google Sheets. Ten en cuenta que el diseño de la interfaz del usuario puede diferir de las capturas de pantallas mostradas.
SendPulse también ofrece una integración directa con Google Sheets. Más información.
Cómo empezar
Inicia sesión en tu cuenta de make, y haz clic en el botón de + Create a new scenario para crear un nuevo escenario.
Puedes elegir qué servicios conectar; en este caso, queremos Webhooks y Google Sheets, usando el buscador o encontrando y agregando directamente en el constructor. Haz clic en el botón de Continue en la esquina superior derecha.
Cómo crear un Webhook
Haz clic en el bloque con el signo de interrogación en el centro de tu pantalla y selecciona el bloque Webhooks — este bloque desencadenará el flujo.
Necesitas crear un webhook que envíe datos desde el flujo de tu chatbot. Selecciona el bloque de Custom webhook desde la lista desplegable.
Haz clic en el botón de Add y crea un nuevo webhook.
Ingresa un nombre para el webhook y haz clic en el botón de Save.
Tu webhook ha sido creado. Copia el link; debes pegarlo en el flujo de tu chatbot.
Ahora, make esperará recibir el primer webhook para determinar la estructura de datos que necesitará para funcionar.
Cómo añadir un enlace de Webhook a un flujo de Chatbot
Inicia sesión en tu cuenta de SendPulse. Selecciona el bot que requieras y ábrelo el constructor de flujos de chatbot.
Crea un flujo de chatbot para ingresar datos para verificación y registro, como nombre, detalles de contacto, día de la semana y hora.
Agrega y coloca el elemento de Solicitud de API justo después del elemento al que deseas enviar el webhook. Selecciona el tipo de solicitud POST e ingresa la URL copiada desde make.
Inserta los datos pasados en el cuerpo de la solicitud. Aquí puedes utilizar las variables de tu chatbot con los datos solicitados al usuario en el elemento anterior del escenario.
Haz clic en el botón de Solicitar prueba para enviar la solicitud a make y que el sistema pueda reconocer la estructura de datos recibida.
Cuando make reciba el webhook, verás un mensaje de "Successfully determined" en tu bloque de Webhooks.
Cómo enviar y recibir información de Google Sheets
Ahora, en make, necesitamos construir un escenario que verifique nuestras Google Sheets para comprobar la disponibilidad de la fecha y hora solicitadas por el cliente. Si la celda solicitada está disponible, escribiremos el nombre del usuario en ella. Si la celda está ocupada, devolveremos la respuesta de que el horario está reservado y el cliente deberá elegir una hora diferente.
Usaremos los siguientes bloques en el escenario:
Router | Ayuda a ramificar el escenario; cada ruta tendrá su propio Filtro aplicado (por días: Lunes , Martes y así sucesivamente, luego por la hora de reserva: 10 , 11 y así sucesivamente, luego por el estado de la celda - disponible o reservado). |
Google Sheets | Usaremos la acción Get a Cell para obtener información de la celda para la fecha y hora seleccionadas, y Update a Cell para escribir datos en la celda seleccionada si está vacía. |
Webhook | Usaremos la acción Webhook response para enviar un mensaje de respuesta al chatbot. |
Agregar un Router para la división de días
Usando un router, puedes dividir tu escenario en múltiples rutas, procesar los datos de diferentes maneras y filtrar los datos que pasan a lo largo de la ruta.
Para agregar un router, haz clic en Add another module junto al bloque de activación Webhook.
Ingresa Router y selecciona Flow control.
Así es como añadimos el primer router que dividirá el escenario en días.
Agregar un Router para la división de horas
Debes agregar más Routers para cada hora deseada de cada día de la semana para agregar la división de horas.
Configurar un filtro por día
El primer Router divide el escenario por días; esto significa que entre el primer router y los siguientes, debes configurar filtros con la condición de que los valores coincidan con los días.
Para configurar el filtro, haz clic en el icono de llave inglesa junto al bloque del router.
En el primer campo, selecciona la variable de día obtenida del webhook. En el segundo campo, escribe el día de la semana (Lunes
para el primer filtro). Después de ingresar la condición, haz clic en el botón OK.
Ten en cuenta: si no cuentas con la variable en el formulario 1.day
(donde 1
es el número del bloque en Make, en el que recibiste esta variable del chatbot), haz clic en el botón Run once en la esquina inferior izquierda e inicia el flujo en el chatbox para el que configuraste el webhook.
Necesitas duplicar el primer router, indicando tus días hábiles en el segundo campo: "martes", "miércoles", etc.
Configurar un filtro por horas
Para instalar este filtro, primero debes agregar el bloque Google Sheets.
El segundo router (el segundo, si observas la conexión lineal del primer bloque de activación Webhook) divide el escenario por horas. Esto significa que para el segundo router y el bloque subsiguiente de Google Sheets, debes configurar filtros con la condición de la hora.
Para configurar el filtro, haz clic en el icono de llave inglesa junto al bloque del router.
En el primer campo, selecciona la variable de tiempo obtenida del webhook.
En el segundo campo, ingresa la hora. En el primer filtro, tenemos 10
. Después de ingresar la condición de filtrado, haz clic en el botón OK.
Ten en cuenta: si no cuentas con la variable en el formulario 1.time
(donde 1
es el número del bloque en Make, en el que recibiste esta variable del chatbot), haz clic en el botón Run once en la esquina inferior izquierda e inicia el flujo en el chatbot para el que configuraste el webhook.
Necesitas duplicar el segundo router, indicando tus horas de trabajo en el segundo campo: "10," "11," etc.
Agregar vista de celda a Google Sheets
El siguiente bloque después de dos routers con filtros por día y hora será Google Sheets. Cada bloque de Google Sheets será responsable de una celda específica en tu documento de Google Sheets.
HaZ clic en el signo de interrogación o Add another module junto al bloque actual y seleccione Google Sheets con la acción Get a cell.
Conecta tu cuenta de Google, selecciona una hoja de cálculo y una pestaña, luego haz clic en el botón OK.
Antes de cerrar la página, verifica toda tu secuencia de comandos para que cada día de la semana y cada hora tenga su celda única; no deben repetirse.
Nuestra primera celda será B2 — la intersección de Lunes
y 10:00
.
Un ejemplo de una celda que validará un registro (y escribirá datos si la celda está vacía) en Google Sheets:
Agregar un Router para dividir los resultados de la verificación de celda
Ahora necesitamos dividir el escenario en ramas: en función de si la celda está vacía o no.
Haz clic en Add another module junto al bloque Google Sheets con la acción Get a cell y seleccione Router.
Agregar un filtro de ocupación de celda
Para poder ajustar el filtro, primero agrega los siguientes bloques.
Para comprobar si la celda está vacía, compara el valor (igual a) obtenido en el elemento Get a cell con un valor en blanco en los parámetros del filtro.
Haz clic en la línea entre Router y Google Sheets con la acción Update a Cell y establece la condición. En el primer campo, selecciona la variable 5. Value
— el valor recibido de la celda solicitada en el bloque Google Sheets con la acción Get a cell.
Ten en cuenta: si no tienes una variable en el formulario 5.Value
(donde 5
es el número de bloque en Make, en el que recibiste esta variable del chatbot), haz clic en el bloque requerido Google Sheets con la acción Get a cell y selecciona Run this module only.
Agregar un Router para una celda vacía
Esta ramificación con los bloques de actualización de datos en Google Sheets y la respuesta sobre la reserva exitosa se ejecutará si Make recibe una respuesta de que la celda está vacía después del filtro.
Haz clic en Add another module cerca de Router y seleccione Google Sheets con la acción Actualizar una celda.
En el campo Cell, ingresa la misma celda que ingresaste para esta rama en el bloque Google Sheets con la acción Get a cell.
En el campo Value, ingrese el texto que deseas escribir en la celda. Puede ser un nombre, datos de contacto o cualquier otra información útil al realizar una reserva. También puedes agregar tu texto o formatear el actual.
A continuación, después del bloque Google Sheets con la acción Update a Cell, agrega Webhook — Webhook response.
En el cuerpo de la respuesta del webhook, ingresa un mensaje en formato JSON.
Por ejemplo:
{"message": "Has completado exitosamente la reserva. Te esperamos!"}
Este mensaje se enviará de vuelta al chatbot a través del elemento Solicitud de API, que puedes escribir en una variable o enviar directamente a un mensaje a través del registro JSON Path.
También puedes agregar variables a la respuesta y enviar cualquier otro valor que escribas a una variable al contacto, mediante el cual puedes filtrar y expandir las respuestas.
Agregar un Router para celda ocupada
Esta rama con un bloque de respuesta sobre una celda ocupada se ejecutará si, después del filtro make, recibe una respuesta de que la celda está ocupada.
Haz clic en Add another module cerca de Router y seleccione Webhook — Webhook response.
En el cuerpo de la respuesta del webhook, ingresa un mensaje en formato JSON.
Por ejemplo:
{"message": "El horario que seleccionaste está ocupado. Por favor selecciona un horario diferente."}
Este mensaje se enviará de vuelta al chatbot a través del elemento Solicitud de API, que puedes escribir en una variable o enviar directamente a un mensaje a través del registro JSON Path.
También puedes agregar variables a la respuesta y enviar cualquier otro valor que escribas a una variable al contacto, mediante el cual puedes filtrar y expandir las respuestas.
Cómo enviar un mensaje con una respuesta a un usuario
Regresa a editar el flujo de chatbot en tu cuenta de SendPulse.
Puedes guardar el valor resultante en una variable para usar un filtro y agregarlo al mensaje como una variable. O puedes mostrar los datos al usuario una vez, sin guardar, usando una expresión como{{$['variable']}}
. Lee más en: Uso de datos como expresión de ruta JSON.
Coloca el elemento Mensaje justo después del elemento Solicitud de API y agrega una variable o expresión de ruta JSON.
Te recomendamos agregar un elemento Filtro antes del elemento Mensaje para verificar la respuesta de make. Y, si el horario seleccionado está ocupado, responde al usuario con la selección de horario nuevamente.
También puedes hacer más complejo el flujo y combinarlo con otra solución, donde puedas verificar las celdas, para ver cuáles están libres y cuáles están ocupadas. Lee Cómo solicitar celdas en Google Sheets.
Guardar y Ejecutar
Antes de guardar y salir, asegúrate que todo funciona correctamente.
Haz clic en el botón Runs once y ejecuta el flujo que configuraste para el webhook. Si tienes configurado todo correctamente, aparecerán marcas de verificación verdes debajo de los bloques de Webhook y Google Sheets.
Además, los filtros activados se resaltarán en azul y los valores +1
se agregarán a los filtros que el contacto pasó a Yes.
También puedes hacer clic en el número arriba del bloque para ver la información recibida que se pasó al siguiente bloque.
Se pueden realizar varias operaciones después de recibir los datos. Se realizarán tantas veces como lo permita tu plan de pagos de make. Cada operación tendrá datos de contacto que puedes rastrear para otros bloques.
Al hacer clic en el filtro, puedes verificar cómo se desarrolló el contacto bajo una determinada operación.
Si el contacto cumple con la condición del filtro, aparecerá una marca de verificación verde.
Si el contacto no cumplió con la condición del filtro, aparecerá una señal de que el contacto no pasó el filtro.
Para activar el escenario, mueve el interruptor a la posición de ON.
Cómo ver el Historial de Escenarios
Navega hasta el escenario que necesites. Tendrás acceso a un diagrama de todos los bloques con su historial de ejecución. Por cada operación seleccionada, serás capaz de rastrear la ruta del usuario a través de los bloques resaltados.
Haz clic en el bloque requerido para ver información al respecto. Tendrás acceso a toda la información sobre el bloque: qué valores recibió y transmitió.
Si alguno de los bloques no se ha ejecutado, se resaltará en rojo y, al presionarlo, se mostrará el motivo del error y una pista sobre cómo solucionarlo. Ten en cuenta que el escenario puede pausarse y no ejecutarse hasta que se resuelva el error; las operaciones se pondrán en cola.
Si tienes alguna pregunta sobre fallas de configuración o escenarios, puedes comunicarte con el soporte de Make.
Última actualización: 14.08.2024
o