Saltearse al contenido

Agenda

La Agenda es el módulo scheduling: citas con hora, recurso y cliente. No es núcleo y hoy solo viene en el plan A medida, así que en los demás se enciende a mano. Tres piezas la sostienen: los recursos (un profesional o una silla), los servicios (duración e importe) y las citas.

  • Citas con cliente, recurso, servicio, importe, inicio, fin y estado: booked, confirmed, completed, cancelled y no_show. Se listan por rango y por recurso, hasta quinientas.
  • Anti-cruce por recurso. Dos citas del mismo recurso no pueden solaparse: la segunda responde 422 «Ese horario se cruza con otra cita del mismo recurso.». Una cita cancelada o marcada como no llegó no bloquea el hueco.
  • Reserva pública en /booking (configuración, disponibilidad y alta). Exige una credencial de ingesta con la habilidad booking y el interruptor «Aceptar reservas en línea» del sitio.
  • Huecos calculados: paso de quince minutos, duración del servicio con mínimo de cinco, una hora de antelación y treinta días de horizonte, siempre en hora de Bogotá.
  • Horario por recurso. Si el recurso no define hours, se usan lunes a viernes de 8:00 a 18:00 y sábado de 8:00 a 13:00; el domingo no hay horas.
  • La reserva pública crea al cliente: resuelve la persona, abre el lead en la primera etapa del embudo y deja la reserva en su línea de tiempo.
  • Recordatorio el día anterior, a las 07:30, por WhatsApp; si no se entrega, sale un resumen por correo al negocio. Se manda una sola vez por cita.
  • El agente puede agendar con scheduling.book_appointment, y las citas entran en la exportación del sitio (appointments).
  • Del módulo scheduling y del permiso de trabajo scheduling, que no está en ningún perfil del catálogo: lo tiene el propietario o un permiso manual.
  • De al menos un recurso activo y marcado como reservable, y de servicios activos; sin eso no hay horas que ofrecer.
  • De una clave de ingesta con la habilidad booking, emitida en Ajustes → Desarrollo.
  • Del CRM para ver al cliente: la reserva no exige el módulo, pero escribe un lead en el embudo del sitio.

Las rutas del panel y las públicas responden 403 con {"module":"scheduling"}, incluida la de reserva. Sin el módulo no se generan recordatorios: reminders:send recorre solo los sitios que lo tienen encendido. Las citas no se borran y vuelven a verse al encenderlo. Si el sitio queda suspendido, se apaga con él.

  • El anti-cruce es por recurso, no por persona. Dos recursos distintos a la misma hora es válido, aunque los atienda la misma persona.
  • Una cita sin recurso nunca choca: el chequeo de solape se salta cuando resource_id viene nulo.
  • La zona horaria es fija (America/Bogota); no hay campo por sitio.
  • El horario del recurso reemplaza el de por defecto entero: no se mezcla día a día. Un recurso con solo el sábado definido no abre de lunes a viernes.
  • El agente agenda sin crear lead ni comprobar el teléfono; la reserva pública sí crea el lead.
  • Borrar un cliente borra sus citas (EraseLeadAppointments): no queda rastro para la agenda.
  • El sitio de una cita no se cambia: site_id no se acepta al actualizar, a propósito.
  • CRM — el embudo donde cae el cliente que reserva.
  • Agente de ventas — quien puede agendar por chat.
  • Módulos — el catálogo completo.