Detalle de una reserva
La página de un turno individual con timeline, notas públicas vs internas, 5 estados y transiciones controladas. Confirmar aparta el slot y auto-rechaza pendings rivales.
El detalle de una reserva es la página full-page de un turno individual con toda su información: cliente, servicio, recurso, horario, estado actual, timeline cronológico de todas las transiciones que tuvo, notas internas privadas, histórico previo del cliente (sus últimos 5 turnos contigo) y los botones de acción que correspondan según el estado. Es donde manejas los casos complejos que no caben en el popover de cambio rápido de la Lista.
Las reservas pasan por 5 estados: pending (recién creada, sin confirmar), confirmed (slot apartado por tú), completed (cliente vino y atendiste), no_show (cliente no apareció) y cancelled (no se concretó). Cancelled no aparece como destino desde completed/no_show — el camino para corregirse es reabrir (vuelve a pending). Cada transición corre por una máquina de estados que valida que la transición sea legal — no puedes saltar de cancelled a confirmed sin pasar por pending primero.
El momento más crítico es confirmar un pending. El sistema corre una operación atómica: bloquea el recurso, verifica que ningún otro confirmed se solape con ese horario considerando la capacidad del recurso, marca este turno como confirmed, y en la misma operación auto-rechaza los otros pendings que tengan slot solapado y manda email a esos clientes con horarios alternativos sugeridos. Todo en una sola transacción — si algo falla, nada se aplica.
Cada cambio de estado admite dos notas opcionales: una pública (la ve el cliente en su tracking) y una interna (solo la ves tú). La nota pública le permite al cliente saber qué pasó («Tu turno fue confirmado», «Te ofrezco moverlo al jueves»). La nota interna es para tu organización («Cliente difícil, llegó tarde 2 veces», «Pagó la mitad por adelantado»).
Manual completo
Abrir el detalle de una reserva
Hay 3 formas:
- Desde la Lista: click en «Ver detalle» o en el número del turno.
- Desde la Agenda: click en un bloque → modal → botón «Ver detalle completo».
- Por enlace directo: si guardaste el enlace del turno, ábrelo directo en el navegador.
Los 5 estados
| Estado | Color | Cuándo lo usas |
|---|---|---|
| Pending | Amarillo | Recién creado por el cliente. Pendiente de tu confirmación. NO aparta el slot. |
| Confirmed | Verde | Tú confirmaste. El slot está apartado. Auto-rechazo se ejecutó si había rivales. |
| Completed | Gris | Pasó el turno y atendiste. Final, salvo «Reabrir». |
| No-show | Rojo | Pasó el turno y el cliente no apareció. Cuenta para el no-show rate del cliente. Final, salvo «Reabrir». |
| Cancelled | Gris-tachado | El turno no se concretó. Final, salvo «Reabrir». |
Transiciones permitidas
Cada estado tiene un set fijo de destinos válidos:
| Desde | A |
|---|---|
| Pending | Confirmed · Cancelled |
| Confirmed | Completed · No-show · Cancelled |
| Completed | Pending (reabrir) |
| No-show | Pending (reabrir) |
| Cancelled | Pending (reabrir) |
Lo importante: los 4 estados pre-finales (pending, confirmed, completed, no-show) NO son libres entre sí. Solo hay caminos específicos. Para «mover» un turno de completed a confirmed, primero hay que reabrirlo a pending y luego confirmarlo de nuevo.
Confirmar un pending — qué pasa atómicamente
Cuando presionas «Confirmar» en un turno pending, el sistema corre estos pasos en una sola transacción:
- Verifica capacidad del recurso: ¿hay menos confirmados solapados que la capacidad? Si el recurso es capacity 1 y ya hay otro confirmado a esa hora, error: «Otro turno ya fue confirmado para este horario».
- Aparta el slot: marca este turno como confirmed.
- Auto-rechaza pendings rivales: busca todos los otros pendings del mismo recurso que se solapen con este horario. Los marca cancelled con el motivo «rechazo automático» y nota pública «Otro turno fue confirmado primero. Te ofrecemos horarios alternativos.»
- Envía emails: confirmación al cliente del turno aceptado + rechazo con alternativas a cada cliente auto-rechazado (si dieron email).
Si cualquier paso falla, nada se aplica. Es todo o nada.
Capacidad mayor a 1: clases grupales
Si el recurso tiene capacity > 1 (ej. Sala Grupal con capacity 10):
- Hasta 10 confirmados pueden coexistir en el mismo horario.
- El slot solo se considera lleno cuando llega a la capacidad.
- El auto-rechazo de pendings rivales no aplica — múltiples pendings pueden convertirse en confirmados simultáneamente.
Caso típico: 12 personas piden reservar yoga el lunes 7am. Confirmas 10 — el slot queda lleno. Las otras 2 que sigan pendientes ya no puedes confirmarlas (error de capacidad). Tu cliente las verá como pending hasta que las canceles o caduquen.
Las dos notas
Cada transición permite escribir:
- Nota pública: la ve el cliente en su
mypes.pe/reserva/<token>dentro del timeline. Mantenla concreta y útil: «Confirmado, te espero el lunes a las 10», «Movido al jueves por capacitación», «Disculpas, no podemos atender hoy». Es como mandarle un SMS al cliente. - Nota interna: solo tú la ves desde el detalle. Sirve para llevar tu propio control: «Cliente nuevo, ofrecer descuento al volver», «Llegó tarde 20 min — avisar próxima vez», «Paga siempre en efectivo».
Editar notas internas en cualquier momento
Aparte de las notas atadas a cada transición, el detalle tiene un campo «Notas internas» editable independientemente:
- Bajo el header, sección «Notas internas».
- Escribes lo que necesites.
- Botón «Guardar notas».
Es persistente en el booking — no en el timeline. Sirve para anotaciones libres que quieres que persistan: alergias, preferencias, contraseñas WiFi del cliente, lo que sea.
Avisar al cliente por WhatsApp
Cuando confirmas un turno, aparece arriba a la derecha un botón «Avisar por WhatsApp» que abre WhatsApp con el cliente y un mensaje pre-armado tipo:
¡Hola María! Te confirmo tu reserva en Salón Diego para Corte de cabello el lunes 19 de mayo a las 14:00.
[tu nota pública si dejaste una]
Ver detalles: https://mypes.pe/reserva/A1B2C3...
Es opcional (el email de confirmación ya se mandó automático), pero los avisos proactivos por WhatsApp mejoran mucho la confianza del cliente.
Histórico previo del cliente
A la derecha del detalle (en desktop) ves los últimos 5 turnos previos del mismo cliente contigo:
- Cada uno con su servicio, recurso, fecha y estado final.
- Útil para detectar patrones: clientes habituales, clientes con muchos no-shows, clientes nuevos.
Reabrir un turno final
Si te equivocaste marcando completed / no-show / cancelled, puedes reabrirlo:
- Botón «Reabrir» arriba del detalle.
- El turno vuelve a estado pending.
- Si estaba bloqueando el horario, ese horario se libera.
- Entrada en el timeline: «Reabierto por [tu nombre]».
Útil cuando: marcaste completed pero el cliente avisa que en realidad no vino; cancelaste por error y el cliente confirma asistencia.
Cancelar serie recurrente
Si el booking pertenece a una serie recurrente, aparece un botón extra «Cancelar serie» que abre un modal con 3 opciones estilo Google Calendar:
- Solo esta: cancela únicamente este turno.
- Esta y las siguientes: cancela este y todos los futuros de la serie (los pasados se conservan).
- Toda la serie: cancela todos los turnos no-finales de la serie.
Detalle en Recurrencias.
Link de tracking público
El detalle siempre muestra el link mypes.pe/reserva/<token> con botón «Copiar». El cliente recibe este link al reservar y al recibir cada email — pero si lo perdió, tú lo puedes copiar y enviárselo de nuevo.
FAQ
¿Por qué no puedo cambiar directo de completed a no-show? Porque son dos estados finales — para corregir, reabre a pending y desde ahí transicionas a donde corresponda. El sistema fuerza el pase por pending para que el cambio quede registrado claramente en el timeline.
¿Qué pasa con el slot apartado si cancelo un confirmed? Se libera. El bloqueo del horario se anula en la misma operación, y ese horario vuelve a estar disponible en el picker público. Si tenías pendings rivales que fueron auto-rechazados al confirmar el original, NO se desauto-rechazan — esos clientes ya recibieron su email y siguen siendo cancelled.
¿La capacidad mayor a 1 evita el auto-rechazo solo cuando hay cupo libre? Sí. Mientras haya cupo disponible (confirmados < capacidad), múltiples pendings pueden coexistir y todos pueden ser confirmados. Solo cuando se llega al límite, los pendings adicionales no se pueden confirmar (error de capacidad), aunque NO son auto-rechazados — quedan pending hasta que tú los manejes.
¿Las notas públicas tienen tope de caracteres? No hay tope estricto. Pero por experiencia mantenelas cortas (≤150 chars) para que se vean bien en el tracking público y en el email.
¿Si reabro un turno cancelled, el cliente lo nota? Sí, ve la entrada «Reabierto» en su timeline público. Si dio email, también recibe email — depende de la lógica del listener (revísalo si crítico).
¿Las notas viejas se pueden editar? Las notas adjuntas a cada entrada del timeline NO son editables — son histórico. Las notas internas generales del booking SÍ son editables (campo independiente, no atado a transición).
¿El detalle muestra de dónde vino la reserva (picker o admin)? El sistema registra internamente el origen de cada reserva («manual» del cliente vía picker, «manual» del dueño, etc.). Hoy no se muestra en el detalle pero queda guardado para reportes futuros.