Producto sistema reservas - ronalc90/koptup GitHub Wiki
Productividad (
productivity) · Demo:/demo/sistema-reservas· Modo de acceso recomendado:publico(versión con la marca, los servicios y los profesionales del prospecto porsolicitud) · Prioridad: P2 (las correcciones visibles son P1 en Fase 1 porque la demo está enlazada desde el inicio y el footer) · Esfuerzo total: XL (≈ 6–7 semanas de 1 dev senior para dejar landing + demo vendibles; las correcciones de Fase 1 son S; el producto real se estima aparte)

Captura actual de /demo/sistema-reservas (vista pública). Ver también Sistema de demos, Catálogo de productos y Roadmap. Productos relacionados: Telemedicina, Sistemas RAG, Programa de fidelización, POS retail, CRM con IA y Facturación electrónica.
Contexto de posicionamiento: con el reposicionamiento de Koptup en sistemas RAG (ver Visión de producto), este producto queda dentro de "Otras soluciones a medida". Tiene una conexión natural con el producto principal: el agendamiento por WhatsApp con un asistente que responde las preguntas del negocio con sus propios documentos (precios, preparación para un procedimiento, políticas) y agenda la cita. Ese complemento es el argumento para no competir solo como "otra agenda en línea".
Problema: clínicas, centros de estética, canchas, academias y talleres pasan el día agendando por WhatsApp y por teléfono, con agendas en cuaderno o en Excel que se cruzan entre profesionales y sedes. Los clientes reservan y no llegan (las ausencias son una de las mayores fugas de ingresos de estos negocios), no hay abono anticipado y nadie mide la ocupación.
Para quién (cliente ideal en Colombia/LATAM):
- Clínicas odontológicas, de estética y de fisioterapia con 2 o más sedes y varios profesionales.
- IPS ambulatorias, laboratorios y centros de imágenes que agendan por profesional y por equipo (con Telemedicina para la consulta virtual).
- Centros deportivos, canchas sintéticas, academias y gimnasios con clases de cupo limitado.
- Cadenas de spa, peluquería y barbería; talleres y concesionarios con citas de servicio; salas, auditorios y coworking.
Para quién no (decirlo en la landing): un consultorio o una barbería independiente con una sola agenda; las herramientas de agenda en línea existentes (gratuitas o de bajo costo) le sirven. Koptup entra cuando hay varias sedes o profesionales, reglas propias (abonos, paquetes, recursos compartidos), marca propia o integración con los sistemas del negocio.
Propuesta de valor: "Tu agenda llena y sin ausencias. Reservas en línea con tu marca, abono anticipado con PSE, Nequi o tarjeta y recordatorios por WhatsApp con botón de confirmar, conectado a los calendarios de tus profesionales y a tus sistemas."
| Aspecto | Estado | Evidencia |
|---|---|---|
| Demo | Existe. Maqueta 100 % en el navegador: un solo componente 'use client', sin fetch, axios ni llamadas a /api
|
apps/web/src/app/demo/sistema-reservas/page.tsx |
| Pantallas | 3 vistas controladas por el estado view: Pública (hero "Reserva tu Cita en Línea", 4 servicios con emoji, duración y precio, botón "Panel de Administración") · Reserva en 4 pasos (Fecha con calendario mensual y botones Mes/Semana; Hora con 21 franjas de 30 min entre 8:00 y 18:00, 4 ocupadas; Datos: nombre, email, teléfono, comentarios; Confirmación) · Panel (filtros por fecha, servicio y estado; tabla de reservas; modal de detalle con cambio de estado y notas) |
page.tsx |
| Datos | 4 servicios fijos: consulta médica general $50.000, terapia física $65.000, consulta nutricional $40.000, masaje terapéutico $80.000, con emojis como imagen. 5 reservas del 30 y 31 de enero de 2024. Franjas ocupadas fijas (occupiedSlots) |
page.tsx (services, bookings, occupiedSlots) |
| Backend |
Ninguno. No hay módulo de reservas en apps/backend/src/modules/ ni rutas relacionadas |
búsqueda en apps/backend/src
|
| i18n ES/EN | Namespace reservations (66 claves) dentro de messages/es.json y en.json, que se envían a todas las páginas del sitio; no existe messages/demos/sistema-reservas.*.json. Texto fijo en el código: servicios, descripciones, duraciones, precios, nombres de meses y días, la etiqueta "Email" y la etiqueta del teléfono |
page.tsx |
| Tests |
Ninguno (no hay carpeta __tests__) |
|
| Tamaño | 962 líneas (page 940 + layout 22) | wc -l |
| SEO | Metadata demo-sistema-reservas promete "recordatorios por email/SMS", "Integración con Google Calendar", "Multi-usuario", "Ideal para consultorios, spas, restaurantes" y "Prueba gratis" |
apps/web/src/lib/seo-config.ts |
| Visibilidad |
Alta: tarjeta "Sistema de Reservas" en el inicio (apps/web/src/app/page.tsx), enlace "Sistema Reservas" en el footer (apps/web/src/components/layout/Footer.tsx), hub /demo y calendario del generador de LinkedIn Ads |
|
| CTA | Solo el DemoCTA genérico del layout de /demo
|
apps/web/src/components/demo/DemoCTA.tsx |
| Catálogo | Mapeo correcto: offering sistema-reservas → demo sistema-reservas. Categoría con tres nombres: "Productividad" (catálogo), "Servicios" (inicio) y "Calendario" (hub) |
services-catalog.ts, messages/es.json (homePage.demos.reservations, demos.reservations) |
Lo que hace bien: el flujo se entiende sin explicación (servicio → fecha → hora → datos → confirmación) y tiene indicador de pasos; muestra las dos caras del producto, la del cliente que reserva y la del negocio que administra; los filtros del panel funcionan sobre los datos; el cambio de estado en el modal de detalle funciona; se navega entre meses; precios en pesos y teléfono con +57.
-
Fecha equivocada en la confirmación: al elegir un día, el código arma
`2024-01-${day}`(page.tsx), sin importar el mes que se esté viendo. Quien navega a octubre de 2026 y elige el 15 recibe "2024-01-15 - 10:00". -
Calendario sin reglas: se pueden elegir días pasados; el resaltado de "hoy" compara solo el número del día (
day === new Date().getDate()) y aparece en cualquier mes; no hay festivos ni días de cierre. -
El botón "Semana" no hace nada:
calendarViewsolo cambia el estilo del botón; no existe una vista semanal. - Disponibilidad irreal: las mismas 4 franjas ocupadas para todos los días y servicios; franjas de 30 min aunque el masaje dure 90 (permite cruces); no se elige profesional, sede ni recurso, que es el corazón de un sistema de reservas.
-
La reserva no se guarda: los campos del paso Datos no tienen estado ni validación (se puede continuar vacío) y la confirmación no agrega nada al panel (
setBookingsno se llama al confirmar). El momento que más vende, ver la reserva aparecer en la agenda del negocio, no ocurre. - Panel sin agenda: solo una tabla; como las reservas son de enero de 2024, los filtros "Hoy", "Esta semana" y "Este mes" siempre salen vacíos; "Guardar Notas" no hace nada; no hay "asistió / no asistió" ni reprogramación.
- Sin autorización de tratamiento de datos (Ley 1581) aunque pide nombre, correo y teléfono para servicios de salud, que implican datos sensibles; sin política de cancelación.
-
Promesas sin demo: el hub (
demos.reservations.featuresenmessages/es.json: "Recordatorios", "Pagos online"), el SEO ("recordatorios por email/SMS", "Integración con Google Calendar", "restaurantes", "Prueba gratis") y el catálogo (Básico: "Google Calendar 1 vía", "Email recordatorios", "Pasarela Stripe/Wompi") ofrecen pagos, recordatorios y sincronización que la demo no muestra. - Negocio poco creíble: consulta médica, nutrición y masaje en el mismo local, con emojis como imágenes; precios "$50.000" sin moneda; "Disponibilidad 24/7" y "Confirmación Instantánea" genéricos.
-
Textos: la etiqueta del teléfono se resuelve con
t('fullName').includes('Full') ? 'Phone' : 'Teléfono'; "Email" está fijo; servicios, duraciones, meses y días están en español dentro del código, así que la versión en inglés queda mezclada; los botones de estado usan símbolos ("✓", "⏳", "✕") dentro del i18n. - Código: un componente de 940 líneas sin pruebas, con el i18n en el archivo global.
-
Días del calendario aplastados: usan
aspect-square, que hoy no funciona por el plugin@tailwindcss/aspect-ratio(ver WMS, tarea 5). -
Textos del catálogo (
apps/web/messages/offerings/sistema-reservas.es.json): voseo ("Agendá", "Comprala", "pagá"); descripción de plantilla;idealParasin sentido ("Equipos pequeños que recién arrancan con reservas con confirmación"); "Reportes mensuales del tier" 4 veces en Enterprise (4 de sus 9 bullets), 1 en Profesional y 1 en Avanzado; "Pasarela Stripe/Wompi" y costos "Twilio + Stripe" (Stripe no está disponible para empresas constituidas en Colombia sin una entidad en el exterior); jerga ("Marketplace privado", "API GraphQL", "SIS/EHR adapter");costoNotedice USD 20–6.000/mes mientras el catálogo dice USD 50–18.000; "Cuentas / tenants" no dice que aquí significa sedes.
- Que funcione de verdad en el navegador: fechas reales, días pasados y festivos bloqueados, y la reserva visible en la agenda del negocio al terminar.
- Lo que hace distinto a un sistema de reservas: elegir profesional, sede o recurso, con disponibilidad calculada según la duración del servicio.
- Lo que reduce ausencias: abono anticipado (simulado) con PSE, Nequi o tarjeta, recordatorio por WhatsApp con botón de confirmar o reprogramar y política de cancelación.
- Agenda del negocio por día y semana, por profesional, con "asistió / no asistió" e indicadores (ocupación, ausencias, ingresos).
- Presets por sector con datos colombianos creíbles (odontología, estética, canchas, salud ambulatoria, barbería) y sin emojis.
- Cumplimiento visible: autorización de datos (Ley 1581) y aviso de datos sensibles cuando aplica.
- Coherencia entre catálogo, SEO, hub y demo: no prometer nada que no se vea.
- Una oferta de entrada clara: "tu página de reservas de prueba con tu marca en 24 horas" como gancho comercial.
- Capturas, video de 60 s y CTA contextual "Quiero esta agenda para mi negocio".
Sigue la estructura común de Landing de producto:
-
Hero: "Tu agenda llena y sin ausencias". Subtítulo: "Reservas en línea con tu marca, abono anticipado con PSE o Nequi y recordatorios por WhatsApp, para todas tus sedes y profesionales." CTA principal "Solicitar demo personalizada" (propuesta: "Quiero ver mi página de reservas de prueba"); secundario "Agendar llamada"; enlace de texto "Probar la demo ahora" (modo
publico). - Problemas que resuelve (3 tarjetas): "Se te va el día agendando por WhatsApp"; "Clientes que reservan y no llegan"; "Agendas por profesional y por sede que se cruzan".
- Cómo funciona (4 pasos): diagnóstico de servicios, profesionales, sedes y reglas → configuración de tu página con tu marca y de los recordatorios → piloto de 2 semanas en una sede → todas las sedes y acompañamiento mensual.
- Módulos con "Incluido desde": Página de reservas con tu marca y enlace para Instagram y WhatsApp (Básico) · Agenda por profesional y recurso (Básico) · Abonos en línea (Básico) · Confirmación por correo y sincronización con Google Calendar (Básico) · Recordatorios por WhatsApp con confirmar/reprogramar (Profesional) · Videollamada automática para citas virtuales (Profesional) · Lista de espera y políticas de cancelación (Profesional) · Multisede, franquicias y recursos compartidos (Avanzado) · Paquetes y membresías (Avanzado) · Agendamiento por WhatsApp con asistente IA (Avanzado, complemento basado en los Sistemas RAG) · Integración con historia clínica (Enterprise).
- Capturas (galería de 6: página de reservas, elección de profesional y hora, pago del abono, mensaje de WhatsApp, agenda semanal del negocio, indicadores) y video de 60 s del recorrido.
- Integraciones: Google Calendar, Outlook/Microsoft 365 y Apple Calendar; WhatsApp Business Platform; Wompi, PayU o Mercado Pago (PSE, Nequi, Daviplata, tarjetas); Zoom o Google Meet; Siigo, Alegra o Facturación electrónica para facturar el servicio; CRM con IA o HubSpot; POS retail y Programa de fidelización; sistemas de historia clínica (Enterprise).
- Planes y precios: "Compra / a medida" en COP con "desde"; SaaS como "Lista de espera" (DECISIÓN 7).
- Preguntas frecuentes: ¿Puedo cobrar un abono para evitar ausencias? · ¿Los recordatorios por WhatsApp tienen costo? (sí: tarifas de Meta, cobradas al costo) · ¿Se sincroniza con el calendario de cada profesional? · ¿Puedo tener varias sedes con horarios distintos? · ¿Cómo cumple la Ley 1581? · ¿Sirve para salud? (sí para agendar; la historia clínica no se guarda aquí) · ¿Puedo usar mi dominio? · ¿El código es mío?
-
CTA final con el formulario "Solicitar demo" con
sistema-reservaspreseleccionado y campos extra opcionales: sector, número de sedes, número de profesionales, reservas al mes, cómo agenda hoy; y carga opcional del logo para la página de prueba.
Estructura nueva: dividir page.tsx en componentes (PublicPage, BookingWizard, BusinessPanel) con un estado compartido (useReducer + context) para que lo que reserva el cliente aparezca en el panel. Cambiar el botón "Panel de Administración" por un selector fijo "Vista cliente / Vista negocio".
| Pantalla / componente | Agregar | Quitar / corregir | Datos de ejemplo |
|---|---|---|---|
Datos base (fixtures/<sector>.ts) |
Reservas semilla con fechas relativas a hoy (esta semana y la próxima); profesionales con horarios; sedes; festivos de Colombia calculados según la Ley Emiliani | Reservas de enero de 2024; occupiedSlots fijas |
Preset "Odontología": "Clínica Dental Sonrisa Norte" (ficticia; verificar en el RUES), sedes Chapinero y Cedritos en Bogotá |
| Página pública | Encabezado con logo y nombre del negocio; selector de sede; servicios con ícono o foto de stock con licencia, "desde $" en COP, duración y abono; "Elegir profesional" o "El primero disponible" | Emojis como imagen; "Disponibilidad 24/7" y "Confirmación Instantánea"; botón "Panel de Administración" | Valoración $60.000 (30 min) · Limpieza dental $140.000 (45 min) · Blanqueamiento $650.000 (90 min, abono 30 %) · Control de ortodoncia $90.000 (20 min) |
| Paso Fecha | Calendario del mes con fechas reales; días pasados deshabilitados; festivos y cierres marcados; días sin cupo en gris; vista semanal real con franjas | Fecha armada como 2024-01-DD; resaltado de "hoy" en todos los meses |
Festivos visibles en el mes mostrado (p. ej. lunes 12 de octubre y lunes 2 y 16 de noviembre de 2026) |
| Paso Hora | Franjas calculadas con la duración del servicio + tiempo de alistamiento, el horario del profesional y las reservas existentes; zona horaria America/Bogota; "Quedan 2 cupos" en servicios por cupo (clases) |
Mismas 4 horas ocupadas para todo | Lunes a viernes 7:00 a. m.–7:00 p. m., sábados 8:00 a. m.–1:00 p. m. |
| Paso Datos | Campos con estado y validación (nombre, celular colombiano de 10 dígitos, correo); autorización de tratamiento de datos obligatoria (Ley 1581) y aviso de datos sensibles en presets de salud; política de cancelación visible | Etiqueta del teléfono con includes('Full'); "Email" fijo |
— |
| Paso Pago (nuevo) | Abono o pago total con pasarela simulada (PSE, Nequi, tarjeta) o "Pagar en el sitio", con aviso "Simulación: no se hace ningún cobro" | — | Abono de $42.000 (30 % de la limpieza) |
| Confirmación | Fecha legible ("jueves 15 de octubre de 2026, 10:00 a. m."), profesional, sede y dirección; botón "Añadir a mi calendario" (.ics); vista previa del WhatsApp de confirmación y del recordatorio 24 h antes con botones "Confirmar" / "Reprogramar"; vista previa del correo | Fecha en formato 2024-01-15
|
Mensaje: "Hola Juliana, te esperamos mañana a las 10:00 a. m. en Sonrisa Norte Cedritos…" |
| Panel del negocio | Agenda por día y semana con una columna por profesional; la reserva nueva aparece resaltada; reprogramar arrastrando; marcar "Llegó" / "No asistió"; notas que se guardan; lista de espera; filtros con fechas reales | Solo tabla; "Guardar Notas" sin acción; filtros siempre vacíos | 3 profesionales: Dra. Laura Méndez (ortodoncia), Dr. Andrés Rojas (general), Paola Gómez (higienista) |
| Indicadores (nuevo, en el panel) | Ocupación de la semana, ausencias del mes, ingresos y abonos recibidos, servicios más reservados, reservas por canal (página, WhatsApp, teléfono) | — | Ocupación 78 %, ausencias 6 %, abonos $3,1 M en el mes (etiqueta "Datos de ejemplo") |
| Global | Aviso "Datos de ejemplo"; banner "¿La quieres con tu marca y tus servicios? Pide tu página de reservas de prueba"; botón "Iniciar recorrido"; CTA final "Solicitar propuesta" |
DemoCTA genérico |
— |
Recorrido guiado (5 pasos, menos de 3 minutos):
flowchart LR
A["1. Pagina con la marca del negocio"] --> B["2. Profesional, fecha y hora reales"]
B --> C["3. Datos, autorizacion y abono simulado"]
C --> D["4. Confirmacion y recordatorio por WhatsApp"]
D --> E["5. La cita aparece en la agenda del negocio"]
E --> F["CTA: pagina de reservas de prueba o propuesta"]
- Página pública: elegir "Limpieza dental" en la sede Cedritos con la higienista Paola Gómez.
- Fecha y hora: el calendario muestra el festivo como cerrado; elegir el jueves a las 10:00 a. m. entre las franjas que quedan.
- Datos y abono: completar los datos, aceptar la autorización y pagar el abono de $42.000 con PSE (simulado).
- Confirmación: ver el mensaje de WhatsApp de confirmación y el recordatorio que llegará 24 horas antes con "Confirmar" o "Reprogramar".
- Vista negocio: la cita aparece resaltada en la agenda de Paola; marcar otra cita como "No asistió" y ver cómo cambian los indicadores. Cierre con CTA "Pide tu página de reservas de prueba" / "Solicitar propuesta".
-
Modo recomendado:
publicocon banner "Solicita tu demo guiada". Razones: el producto tiene una cara pública por naturaleza (la página que usan los clientes del negocio); ya está enlazada desde el inicio y el footer; los datos son de ejemplo y no sensibles; se entiende en 3 minutos y atrae a muchos negocios pequeños y medianos como imán de leads. -
Versión personalizada por
solicitud: "tu página de reservas de prueba en 24 horas". El prospecto envía logo, servicios y profesionales en el formulario; el admin la configura sin código y la aprueba. Duración: 14 días, extensible 7. Es la herramienta comercial más fuerte del producto: el dueño del negocio la comparte con sus socios y la prueba con su propio celular. - Qué ve el visitante antes de solicitar: la demo completa con datos de ejemplo, más la landing con capturas y el video de 60 s. La demo pública no pide registro.
- Formulario: el general de Sistema de demos más sector, sedes, profesionales, reservas al mes, cómo agenda hoy y logo (opcional).
- Prospecto aprobado (Portal › Mis demos, ver Portal del cliente): tarjeta "Reservas — " con días restantes, botones "Abrir mi página de reservas de prueba" y "Abrir panel del negocio", "Invitar a mi equipo" (hasta 3 usuarios) y CTA "Solicitar propuesta" / "Agendar llamada".
-
Eventos
DemoEvent: pasos del flujo completados, reservas creadas, cambio a "Vista negocio", presets usados, clic en banner y CTA; en la versión personalizada, número de reservas de prueba hechas por el equipo del prospecto.
Sin código, desde Admin › Solicitudes de demo › Aprobar (o Admin › Demos › Personalizar), guardado en DemoGrant.personalizacion. Ver Panel de administración.
| Campo | Efecto en la demo |
|---|---|
| Logo y color primario | Página pública, botones, mensajes de WhatsApp y correo de ejemplo |
| Nombre del negocio | Encabezado, confirmación y mensajes |
| Sector (preset) | Dataset completo: Odontología · Estética y spa · Canchas y centros deportivos · Salud ambulatoria (consulta y terapia física) · Barbería y peluquería |
| Servicios (hasta 6: nombre, duración, precio, abono) | Catálogo de la página pública y cálculo de franjas |
| Profesionales o recursos (hasta 4) | Selección en la reserva y columnas de la agenda |
| Sedes (hasta 3, con dirección) | Selector de sede y confirmación |
| Horario de atención | Disponibilidad y días cerrados |
| Cobro (abono, pago total o pago en el sitio) | Paso Pago |
| Canal de recordatorio (WhatsApp y/o correo) | Vistas previas en la confirmación |
| Plan cotizado | Muestra solo los módulos incluidos; el resto aparece bloqueado con "Disponible en plan X" |
| Idioma (es / en) | Textos, fechas y moneda |
Implementación: mover servicios, reservas, profesionales y horarios a apps/web/src/app/demo/sistema-reservas/fixtures/<sector>.ts; mover el namespace reservations a messages/demos/sistema-reservas.{es,en}.json; la página lee la configuración de GET /api/demo-access/sistema-reservas (DECISIÓN 3) cuando hay grant y usa el preset genérico cuando es pública. El logo subido por el prospecto se guarda con los demás archivos del grant, no en el repositorio.
Alcance MVP — modalidad compra (plan Profesional; 8–12 semanas reales, porque no existe base):
- Catálogo y recursos: servicios con duración, precio, abono y tiempo de alistamiento; profesionales, salas o equipos con horarios, excepciones, vacaciones y festivos de Colombia; sedes.
-
Motor de disponibilidad: sin doble reserva (bloqueo transaccional de la franja), zona horaria
America/Bogota, servicios por cupo (clases) y por recurso. - Reserva: página pública con la marca del cliente y su dominio, widget embebible y enlace para Instagram y WhatsApp; datos mínimos, autorización de tratamiento de datos (Ley 1581) y consentimiento explícito cuando haya datos sensibles.
- Pagos: abono o pago total con Wompi o PayU (PSE, Nequi, Daviplata, tarjetas) con conciliación por webhook; reembolsos según la política de cancelación.
- Comunicación: confirmación y recordatorios por correo y por WhatsApp Business Platform (plantillas de utilidad aprobadas por Meta, con botones confirmar/reprogramar); SMS opcional.
- Agenda del negocio: día y semana por profesional, reprogramar, asistió/no asistió, lista de espera, notas.
- Calendarios: sincronización con Google Calendar y Outlook de cada profesional.
- Reportes: ocupación, ausencias, ingresos por servicio, profesional y sede.
- Integraciones típicas en Colombia: facturación electrónica del servicio a través de Siigo, Alegra o Facturación electrónica; CRM; POS; videollamada (Zoom/Meet) o Telemedicina para citas virtuales de salud.
- Transversal: roles (dueño, recepción, profesional) con autorización en servidor, auditoría, exportación de datos, copias de seguridad; apoyo al cliente con su política de tratamiento de datos y su aviso de privacidad.
- No incluye: historia clínica ni datos clínicos (eso es de su sistema de salud; se integra en Enterprise).
SaaS (DECISIÓN 7): no hay base multi-tenant ni cobro recurrente → "SaaS: lista de espera". Es el producto donde el mercado más espera una suscripción mensual, así que es candidato a SaaS después del chatbot RAG y de Gestión de proyectos. Requisitos (Fase 4): multi-tenant con aislamiento por negocio, subdominio o dominio propio por cliente, alta en autoservicio con asistente de configuración, cobro recurrente con Wompi o PayU (COP) y Stripe (USD), número de WhatsApp por cliente (o compartido con plantillas de marca), medición de reservas y mensajes contra el plan, y acuerdo de encargo de tratamiento de datos.
Complemento RAG (Fase 4, después del SaaS del chatbot): agendamiento conversacional por WhatsApp: el asistente responde con los documentos del negocio (preparación para un procedimiento, precios, políticas) y consulta y crea la reserva con el motor de disponibilidad.
Precios actuales del catálogo (apps/web/src/lib/services-catalog.ts, entrada sistema-reservas; COP):
| Plan | Compra: setup | Compra: mantenimiento/mes | SaaS: setup | SaaS: mes | Volumen incluido | Usuarios admin / clientes finales / sedes | Implementación (catálogo) | Costos del cliente al proveedor (USD/mes) |
|---|---|---|---|---|---|---|---|---|
| Básico | $32.000.000 | $2.900.000 | $2.900.000 | $1.090.000 | 500 reservas/mes | 3 / 500 / 1 | 2–5 semanas | 50–200 (hosting, base de datos, correo, SMS básico) |
| Profesional | $81.000.000 | $7.200.000 | $6.900.000 | $2.590.000 | 8.000 reservas/mes | 15 / 10.000 / 5 | 5–9 semanas | 300–1.200 (+ correo Pro, mensajería, pasarela) |
| Avanzado | $189.000.000 | $16.200.000 | $12.900.000 | $4.990.000 | 60.000 reservas/mes | 40 / 75.000 / 25 | 9–14 semanas | 1.500–5.000 (multisede, comunicaciones omnicanal) |
| Enterprise | $405.000.000 | $31.500.000 | $0 (se muestra "Personalizado") | $8.890.000 | 500.000+ reservas/mes | Ilimitados | 12–20 semanas | 5.000–18.000 (multipaís, omnicanal, recuperación ante desastres) |
Almacenamiento: 5 GB / 50 GB / 250 GB / ilimitado. Horas de evolutivos incluidas por mes: 5 / 12 / 25 / 50. Soporte: correo 24 h hábiles / + WhatsApp 4 h / + Slack Connect 2 h / tickets con SLA 1 h. Ciclos SaaS: semestral −10 %, anual −20 %. Referencia en USD con TRM 3.300: setup de compra ≈ USD 9.700 / 24.550 / 57.270 / 122.730; SaaS ≈ USD 330 / 780 / 1.510 / 2.690 al mes.
Recomendaciones de claridad:
- Frente al mercado: hay agendas en línea desde gratis hasta unas decenas de dólares al mes. El Básico de Koptup (≈ USD 330 al mes en SaaS o $32 M en compra) solo se justifica con varias sedes o profesionales, abonos, marca propia, WhatsApp e integraciones. La landing debe decirlo en una tabla "Agenda genérica vs Koptup" y orientar a los negocios de una sola agenda hacia otra solución (o hacia la lista de espera del SaaS).
- Mantenimiento incoherente: 12 × $2,9 M = $34,8 M al año (109 % del setup Básico) y es 2,7 veces la cuota SaaS ($1,09 M). A 3 años, la compra Básica cuesta $136,4 M y el SaaS $42,1 M. Aplicar la política común de mantenimiento de Catálogo de productos.
- SaaS → "Lista de espera" hasta la Fase 4. Para cuando exista, decisión del dueño: precio por sede o por profesional activo, más mensajes de WhatsApp al costo, en lugar de 4 planes por volumen.
- Pasarelas correctas: reemplazar "Stripe/Wompi" por "Wompi o PayU (PSE, Nequi, tarjetas)" en COP; Stripe solo para clientes que cobran en USD con entidad en el exterior.
- Bullets en lenguaje de cliente. Propuesta: Básico "1 sede, 3 usuarios del negocio y hasta 500 reservas al mes · Página de reservas con tu marca y enlace para WhatsApp e Instagram · Agenda por profesional · Abonos en línea con PSE, Nequi o tarjeta · Confirmación y recordatorio por correo · Sincronización con Google Calendar". Profesional "+ Hasta 5 sedes y 8.000 reservas al mes · Recordatorios por WhatsApp con confirmar o reprogramar · Outlook y Apple Calendar · Videollamada automática · Lista de espera y políticas de cancelación · Conexión con tu CRM". Avanzado "+ Hasta 25 sedes y 60.000 reservas al mes · Franquicias y recursos compartidos (salas, equipos, canchas) · Paquetes y membresías · Reportes por sede · API para tus sistemas · Agendamiento por WhatsApp con asistente IA". Enterprise "+ Sedes ilimitadas · Integración con historia clínica · Disponibilidad desde tu ERP o sistema de RR. HH. · Gerente de proyecto dedicado · Soporte con SLA de 1 hora".
- Límites que se entiendan: "Cuentas / tenants" → "Sedes"; "Usuarios finales" → "Clientes registrados".
- Tiempos: sin base existente, el primer cliente toma más que 2–5 semanas; ajustar a 6–8 / 8–12 / 12–18 / 16–24 semanas con el override por offering y bajarlos cuando exista el motor reutilizable.
- Quitar los 4 "Reportes mensuales del tier" de Enterprise y los demás duplicados, usar tuteo, descripción propia,
idealParareal (p. ej. Básico: "Clínicas, centros de estética y academias con una sede y hasta 3 profesionales") ycostoNotecon el rango del catálogo (USD 50–18.000) explicando que WhatsApp se cobra al costo según tarifas de Meta. - Unificar la categoría: "Agenda y reservas" en catálogo, inicio y hub (hoy "Productividad", "Servicios" y "Calendario").
Detalle de la política comercial común en Catálogo de productos y Comercial, marketing y legal.
| # | Tarea | Fase | Prioridad | Esfuerzo | Criterio de aceptación |
|---|---|---|---|---|---|
| 1 | Correcciones visibles: fecha según el mes y año navegados (quitar 2024-01-), días pasados bloqueados, "hoy" solo en el mes actual, reservas semilla con fechas relativas, la reserva confirmada aparece en el panel, validación mínima de datos, etiquetas de teléfono y correo por i18n |
Fase 1 — Funnel y solicitud de demos | P1 | S | Elegir el 15 del mes siguiente confirma esa fecha exacta; la reserva nueva se ve en el panel; el filtro "Esta semana" nunca sale vacío |
| 2 | Textos del offering (pasarelas Wompi/PayU, sin los 4 duplicados de Enterprise, tuteo, idealPara, costoNote = USD 50–18.000) en ES y EN; hub y SEO sin promesas que la demo no muestra ("Prueba gratis", "SMS", "restaurantes"); categoría unificada |
Fase 1 — Funnel y solicitud de demos | P1 | S | Ninguna función mencionada en hub, SEO o Básico está ausente de la demo; sistema-reservas.{es,en}.json sin bullets repetidos |
| 3 | Landing /productos/sistema-reservas con las 9 secciones y la tabla "Agenda genérica vs Koptup" |
Fase 1 — Funnel y solicitud de demos | P1 | M | Página publicada; el formulario llega con el producto preseleccionado y los campos de sedes y profesionales |
| 4 | Registrar DemoCatalogItem sistema-reservas en modo publico con banner y la oferta "página de reservas de prueba" por solicitud (14 días) |
Fase 1 — Funnel y solicitud de demos | P1 | S | La demo abre sin registro con banner; con grant carga la marca y los servicios del prospecto, verificado en servidor |
| 5 | Dividir page.tsx (940 líneas) en PublicPage, BookingWizard y BusinessPanel con estado compartido; mover reservations a messages/demos/sistema-reservas.*.json; smoke test |
Fase 0 — Endurecimiento | P2 | M |
messages/es.json sin el namespace reservations; smoke test en CI; ningún archivo del demo supera 300 líneas |
| 6 | Motor de disponibilidad simulado (profesionales, recursos, sedes, duración + alistamiento, horarios, festivos de Colombia, reservas existentes) y vista semanal real | Fase 2 — Demos vendibles | P1 | M | Un servicio de 90 min no deja reservar franjas que se crucen; los festivos aparecen cerrados; "Semana" muestra 7 días con franjas |
| 7 | Paso Pago simulado (abono, pago total, pago en el sitio), autorización Ley 1581 con aviso de datos sensibles, política de cancelación, confirmación con fecha legible, archivo .ics y vistas previas de WhatsApp y correo | Fase 2 — Demos vendibles | P1 | M | No se puede confirmar sin aceptar la autorización; el .ics abre en Google Calendar con la fecha y hora correctas |
| 8 | Panel del negocio: agenda día/semana por profesional, reprogramar arrastrando, "Llegó"/"No asistió", notas que se guardan, lista de espera e indicadores | Fase 2 — Demos vendibles | P1 | M | Marcar "No asistió" actualiza el indicador de ausencias; las notas persisten durante la sesión |
| 9 | Presets por sector (odontología, estética y spa, canchas, salud ambulatoria, barbería) en fixtures/ con COP, nombres ficticios verificados y sin emojis |
Fase 2 — Demos vendibles | P1 | M | Cambiar de preset cambia servicios, profesionales, horarios y textos; ningún emoji como imagen |
| 10 | Personalización desde DemoGrant (logo, color, negocio, servicios, profesionales, sedes, horario, cobro, recordatorio, plan) configurable desde el admin en < 15 min |
Fase 2 — Demos vendibles | P1 | M | El comercial publica una página de reservas de prueba con la marca del prospecto en menos de 24 h desde la solicitud |
| 11 | Recorrido guiado de 5 pasos, aviso "Datos de ejemplo", 6 capturas y video de 60 s | Fase 2 — Demos vendibles | P1 | S | Recorrido completable en < 3 min; capturas en docs/wiki/images/ y en la landing |
| 12 | Plantilla de propuesta en el Quote ampliado con calculadora por sedes, profesionales, reservas y mensajes de WhatsApp |
Fase 3 — Propuestas y conversión | P2 | S | El comercial genera la propuesta en PDF con costo mensual estimado de WhatsApp en < 20 min |
| 13 | Base real: motor de reservas multi-tenant (servicios, recursos, disponibilidad sin doble reserva, Wompi/PayU con webhook, WhatsApp Business Platform, Google Calendar) con autorización en servidor | Fase 4 — Productos SaaS reales | P2 | XL | Un cliente piloto recibe reservas reales con abono durante 30 días sin dobles reservas ni pagos sin conciliar |
| 14 | Complemento RAG: agendamiento conversacional por WhatsApp sobre el motor de reservas y el chatbot RAG | Fase 4 — Productos SaaS reales | P2 | L | En una prueba con 50 conversaciones, ≥ 80 % de las citas solicitadas por WhatsApp quedan agendadas sin intervención humana |
| 15 | Caso de estudio del primer cliente (antes/después en ausencias y tiempo dedicado a agendar) | Fase 5 — Escala | P3 | S | Caso publicado con cifras reales y autorización escrita del cliente |
Son metas iniciales a validar con datos reales; no son resultados actuales.
- ≥ 35 % de las sesiones que empiezan una reserva en la demo pública la terminan, y ≥ 50 % de ellas pasan a "Vista negocio".
- Clic en el banner "Pide tu página de reservas de prueba" ≥ 3 % de las sesiones; conversión a solicitud enviada ≥ 2 %.
- ≥ 50 % de las solicitudes con 2 o más sedes o 4 o más profesionales (lead que justifica una solución a medida).
- Página de reservas de prueba publicada en < 24 h para el 90 % de las solicitudes aprobadas.
- ≥ 30 % de las demos personalizadas terminan en propuesta en ≤ 21 días.
- 0 fechas de 2024 y 0 reservas que no aparecen en el panel (prueba automatizada del flujo completo).
- Primer contrato en los 6 meses siguientes a la Fase 2; ≥ 30 negocios en la lista de espera del SaaS antes de decidir su construcción.