HabilidadActualizado: Junio 2026
Reservas (Hospedaje)
Gestiona reservas de check-in y check-out para hoteles, hostales, cabañas y cualquier negocio de hospedaje.
Disponible para: Hospedaje
Esta habilidad está diseñada para hoteles, hostales, cabañas, departamentos vacacionales y glamping. Para reservas de mesa en restaurantes, usa la habilidad de Pedidos.
¿Qué son las Reservas?
La habilidad de Reservas permite que el cliente solicite reservar una habitación o espacio por rangos de fechas (check-in / check-out) directamente desde WhatsApp.
Diferencia con la Agenda de Citas
| Aspecto | Citas | Reservas |
|---|---|---|
| Unidad de tiempo | Horas/minutos | Días |
| Tipo de negocio | Servicios | Hospedaje |
| Confirmación | Automática o con anticipo | Requiere aprobación del gerente |
| Check de disponibilidad | Por duración + buffer | Por rango de fechas [entrada, salida) |
| Anti double-booking | Transacción serializable | Constraint EXCLUDE en PostgreSQL |
Flujo de una reserva
Cliente: "¿Tienen habitación disponible del 15 al 18 de julio?"
↓
Agente verifica disponibilidad → Sí disponible
↓
Agente pregunta: número de personas, tipo de habitación preferida
↓
Agente solicita nombre, teléfono, email (opcional)
↓ Si requiere anticipo
Agente genera link de pago MP
↓
Sistema crea SolicitudReserva
↓
Notificación al gerente por WhatsApp/email
↓ Gerente confirma o rechaza
Estado: Confirmada o Cancelada
↓
Agente notifica al cliente por WhatsApp
Modalidades de confirmación
| Modalidad | Cómo funciona | Ideal para |
|---|---|---|
| Manual | El gerente recibe notificación y confirma manualmente desde el panel o por WhatsApp | Hoteles boutique, cabañas con disponibilidad variable |
| Automática | Si hay disponibilidad y el pago es recibido (anticipo), la reserva se confirma automáticamente | Hostales con mucha demanda y proceso estandarizado |
Configurar habitaciones
Las habitaciones se configuran en el Catálogo como elementos de tipo Habitación. Campos disponibles:
| Campo | Descripción | Ejemplo |
|---|---|---|
| Nombre | Nombre de la habitación o tipo | "Suite Deluxe", "Cabaña Bosque" |
| Precio por noche | Precio base por noche | $1,200 MXN |
| Capacidad | Número máximo de personas | 2, 4, 6 personas |
| Descripción | Amenidades e info que el agente menciona al cliente | "Incluye desayuno, jacuzzi, TV, WiFi" |
| Imágenes | Fotos que el agente puede enviar cuando el cliente pida ver la habitación | URLs de imágenes |
Sistema de disponibilidad
Xambee usa un constraint EXCLUDE de PostgreSQL para prevenir doble booking en reservas. Técnicamente:
- Las fechas se almacenan como rango
[fechaEntrada, fechaSalida)— inclusivo-exclusivo - La fecha de salida (checkout) no cuenta como ocupada, permitiendo nuevas reservas desde ese día
- Si dos solicitudes llegan simultáneamente, la base de datos rechaza la segunda con error
23P01 - El sistema responde con un 409 y ofrece fechas alternativas disponibles
Fechas inclusivas/exclusivas
Si una reserva es del 15 al 18 de julio, el huésped ocupa las noches del 15, 16 y 17. El 18 es el día de salida (libre desde las 12pm). Una nueva reserva puede iniciar el 18 sin conflicto.
Estados de una reserva
| Estado | Descripción |
|---|---|
| Pendiente admin | Solicitud recibida, esperando confirmación del gerente |
| Confirmada | Reserva confirmada. Check-in activo. |
| Completada | El huésped hizo checkout. Reserva cerrada. |
| Cancelada | Cancelada por el gerente o el huésped |
| No asistió | El huésped no se presentó en la fecha de check-in |
Notificación al gerente
Cuando llega una nueva solicitud de reserva, el gerente recibe:
- Mensaje de WhatsApp con todos los datos de la solicitud
- Email con resumen completo y enlace al panel
- Notificación en el panel de Xambee
Desde el panel el gerente puede confirmar o rechazar la reserva con un clic. El sistema notifica automáticamente al cliente con la decisión.
Nota
El gerente también puede agregar un mensaje personalizado para el cliente al confirmar o rechazar (ej: "Te esperamos. La recepción abre a las 2pm").