No necesitas inventar IDs de horarios. Selecciona Date y Time juntas en la protección contra duplicados de la acción. Visito comprueba ambos valores antes de agregar una fila.
1. Crea las dos pestañas
Crea un archivo llamado Hairdresser Demo — Availability and Bookings. Renombra la primera pestaña Availability y agrega otra llamada Bookings. En Availability, escribe estos encabezados en A1:C1:
Agrega los horarios disponibles
En ambas pestañas, selecciona A2:B1000 → Formato → Número → Texto sin formato antes de introducir fechas y horas. Usa YYYY-MM-DD para Date y HH:mm para Time; por ejemplo,2026-10-05 y 10:00. Así ambas pestañas pueden comparar los mismos valores.
Agrega estas filas a Availability. La última columna se calculará con una fórmula:
Elige fechas futuras cuando hagas tu prueba. Cada combinación Date + Time debe aparecer una sola vez en Availability.
También puedes pegar la plantilla de disponibilidad y los encabezados de reservas en A1 de sus respectivas pestañas. Crea ambas pestañas antes de pegar las fórmulas. Usa la fila 1 para los encabezados, sin celdas combinadas ni títulos encima.
2. Calcula la disponibilidad automáticamente
En Availability!C2, escribe:- Sin reserva: Available = 1.
- Con reserva: Available = 0.

$2:$1000 permanecen fijos al copiar la fórmula. A2 y B2 cambian según la fila. Si tu configuración regional exige punto y coma, sustituye las comas por punto y coma.
No sobrescribas las fórmulas de Available. La fórmula reduce la disponibilidad; la protección de la acción impide que Visito agregue dos reservas con la misma Date + Time. No hace falta una acción adicional para descontar disponibilidad.
3. Crea una copia para pruebas
En Google Sheets, usa Archivo → Hacer una copia y llámala Hairdresser Demo — TEST. Copia ambas pestañas y sus fórmulas. Deja Bookings vacía en la copia. Debe ser otro archivo, con los mismos encabezados y formatos. Las escrituras del área de pruebas usan esta copia. Mantén nombres claros para distinguir los dos archivos en Google Picker.4. Crea “Check haircut availability”
Abre Configuración → Acciones → Google Sheets. Si aún no tienes una conexión, conecta tu cuenta en Integraciones; la selección de la hoja ocurre dentro de la acción.- Elige tu conexión de Google.
- Pulsa Elegir hoja de cálculo y selecciona el archivo principal en Google Picker.
- Selecciona Availability.
- Marca Date, Time y Available, y continúa.


Available aparece como Generada por la hoja. Sus controles de escritura están deshabilitados.

Consulta cortes de cabello de 30 minutos con Diego en hora de Ciudad de México. Revisa la disponibilidad antes de ofrecer o reservar un horario. Ofrece solo filas donde Available sea 1. Copia Date (YYYY-MM-DD) y Time (HH:mm) exactamente de la fila elegida a Book a haircut. No inventes horarios ni precios. Después de una escritura verificada, vuelve a consultar y comprueba que ese horario tenga Available = 0.

5. Crea “Book a haircut”
Crea otra acción de Google Sheets. Elige el mismo archivo principal, la pestaña Bookings y sus tres columnas.
Una pestaña vacía puede sugerir Texto para todas las columnas. Cambia Date a Fecha manualmente. Deja Leer apagado para que el agente no consulte nombres de otros clientes.

- Nombra la acción Book a haircut.
- En Evitar filas duplicadas, elige Usar columnas existentes juntas.
- Marca Date y Time. No marques Customer: otro nombre no debe permitir una segunda reserva del mismo horario.
- Date y Time pasan a ser obligatorias automáticamente. Marca también Customer como obligatorio.
- Selecciona Hairdresser Demo — TEST → Bookings como destino de pruebas.
- Usa el mismo alcance de negocios que la acción de disponibilidad.


Registra una cita solo después de que el cliente elija un horario y dé su nombre. Primero usa Check haircut availability y exige Available = 1. Copia Date y Time exactamente de esa fila disponible. Customer es el nombre proporcionado. Pregunta solo los datos que falten. Después de una escritura verificada, informa que la cita quedó registrada y consulta la disponibilidad otra vez. Si esa Date y Time ya existen, ofrece otro horario. Nunca cambies valores para evitar un conflicto. No reintentes una escritura sin verificar ni afirmes que funcionó.Guarda y revisa el modo. Para la prueba controlada en Webchat, activa deliberadamente ambas acciones y usa un archivo principal desechable.

6. Prueba la conversación
¿Por qué Webchat? La acción de solo lectura usa el archivo principal en el área de pruebas, mientras que la acción de reservas escribe en la copia. Juntas allí no mostrarían una reducción de disponibilidad en el archivo principal. Webchat con acciones Activas usa el principal en ambos casos. El área de pruebas sí ejecuta acciones de Sheets. Para una prueba completa aislada, configura también una acción de lectura separada contra los datos de prueba. No hagas pruebas sobre reservas reales. Inicia una conversación nueva en Webchat. Las capturas usan estos mensajes en inglés:- “I’d like a men’s haircut with Diego on October 5, 2026. What morning times are available?”
- “10:00 AM works for me. Can you book it?”
- El agente debe pedir el nombre antes de escribir.
- “My name is Alex Demo. Please book the 10:00 AM haircut with Diego on October 5.”





7. Revisa qué ocurrió
Abre Acciones → Historial, filtra por Book a haircut y abre la ejecución de prueba. Comprueba Live, Completed y Spreadsheet changes verified.



Mantén una hoja sencilla y fiable
- Otro día: agrega filas Date y Time a Availability y copia la fórmula. No necesitas crear IDs ni actualizar una lista de IDs permitidos.
- Formato consistente:
10:00y10 AMson textos distintos. El agente debe copiar los valores exactos de la hoja. - Reiniciar una demostración: borra los valores de la fila de prueba en Bookings, conservando los encabezados. Available vuelve a 1. No borres reservas reales para reiniciar una prueba.
- Más barberos: agrega Barber a ambas pestañas, inclúyela en la fórmula y selecciona Date + Time + Barber como combinación única. Date + Time sola representa una cita para toda la pestaña.
- No habilites Actualizar en las columnas únicas. Este ejemplo no implementa cambios de horario, cancelaciones, pagos ni varias plazas por horario.