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 Integromat. 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.

Cómo empezar

Inicia sesión en tu cuenta de Integromat, 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, Integromat esperará recibir el primer webhook para determinar la estructura de datos que necesitará para funcionar.

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 Integromat.

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 Integromat y que el sistema pueda reconocer la estructura de datos recibida.

Cuando Integromat 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 Integromat, 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 Integromat, 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 Integromat, en el que recibiste esta variable del chatbot), haz clic en el botón Runs 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 "Obtener una celda".

Ten en cuenta: si no tienes una variable en el formulario 5.Value (donde 5 es el número de bloque en Integromat, 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 Integromat 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 "Obtener una celda".

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 Integromat, 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 Integromat. 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 Integromat. 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 Integromat.

Califica este artículo sobre "Cómo crear un Chatbot con un sistema de reservas desde Google Sheets"

Opinión de los usuarios: 4 / 5

    Pruebe SendPulse hoy mismo gratis