Documentación oficial

Guía completa del ecosistema GymFlow

Todo lo que necesitás saber para configurar y aprovechar al máximo la plataforma. Desde el primer WOD hasta la gestión de múltiples sedes.

Primeros pasos

¿Cómo empezar?

GymFlow se activa en minutos. Seguí estos pasos para tener tu primera clase lista.

01
Registrá tu gimnasio
Ingresá a gymflow.com.ar/registro, completá los datos de tu gimnasio y elegí tu plan. En menos de 2 minutos tenés acceso completo con 30 días de prueba gratuita.
02
Configurá tu sala
En Configuración → Salas, creá tu primera sala y copiá el link de display. Ese link lo abrís en el TV del gym para mostrar la pantalla a los alumnos.
03
Armá tu primer WOD
Desde el Constructor de sesiones, creá bloques de ejercicio con duración, descanso y modalidad. Podés guardarlos y reutilizarlos.
04
Ejecutá la clase
Abrí el Panel en vivo, asigná la sala, y arrancá. El cronómetro, la música y la pantalla de los alumnos se sincronizan solos.
05
Invitá a tus alumnos a la app
Compartiles el código del gym. Los alumnos descargan la app GymFlow de Google Play, ingresan el código y ya pueden reservar, hacer check-in y ver su progreso.

Arquitectura

El ecosistema de 3 capas

GymFlow conecta tres actores en tiempo real. Todo sincronizado via WebSocket, sin recargas ni apps de terceros.

🖥️
Panel del Instructor
El instructor controla todo desde su celular, tablet o PC. Arma el WOD, controla el cronómetro, la música y los bloques en tiempo real.
📺
Pantalla de Sala
El TV del gym muestra en tiempo real el ejercicio actual, la cuenta regresiva, la animación del movimiento y el bloque siguiente.
📱
App del Alumno
Los alumnos reservan clases, hacen check-in por QR, ven su historial de asistencia y calculan su RM personal desde la app.
🔄
Sincronización en tiempo real
Toda la comunicación entre las tres capas ocurre via WebSocket. El cambio de bloque del instructor se refleja en el TV y la app en milisegundos.

Panel del Instructor

Constructor de WODs Todos los planes

Armá sesiones con bloques de ejercicio modulares. Cada bloque tiene configuración independiente de tiempo, modalidad y ejercicio.

📦
Bloques de ejercicio
Cada bloque tiene: nombre, ejercicio, duración, series, descanso y modalidad (Tabata, AMRAP, EMOM, circuito, tiempo libre).
🔀
Reordenar y duplicar
Arrastrá los bloques para reordenarlos. Duplicá un bloque con un click para crear variaciones rápidamente.
💾
Sesiones guardadas
Las sesiones quedan guardadas para siempre. Reutilizalas, editalas o clonalas para la próxima semana.
👥
Biblioteca compartida
Los instructores del mismo gimnasio comparten su biblioteca de sesiones. El conocimiento queda en la institución, no en el celular de alguien.
💡
Tip: Podés usar el generador de IA para armar el WOD completo en segundos. En la sección de IA explicamos cómo configurarlo.

Panel del Instructor

Prescripción de cargas Todos los planes

Definí el peso a trabajar por ejercicio y por ronda, con curvas de progresión y tres niveles de dificultad que se muestran en tiempo real en la pantalla de sala.

Curvas de progresión disponibles

Tipo Descripción Ideal para
🔒 Fija El mismo peso en todas las rondas Trabajo técnico, máximas sostenidas
↑ Progresiva Sube linealmente del inicio al fin Fuerza, calentamiento progresivo
↓ Descendente Baja con cada ronda Alta carga inicial, fatiga controlada
△ Pirámide Sube hasta el pico y vuelve a bajar Hipertrofia, máximo en el centro
〜 Wave Ondas de 3 rondas que escalan Potenciación del sistema nervioso
✎ Manual Vos ingresás los pesos ronda por ronda Programas específicos o test de fuerza

Niveles de dificultad (Fácil / Medio / Difícil)

Para grupos heterogéneos podés definir tres bandas de carga por ejercicio. Cada nivel sigue la misma curva pero con sus propios valores de inicio y fin.

🟢
Fácil
Para alumnos principiantes, personas que vuelven de lesión o cualquiera que ese día priorice calidad de movimiento sobre intensidad.
🟡
Medio
La referencia estándar para un alumno intermedio con buena técnica. Si solo cargás un nivel, usá este.
🔴
Difícil
Para alumnos avanzados que dominan el patrón de movimiento y buscan un estímulo de fuerza real.
⚖️
Redondeo automático: los pesos calculados se redondean al múltiplo de 2.5 kg más cercano (el incremento mínimo con discos estándar). Si la progresión da 72.3 kg, el sistema muestra 72.5 kg. Los tipos Manual y Fijo no se redondean.
📺
Los tres niveles se muestran simultáneamente en la pantalla de sala y en el panel del instructor, actualizados ronda a ronda en tiempo real. No hay que recordar nada — el sistema lo calcula y lo muestra solo.

Panel del Instructor

Biblioteca de ejercicios Todos los planes

Catálogo integrado de ejercicios con nombre, descripción, grupo muscular y animación de movimiento. Disponible para todos los instructores del gym.

🔍
Búsqueda y filtros
Buscá ejercicios por nombre o filtrá por grupo muscular (piernas, core, brazos, etc.) para encontrar rápido el ejercicio que necesitás.
🕺
Animaciones de movimiento
Cada ejercicio incluye una figura animada que muestra la técnica de ejecución. La misma animación se proyecta en la pantalla de sala durante la clase.
🎬
Videos por ejercicio NUEVO
Subí un video de demostración a cada ejercicio y el alumno lo ve desde su plan en la app. Se transmite por streaming (por partes, a demanda): no descarga el archivo completo ni ocupa espacio en el teléfono.
📦
Reutilización en WODs
Al crear un bloque en el Constructor, elegís el ejercicio directamente desde la biblioteca. Todos los instructores del gym acceden a los mismos ejercicios.
⚖️
Peso sugerido por nivel NUEVO
Al crear o editar un ejercicio, podés definir el peso recomendado en 3 niveles: 🟢 Fácil, 🟡 Medio y 🔴 Difícil. Si dejás vacío, se entiende que es bodyweight (sin carga). Estos valores se usan como punto de partida en el Builder y el generador IA.
💡
Los 50 ejercicios base del sistema ya vienen con pesos sugeridos realistas (barra sola para fácil, KB estándar, etc.). Al agregar un ejercicio al Builder, los pesos se precargan automáticamente. Siempre son editables.

Panel del Instructor

Sesiones compartidas Plan Instructor

Los instructores del Plan Instructor pueden compartir sus sesiones WOD directamente con sus alumnos. Los alumnos reciben acceso a una sesión interactiva desde la app.

📤
Compartir con clientes
El instructor selecciona una sesión guardada y la comparte con clientes seleccionados. Ellos reciben el WOD en la app para verlo a su ritmo.
📥
Vista del instructor compartidor
En Sesiones compartidas conmigo el instructor ve las sesiones que colegas del gym compartieron con él, y puede ejecutarlas directamente.
ℹ️
Plan Gimnasio: la biblioteca es compartida entre todos los instructores del gym. En el Plan Instructor, el share es individual entre instructor y sus clientes específicos.

Panel del Instructor

Plan Personal de Entrenamiento (PT) Todos los planes

Armá rutinas individuales y completamente personalizadas para cada alumno. A diferencia del WOD grupal, el Plan PT es exclusivo para ese cliente: días, bloques, ejercicios, series, repeticiones, peso y tiempo de descanso por separado.

📋
Planes por alumno
Cada plan se crea para un alumno específico. Definís el nombre, la duración en semanas, los días por semana y las fechas de inicio y fin (calculadas automáticamente).
🗓️
Días y bloques
Dentro de cada plan podés agregar los días que quieras (Día 1, Día 2…). Dentro de cada día, armás bloques de ejercicio: simples o en superserie.
Superseries A+B
Combiná dos o más ejercicios en superserie: se ejecutan sin descanso entre ellos. Cada ejercicio de la superserie lleva su propia tabla de sets.
📊
Sets con detalle completo
Por cada ejercicio definís sets individuales con reps, peso, unidad (kg/lb/%/bw) y tiempo de descanso. Podés clonar el último set para agilizar la carga.
📚
Biblioteca de ejercicios
El builder usa la biblioteca completa del sistema (ejercicios base + los que crea el instructor). Los nombres se muestran en inglés con su traducción al español.
📱
El alumno lo ve en la app
Una vez armado el plan, el alumno lo visualiza desde la app en Mi Plan PT. Puede navegar por cada día, ver los ejercicios con sus series, pesos y descansos.
💬
Comentarios por día entre el alumno y el profe
Cada día del plan tiene su hilo. El alumno escribe desde la app («Comentarios con tu profe», al pie del día) y el profe lo ve en el armador, en el hilo de ese día, con contadores de no leídos en las pestañas y en la tarjeta del plan. Lo que escribe el profe dispara una push al alumno (toggle en Configuración → App del alumno) y queda en su bandeja de notificaciones; lo del alumno no dispara push: el profe lo ve pendiente en el plan.
🖨️
Hoja A4 imprimible para el alumno
Para el alumno que quiere la rutina en papel. Botón 🖨️ Imprimir en el armador, en cada tarjeta de Planes PT y en la ficha del alumno (recepción también lo ve). Hoja A4 con el logo y el nombre del gimnasio y el plan completo: días, bloques, ejercicios y series, con las superseries como A) / B) y las notas de técnica. El peso impreso es el que prescribió el profe, no el que el alumno ajustó desde la app. Se imprime o se guarda como PDF desde el navegador.

Flujo de trabajo

Paso Acción Dónde
1 Ir a Planes PT en el menú del instructor Panel web
2 Crear nuevo plan: seleccionás el alumno, semanas y fechas Botón "+ Nuevo Plan"
3 Abrir el builder del plan y agregar días Botón "Abrir Builder"
4 Dentro de cada día, agregar bloques simples o superseries Barra inferior del builder
5 Seleccionar ejercicios de la biblioteca y configurar sets Panel lateral o modal picker
6 El alumno abre la app y accede desde Mi Plan PT App GymFlow del alumno
7 (Opcional) Imprimir la hoja A4 o guardarla como PDF para entregarla en papel Botón "🖨️ Imprimir / PDF" del builder, de Planes PT o de la ficha del alumno
💡
La fecha de fin se calcula automáticamente al ingresar la fecha de inicio y la cantidad de semanas. También podés editarla manualmente si necesitás ajustar.
ℹ️
El Plan PT es distinto a las Sesiones Compartidas. Las sesiones compartes un WOD de clase a varios alumnos. El Plan PT es una rutina individual, exclusiva para un alumno específico, con progresión semanal.

Panel del Instructor

Plantillas de Plan PT Todos los planes

Creá plantillas reutilizables de rutinas PT. En lugar de armar cada plan desde cero, definís la estructura de días y ejercicios una sola vez y la aplicás a cualquier alumno.

🗂️
Plantillas de equipo
Las plantillas son compartidas entre todos los instructores del gimnasio. Un instructor crea "Fuerza 3 días" y cualquier colega puede usarla para asignarla a sus alumnos.
Misma estructura del builder PT
Las plantillas usan exactamente el mismo editor que los planes individuales: días, bloques, superseries y sets con reps/peso/descanso. Todo lo que sabés del builder PT aplica acá.
🚀
Aplicar con un click
Al crear un nuevo plan PT para un alumno, podés elegir una plantilla como punto de partida. Todos los días y ejercicios se copian al plan y podés ajustar lo que necesites.
👥
Varios alumnos a la vez
Si varias personas siguen la misma rutina, tildás a todas en el modal de asignar y cada una recibe su propia copia del plan, editable por separado. También podés duplicar una plantilla para armar una variante sin tocar la original.
💡
Tip: Usá plantillas para tus programas más populares: Fuerza Hipertrofia 4x, Funcional 3 días, Rehabilitación baja carga. Una vez creadas, asignarlas a nuevos alumnos tarda segundos.

Panel del Instructor

Rutinas por patrón de movimiento Todos los planes

Una rutina que dice "press de banca" deja de servir el día que la sala cambia la máquina, y le da lo mismo al que recién empieza que al que tiene una molestia de hombro. Con este sistema la estructura de la sesión pide un patrón de movimiento —empuje horizontal, bisagra, tirón vertical…— y el generador de rutinas del Plan PT lo resuelve con las máquinas reales de tu sala. Es opt-in por gimnasio: apagado, el generador funciona como siempre y no aparece nada nuevo.

🧬
La idea: un renglón de la sesión no nombra un ejercicio sino un patrón. Hay 18 patrones (empuje horizontal, inclinado y vertical, aperturas, tirón vertical, horizontal y bajo, rodilla, bisagra, glúteo directo, abductores/aductores, gemelos, deltoide lateral y posterior, bíceps, tríceps, core y cardio) más 3 auxiliares (agarre, equilibrio, movilidad). Así la misma estructura sigue sirviendo si el gym cambia de máquinas, y dos alumnos de distinto nivel o con una molestia reciben máquinas distintas para el mismo lugar de la sesión.

Las tres piezas

🏋️
1. Máquinas clasificadas
Cada máquina de la Biblioteca lleva su patrón, variante, tipo de máquina y código de sala. Sin patrón, el generador no la ve.
📐
2. Estructuras semanales
En el Diagramador, cada estructura describe la semana: días, zona de cada día y sus renglones en orden, cada uno con un patrón e intensidad.
3. La rutina generada
El profe contesta 7 preguntas en el armador del Plan PT y el sistema cruza estructuras + máquinas para armar los días con series, reps y RIR.

Pieza 1 — Máquinas clasificadas (Biblioteca)

Con el sistema prendido, la Biblioteca pasa a llamarse Máquinas y ejercicios y el alta o edición de un ejercicio gana el bloque 🧬 Clasificación por patrón: patrón, variante, tipo de máquina y código de sala. Un filtro 🧬 Sin clasificar (N) y un aviso ámbar en cada máquina propia sin clasificar te muestran lo que falta (solo mira las máquinas propias del gym).

  • 📦 Cargar parque de máquinas (99): carga un parque estándar de 99 máquinas ya clasificadas. Primero muestra qué va a crear y pide confirmación; lo que ya cargaste a mano se completa, no se duplica.
  • Cobertura a la vista: el panel "Generador de rutinas por patrón" dice "X de Y lugares de las rutinas que el generador puede armar tienen máquina en tu sala", con el porcentaje y un botón Ver qué falta.

Pieza 2 — Estructuras semanales (Diagramador)

Se abre desde el menú del instructor → Diagramador (el ítem aparece solo con el sistema prendido) o con el botón 📐 Diagramar mis rutinas junto al interruptor en Configuración. El gimnasio arranca con un set de referencia en uso, visible con Ver los días; Editar copia el set completo al gimnasio y desde ahí se edita libremente, y + Estructura crea una propia. El Diagramador también muestra la cobertura de máquinas de lo que el generador va a usar.

Nivel Qué se define
La estructura Nombre, días por semana (1 a 6), estilo (Full Body, Torso / Pierna, Push · Pull · Legs, por grupos musculares o libre), nivel desde/hasta y si es la recomendada para esa cantidad de días.
Cada día Rótulo y zona (torso, pierna o cuerpo entero).
Cada renglón Nombre, patrón, variante e intensidad, en orden. Un renglón pide un patrón, no un ejercicio.

Pieza 3 — Las 7 preguntas que contesta el profe

En el armador del Plan PT (Planes PT → Abrir Builder → ✨ Generar con IA). Las contesta el profe, no el alumno.

Pregunta Opciones
Objetivo Hipertrofia / salud / recomposición, o Fuerza. Fuerza no se ofrece a un nivel inicial.
¿Cuántos días por semana va a venir? 1 a 6.
Experiencia entrenando con pesas Inicial I — Adaptación, Inicial II — Principiante, Intermedio, Avanzado.
¿Cómo dividimos el entrenamiento? Los estilos disponibles para esos días y ese nivel, con el recomendado marcado.
¿Qué quiere priorizar? Tren inferior / glúteo, Torso / brazos, Parejo. El énfasis suma volumen donde se pide sin restar del resto.
¿Cuánto tiempo tiene para entrenar? 45 minutos, 1 hora o 1 h 30 → 6, 8 o 10 ejercicios por sesión.
Molestias o lesiones Hombro, Rodilla, Lumbar, Cadera. Cambian la máquina, no el patrón. Vienen pre-tildadas desde las lesiones activas de la ficha del alumno.

Con eso el sistema cruza estructuras + máquinas y arma los días con series, repeticiones y RIR según un cuadro por objetivo × nivel, con entrada en calor y cierre, y muestra una vista previa antes de guardar. El peso queda vacío para que lo cargue el profe. El nivel no filtra máquinas: son las mismas para todos, lo que cambia es carga, técnica y volumen. Si el plan ya tiene días, reemplazarlos pide confirmación explícita y avisa cuántos se van a reemplazar.

Qué ve el alumno

Exactamente lo mismo que cualquier Plan PT: Mi Plan PT en la app (Mi Plan de Entrenamiento en el portal web), con los días, bloques, series, reps y descansos, y la regla de progresión como nota del primer bloque de fuerza; el plan también queda en la ficha del alumno, y el profe o el mostrador pueden imprimirle la hoja A4. No hay que instalar ni actualizar nada del lado del alumno, y el alumno no contesta las preguntas: las contesta el profe.

Cómo prenderlo

01
Activar el interruptor
El administrador entra a Configuración → 📱 App del alumno → Sistema de rutinas por patrón de movimiento. Arranca apagado y no depende del plan: es parte de las herramientas del profe.
02
Cargar o clasificar las máquinas
En Máquinas y ejercicios, cargá el parque estándar o clasificá las tuyas una por una hasta que la cobertura llegue a lo que el generador necesita.
03
Revisar las estructuras
En el Diagramador, mirá el set de referencia con Ver los días. Si tu metodología es otra, Editar lo copia al gimnasio y lo adaptás.
04
Generar la primera rutina
Desde el armador del Plan PT, ✨ Generar con IA: contestás las 7 preguntas, revisás la vista previa, cargás los pesos y guardás. El alumno la ve en Mi Plan PT.

Cómo deshacer

Dónde Botón Qué hace
Diagramador ↩ Volver al set de referencia Guarda tus estructuras propias y vuelve al set de referencia. ↺ Recuperar mis estructuras las trae de vuelta.
Biblioteca ↩ Deshacer la carga Da de baja las máquinas que cargó el sistema y conserva las que editaste (peso, nota, video o clasificación). ↺ Recuperar (N) las revive sin duplicar.
Configuración Apagar el interruptor Vuelve al generador de siempre.
🛟
Todo es baja lógica, nada se borra, y las rutinas ya generadas no se tocan en ningún caso: el alumno sigue viendo su plan tal cual.
🔐
Permisos: el Diagramador y la clasificación por patrón son un módulo del grupo Instructor en Seguridad. El administrador lo tiene siempre; a un instructor se le puede quitar; el mostrador entra solo si se le otorga.

Panel del Instructor

Planes Nutricionales Todos los planes

Creá y asigná planes de alimentación individuales a cada alumno. Definís targets calóricos y de macros, estructurás las comidas del día y cargás los alimentos desde la biblioteca. El alumno lo consulta desde la app GymFlow.

🎯
Targets y objetivos
Al crear el plan definís el objetivo (déficit calórico, mantenimiento, superávit, definición, volumen, salud general) y los targets diarios: calorías totales, proteínas, carbohidratos y grasas en gramos.
🍽️
Estructura de comidas automática
Al crear el plan, un checkbox crea automáticamente las comidas base: Desayuno, Media Mañana, Almuerzo, Merienda y Cena. También podés agregar Colación, Pre-entreno, Post-entreno y las que necesités desde el builder.
📊
Macros en tiempo real
El builder muestra una barra de macros en el header que se actualiza en tiempo real: kcal total / target, proteínas, carbos y grasas. La barra de calorías se colorea en verde cuando alcanzás el target, y en rojo si lo superás.
📱
Visible en la app del alumno
El plan activo es visible para el alumno en la app GymFlow en la sección Mi Nutrición, con todas las comidas, alimentos, cantidades y macros por comida.
Activar / Pausar
Los planes tienen estado Activo o Inactivo. Solo el activo es visible al alumno. Podés pausar un plan y activar otro sin perder nada. Los planes inactivos quedan guardados y se pueden reactivar.
✏️
Cantidades editables en el builder
Cada alimento muestra un campo de gramos editable directamente en la lista. Al modificar la cantidad, los macros de esa comida y el total del plan se recalculan al instante sin recargar la página.

Flujo de trabajo

Paso Acción Dónde
1 Ir a Nutrición → Planes en el menú del instructor Panel web
2 Crear nuevo plan: elegís alumno, nombre, objetivo y targets de kcal/macros Botón "+ Nuevo Plan"
3 Activar el checkbox para crear la estructura de comidas base (o agregar comidas manualmente después) Modal de creación
4 En el builder, en cada comida hacés clic en "+ Alimento" para buscar en la biblioteca por nombre o categoría Builder del plan
5 Ajustás la cantidad en gramos de cada alimento directamente en la lista Campo editable en el builder
6 Cuando los macros estén listos, activás el plan con ▶ Activar Listado de planes
7 El alumno abre la app y accede desde Mi Nutrición App GymFlow del alumno
💡
El picker de alimentos tiene filtro por categoría: Carnes, Pescados, Lácteos, Cereales, Frutas, Suplementos, etc. Si el alimento no está en la base, podés ingresarlo manualmente con solo el nombre desde el mismo picker sin cerrar el builder.
ℹ️
Una vez creado el plan, el sistema redirige directamente al builder. Si usaste el checkbox de comidas base, ya aparecen Desayuno, Media Mañana, Almuerzo, Merienda y Cena listas para cargar alimentos.

Panel del Instructor

Biblioteca de Alimentos Todos los planes

Catálogo centralizado de alimentos con su tabla nutricional por cada 100g. Incluye una base de datos global pre-cargada con los alimentos más comunes, más la posibilidad de agregar alimentos personalizados del gym.

🌍
Base global pre-cargada
GymFlow incluye cientos de alimentos comunes ya cargados: proteínas, carbohidratos, grasas, frutas, verduras, lácteos y más. Disponibles para usar de inmediato sin configuración.
Alimentos del gimnasio
Agregá alimentos específicos de tu gym: suplementos propios, recetas del plan de nutrición del gym, marcas que usás con tus alumnos. Están disponibles solo para tu gimnasio.
🔍
Búsqueda rápida
Al armar el plan nutricional, buscás el alimento por nombre y lo agregás con la cantidad en gramos. Los macros se calculan al instante proporcionalmente a la porción ingresada.
📊
Por cada 100g
Cada alimento tiene registrado: calorías, proteínas, carbohidratos, grasas y fibra por cada 100g. Al ingresar la cantidad real de la porción, el sistema hace el cálculo proporcional automático.
💡
Tip: Si trabajás con un suplemento específico (whey, caseína, gainer), cargalo una vez en la Biblioteca con sus macros reales del envase. Después estará disponible para usar en todos los planes de cualquier alumno del gym.

Panel del Instructor

Panel en vivo Todos los planes

La cabina de control de la clase. Todo lo que necesitás para dirigir el entrenamiento sin distracciones.

⏱️
Cronómetro automático
Al avanzar al siguiente bloque, el cronómetro arranca automáticamente con la duración configurada. También podés controlarlo manualmente.
⏭️
Navegación de bloques
Avanzá o retrocedé entre bloques con un click. La pantalla del TV y la información de los alumnos se actualiza instantáneamente.
📋
Resumen WOD en sala
Mostrá u ocultá el resumen completo del WOD en el TV para que los alumnos puedan consultarlo al inicio de la clase.
🕐
Reloj de sala
Mostrá el reloj de tiempo real en el TV, o activá el modo pantalla completa para usar el TV exclusivamente como clock.
Función Descripción Atajo
Play / Pause Inicia o pausa el cronómetro actual
Siguiente bloque Avanza al próximo bloque y resetea el timer
Display Abre el link de la pantalla de sala en nueva pestaña
WOD Muestra / oculta el resumen del WOD en el TV
Reloj Activa el reloj en el TV de sala
Full Pone el reloj en pantalla completa en el TV

Panel del Instructor

Pantalla de sala Todos los planes

La pantalla que ven los alumnos en el TV del gimnasio. Se configura una vez y funciona sola.

1
Obtener el link de Display
En Configuración → Salas, cada sala tiene un link único de Display. Copialo.
2
Abrir en el TV
Pegá el link en el TV (Chromecast, browser del smart TV, HDMI desde notebook, etc.) y dejalo abierto. Se actualiza solo.
3
Asignar la sala al panel de vivo
Desde el Panel en vivo → selector de sala, elegí la sala correspondiente. La pantalla conecta automáticamente.
🏃
Ejercicio en curso
Nombre del bloque y ejercicio actual en tamaño grande, legible desde toda la sala.
⏱️
Cuenta regresiva
Cronómetro sincronizado con el instructor. Cambia de color automáticamente en los últimos segundos.
🕺
Animación del movimiento
Figura animada que muestra la ejecución del ejercicio. Disponible para los ejercicios de la biblioteca integrada.
⏭️
Próximo bloque
Muestra el nombre y ejercicio del siguiente bloque para que los alumnos puedan prepararse.
📺
Para configuraciones multi-sala, cada sala tiene su propio link de Display y puede mostrar un WOD diferente simultáneamente.

Panel del Instructor

Integración Spotify Todos los planes

Controlá la música de la clase directamente desde el panel del instructor, sincronizada con los bloques del WOD.

▶️
Control de reproducción
Play, pause, siguiente canción y control de volumen directamente desde el panel en vivo.
🎧
Playlists por bloque
Asociá una playlist de Spotify a cada bloque del WOD. Al avanzar de bloque, la música cambia automáticamente.
🔁
Modo repeat
Configurá el modo de repetición de la playlist: normal, repeat, repeat one o shuffle.
🎵
Now playing en sala
La canción en reproducción se muestra discretamente en la pantalla del TV para los alumnos.
💡
Requisito: Necesitás una cuenta de Spotify Premium activa para usar la integración. La vinculación se hace en Configuración → Integración Spotify.

Panel del Instructor

Generador de WOD con IA Todos los planes

El módulo de inteligencia artificial arma el WOD completo en segundos, con ejercicios, tiempos y música seleccionados de forma inteligente. Incluye prescripción automática de cargas según el tipo de ejercicio y el bloque.

1
Configurar los parámetros
Elegí el nivel del grupo (Principiante / Intermedio / Avanzado), el estilo de sesión (CrossFit, HIIT, Fuerza, Mixto) y el porcentaje de grupos musculares a trabajar (Tren superior / Tren inferior / Core).
2
Elegir la Prescripción de Carga
Seleccioná cómo querés que la IA maneje los pesos de los ejercicios. Ver tabla de modos más abajo.
3
Generar
La IA crea el WOD completo: bloques de calentamiento, trabajo, descanso y vuelta a la calma, con ejercicios de la biblioteca, tiempos y cargas pre-configuradas.
4
Revisar y ajustar
Podés editar cualquier bloque antes de guardar. El WOD generado es tu punto de partida, no el resultado final obligatorio.

⚖️ Modos de Prescripción de Carga

Al generar el WOD, podés elegir cómo la IA maneja los pesos. El modo Inteligente está seleccionado por defecto.

Modo Qué hace Cuándo usarlo
🚫 Sin carga No asigna peso a ningún ejercicio El instructor prefiere configurar todo manualmente
🧠 Inteligente Default Elige automáticamente el patrón y los kg según el tipo de bloque y el ejercicio Uso diario — genera el WOD listo para dictar
🔒 Todo Fija Todos los ejercicios con carga quedan en peso constante (mismo kg en todas las rondas) Circuitos o clases donde no se quiere cambiar el peso
↑ Todo Progresiva Todos los ejercicios con carga quedan en progresión ascendente Clases de fuerza o cuando se quiere escalar la carga

🧠 Cómo funciona el modo Inteligente

El sistema clasifica cada ejercicio automáticamente y elige el patrón de carga más adecuado:

🏋️
Compuesto con barra
Squats, deadlifts, presses, cleans → recibe carga. Patrón según el bloque: series → progresiva, circuit/AMRAP → fija, fortime → descendente.
🔔
Implemento específico
Wall Ball, Kettlebell Swing, mancuernas → recibe carga con kg realistas de su implemento (medicine ball, KB, DB). No kg de barra.
🤸
Bodyweight
Pull-ups, push-ups, burpees, TTB, box jumps → sin carga automáticamente. El sistema detecta estos ejercicios por nombre.

📊 Kg sugeridos por nivel

Los pesos son orientativos y siempre editables. Se calculan según el grupo muscular y el nivel que se seleccionó:

Categoría 🟢 Fácil — Principiante 🟡 Medio — Intermedio 🔴 Difícil — Avanzado
Piernas (squat, deadlift, lunge) 20 / 30 / 40 kg 40 / 60 / 80 kg 60 / 80 / 100 kg
Tren superior empuje (press, bench) 10 / 15 / 20 kg 20 / 30 / 40 kg 30 / 40 / 60 kg
Tren superior tracción (row, lat pulldown) 15 / 20 / 30 kg 25 / 35 / 50 kg 40 / 55 / 70 kg
Olímpicos (clean, snatch, thruster) 15 / 25 / 35 kg 30 / 45 / 60 kg 50 / 65 / 80 kg
Accesorios (curl, extensión, core) 5 / 8 / 10 kg 10 / 15 / 20 kg 15 / 20 / 25 kg
Medicine Ball (wall ball, slam ball) 4 / 6 / 8 kg 6 / 9 / 12 kg 9 / 12 / 15 kg
Kettlebell (swing, TGU, goblet) 8 / 12 / 16 kg 12 / 16 / 24 kg 16 / 24 / 32 kg
Mancuernas (lateral raise, curl, fly) 5 / 8 / 10 kg 10 / 14 / 18 kg 14 / 20 / 26 kg
💡
Los tres valores de cada celda corresponden a los 3 niveles dentro del bloque: 🟢 Fácil / 🟡 Medio / 🔴 Difícil. Todos son editables en el builder una vez generado el WOD.

📚 Prioridad: pesos de la Biblioteca NUEVO

Si un ejercicio tiene pesos sugeridos definidos en la Biblioteca (⚖️ Fácil/Medio/Difícil), el generador IA usa esos valores en vez de la tabla genérica. Esto permite que el instructor tenga control total sobre los kg que aparecen en los WODs generados.

1️⃣
Pesos de la Biblioteca
Si el ejercicio tiene peso definido por el instructor → usa esos kg exactos.
2️⃣
Detección de implemento
Si no tiene peso definido → detecta el implemento (KB, medicine ball, DB) y usa sus rangos.
3️⃣
Tabla por grupo muscular
Como último recurso → usa la tabla heurística según el grupo muscular y nivel seleccionado.
ℹ️
El generador IA usa ejercicios de la biblioteca del gimnasio. Si tu biblioteca tiene pocos ejercicios, el WOD generado puede repetirse. Agregá más ejercicios en Entrenamiento → Biblioteca de Ejercicios.

Gestión del Gimnasio

Grilla semanal Gimnasio+

Vista completa del horario del gimnasio, organizado por día, hora y sala. Los alumnos pueden reservar directamente desde la app.

🗓️
Vista semanal
Visualizá todas las clases de la semana organizadas por día y hora. Editá o eliminá clases directamente desde la grilla.
🏛️
Por sala
Filtrá la grilla por sala para ver el horario de cada espacio físico del gimnasio por separado.
👨‍🏫
Instructor asignado
Cada clase tiene un instructor asignado. Si el instructor cambia, actualizá la clase en segundos.
🎯
Cupo máximo
Configurá el cupo máximo por clase. Cuando se llena, no se pueden hacer nuevas reservas automáticamente.
📋
Copiar día completo
¿El martes tiene el mismo horario que el jueves? Copiá todas las clases de un día a uno o varios días destino con un click. El sistema replica horarios, salas, cupos e instructor.
📅
Clases puntuales (una vez)
¿Una clase especial el miércoles que viene, una clínica el primer sábado del mes próximo? Marcá "Solo una vez" al crearla y elegí la fecha. La clase aparece solo ese día — no contamina la grilla semanal.
Suspender clases
Suspendé una clase puntual (por ejemplo, un feriado) sin eliminarla del cronograma permanente. Los alumnos con reserva reciben notificación automática y se les devuelve el crédito.

Clases puntuales vs recurrentes

Al apretar "+ Agregar" en la grilla, el modal pide elegir el tipo:

  • 🔁 Semanal recurrente (por defecto): la clase se repite todas las semanas el mismo día. Aparece en la grilla LUN-DOM. Ideal para tu horario fijo.
  • 📅 Solo una vez: pide una fecha exacta (cualquier día desde hoy en adelante). Aparece en un panel separado "Próximas clases puntuales" abajo de la grilla. Ideal para clínicas, eventos, talleres, profes invitados o cualquier clase de fecha única.

Las dos modalidades comparten todo lo demás (sala, cupo, instructor, tipo de actividad grupal/personalizada) y los alumnos las ven igual en su app — pueden reservar, recibir recordatorios y aparecer en lista de asistencia.

💡
Cuándo NO usar puntual: si la clase se va a repetir más de 2 veces, conviene crearla recurrente y suspender los días que no aplican (usando Suspender clase arriba). Las puntuales son para casos donde repetir la operación de crear sería más laburo que crear una sola vez.

Cómo copiar un día

01
Buscá el ícono de copiar
En la cabecera de cada día que tiene clases aparece un pequeño ícono de clipboard (📋). Hacé click en él.
02
Elegí los días destino
Se abre un modal que muestra el día origen y su cantidad de clases. Marcá con checkboxes los días a los que querés copiar. Si un día ya tiene clases, te lo avisa.
03
Elegí el modo de copiado
Si activás "Reemplazar clases existentes", las clases del día destino se borran y se reemplazan por las del origen. Si no, las nuevas se suman a las existentes (y se omiten las que generen conflicto de horario).
💡
Tip: Podés copiar un día a múltiples destinos a la vez. Por ejemplo, copiá el Lunes al Miércoles y Viernes en una sola operación. Ideal para armar la semana rápidamente.

Panel del Instructor

Cartelera de sala Gimnasio+

Pantalla pública del horario semanal del gym. Puede proyectarse en la TV de la recepción o sala de espera, visible sin iniciar sesión mediante el link del gym.

📋
Horario semanal público
Muestra todas las clases de la semana con horario, sala, instructor y cupo disponible. Se actualiza automáticamente cuando el admin edita la grilla.
🔗
Link público por gym
Cada gimnasio tiene su URL de cartelera única. No requiere login. Ideal para proyectar en una TV de recepción o compartir por WhatsApp con los alumnos.
🔄
Actualización automática
La cartelera se refresca sola. No es necesario recargar la página ni intervenir: los cambios de horario aparecen en tiempo real.

Gestión del Gimnasio

Alumnos y membresías Gimnasio+

CRM completo integrado al sistema de clases. Gestioná membresías, pagos y asistencia sin salir del panel.

👤
Ficha del alumno con semáforo del mostrador
Las tres preguntas del mostrador con el alumno enfrente —¿debe? ¿puede entrar? ¿cuándo vence?— tienen respuesta directa. La ficha (Ver en Alumnos) abre con foto, etiquetas (VIP, congelada, convenio, baja) y los botones para cobrar, renovar y editar. Debajo, el semáforo: Pago, Acceso (si no entra, con el motivo; misma regla que el molinete), Vence, Apto médico y Última visita. Avisa si la cuota tiene un link de MercadoPago vivo, para no cobrarla dos veces. Cinco solapas: Membresías, Asistencia, Datos, Salud y Entrenamiento.
💳
Membresías y créditos
Asignale un plan de membresía a cada alumno: clases por mes, créditos disponibles y fecha de vencimiento.
🎟️
Pase por día
Un botón 🎟️ Pase por hoy en la ficha vende un pase que vale solo ese día. Se configura eligiendo qué plan es el pase en Configuración → Membresías y facturación → Pase por día (precio, franja horaria, salas y sedes se definen en ese plan). El cobro es el de siempre: caja del turno, factura o recibo, convenios, deuda anterior, y queda en el historial como «Pase por día». No cierra ni reemplaza la membresía vigente —convive con ella— y no se vende dos veces el mismo día («Pase de hoy ✓»). En la puerta (molinete, PIN y QR) el pase de hoy tiene prioridad sobre las demás membresías: se aplican sus condiciones y no la franja ni el tope semanal de la mensual; a medio pagar no abre, y el de ayer tampoco. Apto médico, sede y tope diario del gimnasio siguen aplicando.
👨‍👩‍👧
Grupos familiares
Un titular paga una cuota por toda la familia, con precio por integrante, o el grupo es solo un vínculo y cada uno paga lo suyo. Se activa en Configuración y se arma desde la ficha del alumno (el mostrador, con el permiso especial). Con cuota consolidada impaga, todo el grupo queda sin acceso en molinete, QR y reservas. En la app, el titular ve el grupo y la cuota vigente y la paga por MercadoPago; los integrantes no ven cápitas ni el estado de los demás, y no pueden pagar una cuota individual mientras la familiar los cubre.
📉
Clientes perdidos (del mostrador)
Pantalla propia en el menú, también para el staff: quiénes dejaron de venir, con filtros por días sin asistencia, sede y búsqueda, y el botón 💬 que abre WhatsApp con el número ya normalizado con código de país. El dueño la ve resumida en Reportes con enlace a la planilla completa. La exportación a CSV es solo del administrador, y el módulo se puede quitar a un perfil desde Seguridad.
🎁
Bonificación de bienvenida (las primeras N cuotas)
"La cuota sale con descuento los primeros dos meses y después vuelve al precio de lista." En cada plan (Planes de membresía → Bonificación de bienvenida 🎁) definís el porcentaje (100 = cuotas gratis) y cuántas cuotas aplica (1 a 12). Es solo para el recién anotado: se precarga en el alta y, si son varias cuotas, en las renovaciones que siguen. El mostrador puede destildar el 🎁 al cobrar (un alumno importado que no es nuevo, por ejemplo) y queda eximido en todas las vías.
🎯
Membresías concurrentes
Un alumno puede tener más de un plan activo al mismo tiempo si son de tipos distintos: por ejemplo, una membresía grupal y una de clases personalizadas simultáneamente.
🗂️
Tipos de plan por actividad
Cada plan de membresía tiene un tipo: Grupal, Personalizada o Ambas actividades. El tipo controla a qué turnos de la grilla puede acceder el alumno.
⚠️
Alertas automáticas
El sistema alerta de vencimientos próximos, membresías vencidas y alumnos sin renovar para que ninguno se pierda.
📊
Asistencia histórica
Registro completo de clases asistidas, ausentes, cancelaciones y reservas por alumno.
🕓
Último login real
La columna Último login muestra la última vez que el alumno abrió la app (se actualiza cada vez que el alumno usa la app). Antes mostraba la fecha del primer ingreso en ese dispositivo, que podía ser muy vieja. Los alumnos sin actividad aparecen como "Nunca ingresó".
🔀
Fusión de fichas duplicadas
Con inscripciones que llegan desde redes o el link público, el mismo alumno termina con dos fichas. En Alumnos → 🔀 Duplicados el sistema lista los pares que parecen la misma persona, muestra qué se va a mover y fusiona con confirmación. La historia (reservas, membresías, pagos, asistencias) pasa a la ficha que queda; la otra se da de baja y los lectores biométricos se enteran solos. El administrador siempre puede; el mostrador solo si se le otorga el permiso en Seguridad → Permisos especiales.
🔁
Cambio de plan con diferencia automática
Un alumno que a mitad de mes quiere pasar a otro plan ya no obliga a borrar la membresía y cargarla de nuevo. En su perfil, 🔁 Cambiar de plan prorratea por los días que quedan: compara lo que le queda sin usar del plan actual contra lo que vale el nuevo por esos mismos días, y muestra el detalle antes de confirmar. La caja no se toca: el cobro anterior queda donde estaba, con su turno y su comprobante. Si sube de plan, la diferencia queda como saldo a cobrar —el alumno sigue entrando mientras tanto— y se cobra en el momento o más tarde, con su propio comprobante. Si baja, le queda saldo a favor y la próxima cuota sale con el descuento ya aplicado. Todo queda en el historial y en la auditoría; el mostrador lo hace solo si se le otorga el permiso especial.
🎫
Editar pases restantes
En el modal Editar membresía, si el plan tiene un límite de pases, aparece un campo Pases restantes. Ideal para traspasos desde otro sistema: un alumno que entra con 90 de 100 pases consumidos. El hint muestra el total del plan y los consumidos actuales para contexto.
Baja del alumno
Desactivar da de baja al alumno conservando toda su historia: reservas, pagos y asistencias. Sus reservas futuras se cancelan solas, liberan el cupo y devuelven el crédito. No hay borrado definitivo de alumnos: la ficha queda vinculada al lector biométrico y borrarla desincronizaría el molinete. Una ficha dada de baja se puede reactivar después.
💡
Membresías concurrentes: si un alumno tiene plan Grupal + plan Personalizado activos, el sistema los suma y le habilita acceso ambas actividades automáticamente. No se permite asignar dos planes del mismo tipo de forma simultánea, ni asignar un plan "Ambas" junto a cualquier otro.
⚠️
Desactivar, no borrar: Desactivar (❌) oculta al alumno sin perder su historia — reservas, pagos y asistencias se preservan, y sus reservas futuras se cancelan solas, liberando el cupo y devolviendo el crédito. No existe el borrado definitivo de alumnos. Los planes de membresía sí pueden borrarse, pero solo mientras ninguna membresía (activa o histórica) los use; con historia, se desactivan.

Gestión del Gimnasio

Salud y apto médico Gimnasio+

Ficha de salud completa por alumno: certificado médico con control de vigencia automático, registro de lesiones, datos físicos (peso, altura, IMC) y objetivos de entrenamiento.

🩺
Apto médico con vigencia
Subí el certificado del alumno (PDF, JPG, PNG — hasta 8 MB). El sistema registra la fecha de emisión y calcula automáticamente la vigencia de 1 año. Alerta visual cuando está por vencer o vencido.
🤕
Registro de lesiones
Anotá lesiones activas del alumno con descripción y fecha. Al recuperarse, marcala como resuelta. El historial completo queda guardado en la ficha.
📏
Ficha física
Registrá peso, altura e IMC de cada alumno. El sistema calcula el IMC automáticamente. También podés ingresar objetivos de entrenamiento y notas físicas del instructor.
⚠️
Alerta en lista de alumnos
La columna Alertas en la lista de alumnos muestra badges cuando alguien no tiene apto médico válido, facilitando el control de cumplimiento.
🚫
Bloquear check-in sin apto vigente
Activá esta opción en ⚙️ Configuración para que los alumnos sin certificado médico vigente (o vencido) no puedan hacer check-in por QR. El alumno ve un mensaje en la app indicándole que necesita presentar su certificado. Ideal para gimnasios que requieren apto obligatorio por normativa.
ℹ️
Toggle en Configuración: Tanto la visibilidad del módulo de Apto Físico como el bloqueo de check-in se controlan desde ⚙️ Configuración del Sistema. Al desactivar el módulo, los badges 🩺 y la ficha de salud desaparecen de todo el sistema.

Gestión del Gimnasio

Suspensión de membresías Gimnasio+

Congelá temporalmente la membresía de un alumno (vacaciones, lesión, pausa voluntaria) sin perder los días restantes. El período de freeze no se descuenta del plan.

🧊
Freeze con fechas
Definí la fecha de inicio y fin del freeze, y el motivo. La membresía queda suspendida durante ese período. El alumno no puede reservar mientras está congelado.
▶️
Descongelar anticipado
Si el alumno vuelve antes de lo esperado, podés descongelar la membresía en cualquier momento. El vencimiento se recalcula automáticamente.
📋
Historial de suspensiones
Cada membresía registra el historial completo de freezes: fechas, duración y motivo para transparencia total en la gestión.

Fidelización y retención

Fidelidad — tarjeta de sellos Gimnasio+

La tarjeta de sellos de papel, pero digital y automática. Cada mes consecutivo que el alumno paga gana un sello; a los hitos que definís, gana el premio que vos elegís. Se activa con un toggle y no requiere ninguna planilla. El premio lo decidís vos: el sistema lo informa.

🏅
Sellos automáticos
Cada mes pagado estampa un sello a partir del propio pago (mostrador, transferencia o débito de MercadoPago). No hay que sellar ni anotar nada.
🎯
Hitos y premios que vos definís
Configurá los hitos (ej: 4, 8 y 12 meses) y qué gana en cada uno, con su nombre e ícono. GymFlow detecta el logro e informa; el premio lo elegís y lo entregás vos.
🔁
Racha con red de seguridad
Si deja de pagar, la tarjeta vuelve a cero. Pero hay período de gracia (pagar unos días tarde no borra sellos) y el congelamiento no corta la racha.
Reconocé la antigüedad
Tus alumnos de años no arrancan de cero: podés reconocer su historial de pagos y mostrarles los sellos que ya se ganaron. O que todos empiecen parejo.
📱
El alumno la ve y le llega
Tarjeta de sellos en la app y el portal web, con "te falta N para tu premio", premios a retirar y una notificación push en el momento en que gana uno.
📊
Panel del dueño
Premios ganados, entregados y pendientes; quiénes llegaron a cada hito; ranking de tus alumnos más constantes; y entrega con un clic desde el panel o la ficha.

Gestión del Gimnasio

Check-in por QR Gimnasio+

El alumno llega al gym, escanea el QR y listo. El sistema registra la asistencia y descuenta la clase automáticamente.

1
Imprimí o mostrá el QR del gym
En Configuración → QR del gimnasio encontrás el código QR único de tu sede. Imprimilo y pegalo en la entrada, o mostralo en un tablet.
2
El alumno escanea con la app
Con la cámara de la app GymFlow, el alumno escanea el QR al llegar. El sistema detecta si tiene clase reservada para esa fecha y hora.
3
Registro automático
La asistencia queda registrada, el crédito de la clase se descuenta y el alumno aparece como presente en la vista del instructor.
💡
Sin celular, lo anota el mostrador: en modo Walk-in, el botón ✅ por fila en Alumnos y «✅ Registrar ingreso» en la pestaña Asistencia de la ficha hacen lo mismo que el escaneo: registran la asistencia, descuentan el crédito de la membresía que corresponde (la que vence antes y tiene cupo) y respetan la ventana anti doble ingreso. Queda auditado con el usuario que lo anotó. Y si tu gimnasio entra por QR sin molinete, el toggle Configuración → Control de acceso → «Mostrar los ingresos por QR en la Cartelera» hace que esos ingresos (y los del mostrador, con ✍️) se vean en la pantalla de accesos.
⚠️
El check-in solo funciona si el alumno tiene la app GymFlow instalada y vinculada a tu gimnasio. El QR de cada sede es único e intransferible.

Gestión del Gimnasio

Notificaciones Push Gimnasio+

Comunicación directa con todos tus alumnos. Notificaciones manuales y automáticas, sin WhatsApp, sin grupos, sin intermediarios.

Notificaciones manuales

📢
Broadcast al gimnasio
Enviá un aviso a todos los alumnos del gym a la vez. Llega directo como notificación al celular, aunque la app esté cerrada. Título y cuerpo editables con preview en tiempo real.
📋
Historial con destinatario
El panel muestra cada notificación enviada con su tipo (badge), quién la recibió —alumno individual o �� Todos los socios— y cuántos dispositivos la recibieron con éxito.

Notificaciones automáticas

El servidor GymFlow envía alertas automáticas según el estado de membresía y asistencia de cada alumno. No requieren configuración adicional.

Tipo Cuándo se envía Destinatario
🎉 Bienvenida Primeras 24 hs desde el alta Nuevo alumno
⏰ Recordatorio de clase 25–35 min antes de una clase reservada Alumno con reserva
📅 Recordatorio de vencimiento 7 días antes del vencimiento Alumno próximo a vencer
🔔 Vence pronto 3 días o menos al vencimiento Alumno por vencer
⚠️ Membresía vencida Vencimiento superado (hasta 30 días) Alumno sin renovar
😴 Re-engagement Más de 14 días sin concurrir con membresía activa Alumno inactivo
🎂 Cumpleaños El día del cumpleaños del alumno Alumno con fecha de nacimiento cargada
🎂
Saludo de cumpleaños personalizable: En ⚙️ Configuración podés editar el título y mensaje del push de cumpleaños. Usá los placeholders {nombre} (primer nombre del alumno) y {gym} (nombre del gimnasio) para personalizarlo. Se envía una sola vez por año.
⚙️
Todos los push automáticos son configurables. Desde ⚙️ Configuración del Sistema podés activar o desactivar individualmente cada tipo de notificación: recordatorio de clase, aviso de vencimiento de membresía y saludo de cumpleaños.
🔍
Panel de historial: en Notificaciones Push del panel admin podés ver cada push con su badge de categoría, quién lo recibió y cuántos dispositivos lo recibieron correctamente.

Comunicación con el alumno

Documentos PDF Gimnasio+

Subí PDFs desde el panel del gym y que el alumno los descargue desde su app. Para reglamentos, protocolos, rutinas, planes de nutrición, aptos firmados o cualquier archivo que tu gym necesite compartir de forma persistente — sin pasar por WhatsApp y sin que se pierdan en el chat.

Dos tipos de documentos

📋
Generales del gym
Visibles para todos los alumnos del gimnasio. Útil para reglamento, política de cancelación, tarifas vigentes, protocolo COVID, calendario de feriados. Se suben desde el menú Documentos del panel.
👤
Personales del alumno
Visibles solo para ese alumno. Ideal para rutina del mes, plan de nutrición, apto físico firmado, certificados de cursos. Se suben desde la ficha de cada alumno.

Lo que ve el alumno

En la app, dentro de Mi Cuenta → Mis documentos, aparece una lista unificada con los generales del gym + los personales del alumno. Cada item muestra título, tamaño y fecha de subida. Al tocar un archivo, se abre con el visor de PDF nativo del dispositivo — se puede leer, guardar, imprimir o reenviar.

Push automática al subir un personal

Cuando subís un PDF personal a un alumno, el sistema dispara automáticamente una notificación push al celular del alumno — aunque la app esté cerrada. Título: 📄 Documento personal nuevo, cuerpo: el nombre del archivo.

Los documentos generales NO disparan push (para no saturar a 300 alumnos cada vez que actualizás el reglamento). Si necesitás avisar de un general específico, usá Notificaciones Push manuales con el título y texto que prefieras.

Validaciones técnicas

ValidaciónDetalle
Tipo de archivoSolo PDF. Se valida el contenido real del archivo, no solo la extensión.
Tamaño máximo20 MB por archivo.
Módulo habilitadoSi Documentos PDF está OFF en Configuración, la subida se rechaza.
DestinatarioSi subís un personal, el alumno debe pertenecer a tu gimnasio.
AlmacenamientoCada archivo se guarda con un nombre aleatorio irrepetible y aislado por gimnasio — imposible adivinar la dirección de un documento ajeno.
AuditoríaCada subida queda registrada en la auditoría con el usuario que la subió, el alcance (general/personal) y el tamaño.

Configuración del módulo

Dos toggles en Configuración del Sistema:

  • Documentos PDF: enciende/apaga el módulo entero. Apagado: no aparece el menú Documentos en el panel, ni la pestaña "Mis documentos" en la app del alumno.
  • Notificar al alumno al subirle un PDF: controla si llega push cuando le subís un personal. Default ON. Solo se habilita si el toggle padre está ON.
💡
Por qué desacoplarlo del chat: el chat sirve para diálogo, los documentos para referencia. Buscar "mi rutina más reciente" en una lista de archivos toma segundos; buscarla en 800 mensajes de WhatsApp es horror. Además, el alumno no puede borrar accidentalmente un documento subido por el gym — el módulo es solo de lectura del lado del alumno.

Gestión del Gimnasio

Chat en tiempo real Gimnasio+

Canal directo entre alumnos (desde la app) y el staff (desde el panel web). Mensajes instantáneos vía WebSocket, con notificaciones push cuando la app está cerrada y alertas de browser para el staff.

📱
Vista del alumno (app)
El alumno escribe desde la pestaña Chat en la app móvil. Los mensajes llegan instantáneamente al panel del staff. El historial completo se carga al abrir el chat.
🖥️
Vista del staff (panel web)
En Chat con Alumnos del panel, el staff ve todas las conversaciones abiertas, con el número de mensajes sin leer por sala. Responde en tiempo real desde el navegador.
🔔
Notificaciones push al alumno
Cuando el staff responde, el alumno recibe una notificación push aunque tenga la app cerrada. Al tocarla, se abre directamente el chat — sin pasar por la pantalla de inicio.
💡
Alertas de browser para el staff
Si el staff tiene el panel abierto en otra pestaña, aparece una notificación del navegador al recibir un mensaje nuevo. El globo del nav se actualiza en tiempo real y desaparece sólo al abrir el chat.
1
Alumno escribe desde la app
Pestaña “Chat” en el menú inferior de la app → escribir mensaje → enviar. El mensaje llega instantáneamente al panel del staff.
2
Staff recibe notificación en el nav
Un globo verde con el conteo de mensajes sin leer aparece en el ícono de Chat del menú de navegación en todas las páginas del panel.
3
Staff abre la sala y responde
En Chat con Alumnos, hace click sobre la conversación del alumno, carga el historial y escribe la respuesta. El globo desaparece al entrar a la sala.
4
Alumno recibe la respuesta
Llega una notificación push al celular. Al tocarla, la app abre el chat directamente. Si ya tiene el chat abierto, el mensaje aparece instantáneamente.
ℹ️
Reconexion automática: Si el alumno pierde la señal, la app muestra un aviso de error de conexión. Al recuperar WiFi o datos, el socket se reconecta automáticamente sin intervención del usuario.
💡
Tip para el staff: Para recibir alertas del browser cuando estás en otra pestaña, aceptá los permisos de notificación la primera vez que te lo pida el navegador. La alerta se cierra automáticamente a los 8 segundos.

Gestión del Gimnasio

Por cobrar Gimnasio+

Todo lo que el gimnasio tiene por cobrar, en una pantalla. Las cuotas con saldo van partidas en dos: las vencidas sin pagar (mora, hay que reclamarlas) y las vigentes sin cobrar (la cobranza del período: la persona se anotó y todavía no pagó). No es lo mismo un moroso que una alta de esta semana, y la pantalla no los mezcla. Debajo, la cuenta corriente del shop (el fiado de alumnos y equipo) y las diferencias de plan sin cobrar, que también suman en el total.

📛
Mora y vigentes, separadas
Cada bloque muestra nombre, plan, saldo y vencimiento: en la mora, hace cuántos días venció; en las vigentes, cuántos faltan. Arriba, el total de cada balde por separado.
Acción directa
Desde la lista podés abrir el perfil del alumno, asignarle una nueva membresía o enviarle una notificación de recordatorio sin salir de la pantalla.
📝
Seguimiento de cobranza
Cada cuota sin pagar tiene su seguimiento: marcás el estado (sin contactar, ya hablamos, prometió pagar con fecha, no responde), anotás cada contacto y cuándo volver a insistir, con el WhatsApp a un clic. Filtros para ver a quién falta contactar, a quién le toca hoy y quién prometió y no cumplió. Se cierra solo cuando la persona paga.
🔔
Alertas en la lista de alumnos
Los alumnos en deuda aparecen con un badge 💳 Con deuda visible en la lista general de alumnos, para identificarlos de un vistazo.
🧾
Cobrar la deuda anterior junto con la cuota nueva
Cuando un alumno con deuda se anota o renueva, el modal de alta lista la deuda anterior itemizada —cuotas viejas, diferencias de plan y cuenta corriente del shop— y un «Total a cobrar hoy». Modo por gimnasio en Configuración → Membresías y facturación → Deuda anterior al inscribir o renovar: No hacer nada, Sugerir cobrarla o Exigir saldarla, con antigüedad máxima en meses. Todo se cobra en una sola operación y con un solo comprobante; la cuota nueva no se infla: cada deuda se salda contra su propia fila. En modo exigir, el administrador (o un staff con el permiso «dejar deuda pendiente») puede postergarla indicando el motivo, que queda en auditoría.

Gestión del Gimnasio

Calificaciones de clases Gimnasio+

Los alumnos califican la clase desde la app después de asistir. El admin y los instructores ven el puntaje y los comentarios para medir la satisfacción y mejorar.

Rating post-clase
Luego de asistir, el alumno puede dejar una calificación de 1 a 5 estrellas y un comentario opcional. El rating queda asociado a la clase y al instructor.
📊
Dashboard de calificaciones
Vista consolidada de todas las calificaciones recibidas, con promedio por instructor, por tipo de clase y por período. Detectá qué clases generan mayor satisfacción.
💬
Comentarios anónimos
Los comentarios se muestran de forma anónima para el instructor. Solo el admin puede ver qué alumno dejó cada calificación.

Gestión del Gimnasio

Equipo de trabajo Gimnasio+

Alta, baja y gestión de instructores, staff y administradores. Cada usuario tiene su propio acceso con los permisos de su rol.

👨‍🏫
Instructores
Acceso al constructor de WODs, panel en vivo, biblioteca y scheduler. Comparten la biblioteca de sesiones con todos los instructores del gym.
🧑‍💼
Staff
Acceso al CRM de alumnos, chat, check-in y caja. Ideal para el personal de recepción que gestiona alumnos y cobros pero no dirige clases.
🔑
Administradores
Acceso total: ven todo lo de instructores y staff más la gestión del equipo, sedes, reportes, calificaciones, medios de pago y configuración del gym.
🔒
Credenciales independientes
Cada miembro del equipo tiene su propio usuario y contraseña. Al desvincularlo del gym, pierde el acceso automáticamente.
👁
Qué ve cada perfil
Tildaste un permiso extra para los profes, lo probaste con tu usuario de administrador y no viste ningún cambio: los permisos extra no aplican al admin. En Seguridad → 👁 Qué ve cada perfil (solo administradores) elegís un perfil o un empleado y el sistema muestra el menú que va a ver y, pantalla por pantalla, un veredicto: Entra, Entra a medias, No entra o No se sabe. Es una simulación: no crea sesión ni entra como otro usuario, y cada consulta queda en la auditoría.

Gestión del Gimnasio

Personal / RRHH Gimnasio+

Control horario de tu equipo: padrón de empleados, fichadas de entrada y salida (a mano o con el mismo molinete que identifica a tus alumnos), horario esperado y reporte de horas con llegadas tarde, ausencias y horas extra. Lo maneja el administrador; la vista del staff se configura en Seguridad y los sueldos son solo del admin.

👥
Padrón de personal
Puesto, DNI, teléfono, sede, fecha de ingreso y modalidad de pago. A diferencia de Equipo, admite empleados sin usuario del sistema (limpieza, mantenimiento, seguridad). Se crea solo a partir de tu equipo actual.
🕒
Fichada manual
Botón de marcar entrada y salida por empleado desde el panel. El sistema calcula las horas. Cualquier fichada se puede corregir después y la corrección queda auditada (quién y cuándo). Para cargar de una vez las horas de la quincena está la vista 🗓️ Planilla de quincena (empleados × días), que se guarda toda o nada; + Agregar fichada carga una fichada suelta de otro día, y 🖨️ Comprobantes imprime el comprobante de horas trabajadas por empleado, para que vea lo que se le liquida.
📟
Fichada por molinete
Opt-in: el mismo lector facial, huella o tarjeta que usan tus alumnos abre y cierra la jornada del empleado. Requiere que esté vinculado a un usuario del sistema y enrolado en el lector. No demora ni condiciona la apertura de la puerta.
🔁
Modos de conteo
El personal entra y sale varias veces al día. Presencia (del primer paso al último, ideal para molinetes de solo ingreso), Entrada/salida (cada paso alterna y descuenta las salidas) o Lectores dedicados (uno abre, otro cierra).
🗓️
Horario esperado
Turno semanal por empleado, incluidos los que cruzan la medianoche. Se compara con lo fichado para marcar llegadas tarde (con tolerancia configurable), ausencias y horas extra.
📊
Reporte de horas
Por período: turnos, horas trabajadas vs esperadas, diferencia, tardanzas, ausencias y costo estimado. Un turno que no terminó no cuenta como falta, y no se le reclaman días previos al alta ni posteriores a la baja.

Gestión del Gimnasio

Caja y reportes Gimnasio+

Control completo de ingresos y egresos por turno de caja, con cierre de arqueo y reporte consolidado por sede y cajero exportable como PDF.

🔓
Turnos de caja
Cada cajero abre un turno con el efectivo inicial. Mientras el turno está activo puede registrar ingresos y egresos. Al cierre, el sistema hace el arqueo comparando el efectivo esperado vs el real.
💳
Medios de pago
Configurá los métodos que acepta el gym (Efectivo, Tarjeta, Transferencia, MercadoPago, etc.). Cada método tiene un tipo (efectivo, transferencia, tarjeta, digital) que define cómo se comporta en el arqueo y qué extras pide al cobrar. Efectivo y Mercado Pago quedan bloqueados: no se pueden renombrar ni eliminar para que el arqueo y el webhook de MP sigan funcionando sin sorpresas.
🏦
Cuentas bancarias del gym
Cargá una o más cuentas bancarias con alias, CBU/CVU, titular y banco (por ej. Santander, Mercado Pago, Uala). Marcá una como predeterminada. Al cobrar por Transferencia, el sistema muestra un selector para elegir a qué cuenta ingresó la plata — así conciliás fácil con tu extracto y sabés qué titular recibió cada operación.
🔗
Registro automático al cobrar
Al asignar una membresía a un alumno con turno abierto, el pago se registra automáticamente en la caja con el monto, el medio de pago y —si corresponde— la cuenta bancaria destino elegida.
🧾
Recibo de pago (no fiscal)
Para que quien paga en efectivo o por transferencia no se vaya sin nada en la mano. Se prende en Configuración → Membresías y facturación → Recibo de pago (no fiscal); arranca apagado y no depende de AFIP. Tras cobrar una membresía o una venta del shop que no se factura, ofrece imprimirlo en la comandera (80 o 58 mm) o mandarlo por email al alumno. Lleva impreso "DOCUMENTO NO VÁLIDO COMO FACTURA". Si el cobro se facturó, no se ofrece: un solo papel por cobro.
🔄
Renovación automática sin cobro previo
Toggle por gym en Configuración → Membresías y facturación. Cuando está activo, un proceso automático de GymFlow corre 1 vez por día y renueva las membresías vencidas de tus alumnos activos aunque no haya entrado el pago: la nueva queda impaga y en estado pendiente, así el alumno nunca queda sin entrenar. El dueño cobra por afuera (efectivo/ transferencia) y marca el pago cuando lo cobra. Respeta bajas, cuotas sin pagar, congelamientos y no duplica si el alumno ya se renovó por otro flujo.
📊
Reporte consolidado
Vista de todos los movimientos agrupados por Sede → Cajero, con subtotales por cajero, totales por sede y gran total del gym. Filtrable por período, sede, cajero y tipo.
🏷️
Socios por plan y tasa de renovación
En Reportes → Alumnos, la tarjeta Socios por plan muestra por cada plan cuántos socios, cuántas membresías, cuánto se cobró y cuánto se adeuda en el período: por ejemplo, para liquidarle al profe un porcentaje de su actividad. Al lado, la tasa de renovación: de las membresías que vencieron en el período, qué porcentaje siguió con el mismo plan dentro de los 15 días. Los vencimientos de los últimos 15 días todavía no se juzgan, así el mes en curso no se hunde solo.
📍
Una caja por sede, todas a la vez
En gyms multi-sede cada turno nace con una sede obligatoria, así ventas, cobros y movimientos quedan en la sucursal correcta. El mismo operador puede tener una caja abierta por sede al mismo tiempo y elige con el selector de sede en cuál está operando: los cobros van a la caja de esa sede. Abrir dos en la misma sede sigue bloqueado. La 👁 Vista global (solo administradores) es de consulta: sin caja operable, con el neto de cada sede. En gyms de una sola sede nada cambia.
🔓
Editar cajas cerradas (solo dueño)
Por defecto un arqueo cerrado queda congelado: no se anula nada de un turno que ya cerró. Si lo necesitás, en Configuración → Operación diaria → Permitir editar cajas cerradas el administrador puede anular movimientos de turnos cerrados: el arqueo de ese cierre se recalcula (el efectivo contado no cambia) y cada anulación queda en la auditoría, igual que el cambio del propio interruptor. El mostrador nunca puede, ni con permisos especiales.
1
Configurar medios de pago
En Caja → Medios de pago, revisá los métodos que vienen preconfigurados (Efectivo, Transferencia, Débito, Crédito, QR / Mercado Pago). Podés agregar los que necesites y asignarles un tipo. Los métodos Efectivo y Mercado Pago están bloqueados por diseño.
2
(Opcional) Cargar cuentas bancarias
Si aceptás transferencias, cargá tus cuentas en Caja → Cuentas bancarias: alias, CBU/CVU, titular, banco. Marcá una como Predeterminada. Cuando cobres por transferencia, vas a poder elegir a qué cuenta ingresó.
3
Abrir turno
Clic en Abrir turno, elegí la sede (si tu gym es multi-sede) e ingresá el efectivo inicial disponible (puede ser $0). Los botones de Ingreso y Egreso se habilitan automáticamente.
4
Operar: ingresos y egresos
Los pagos de membresías se registran solos. Si cobrás por transferencia, elegí a qué cuenta ingresó del selector que aparece. También podés agregar ingresos o egresos manuales (proveedores, gastos, etc.).
La fecha del movimiento: el movimiento manual tiene un campo Fecha y, en Gastos → Registrar pago, hay un campo Fecha del pago (por defecto hoy). Sirve para imputar un cobro o un gasto al mes que corresponde —los sueldos de la segunda quincena cargados el día 1 del mes siguiente— sin fecha futura ni más de 90 días hacia atrás. Reportes imputa por esa fecha; el arqueo no se mueve: el movimiento retrofechado sigue pegando en el turno abierto, porque la plata sale del cajón de hoy y el arqueo es la constancia de lo que se contó ese día. En Gastos también se puede anular un pago suelto sin anular el gasto: la obligación vuelve a pendiente o parcial y el pago sale del total pagado, respetando la política de turnos cerrados de la caja.
5
Cerrar turno y arcar
Clic en Cerrar turno / Arqueo. Ingresá el efectivo físico contado. La diferencia con el esperado queda registrada en el historial. El sistema separa efectivo del resto (transferencias, tarjetas y MP se concilian aparte).
6
Exportar reporte como PDF
Abrí Reporte de Caja en el menú, filtrá el período y la sede que necesitás, y presioná 🖨️ Imprimir / PDF (o Ctrl+P).
💡
El reporte agrupa por Sede → Cajero. Ideal para el dueño que quiere ver qué cajero movió qué en cada sucursal, con totalizadores y en un solo PDF.

NUEVO

Shop — Stock & Ventas Gimnasio+

Punto de venta integrado con gestión de stock por lotes FIFO (el que entra primero se vende primero). Cada venta genera un movimiento de caja automáticamente.

📦
Catálogo de productos
Creá productos con nombre, categoría, código de barras y precio de venta. Activá o desactivá productos según necesites.
📥
Ingresos de stock (Lotes FIFO)
Cada ingreso de mercadería crea un lote con cantidad y precio de costo. Los lotes se consumen en orden cronológico al vender — las unidades más viejas salen primero.
🛒
Punto de venta (POS)
Grilla visual para seleccionar productos, elegir cantidad y medio de pago, y registrar la venta con un clic. Requiere turno de caja abierto.
📊
Ganancia por venta
El sistema calcula automáticamente el costo FIFO y la ganancia de cada venta. Ejemplo: si compraste 10 a $800 y vendés a $1.500, ganás $700 por unidad.
💰
Integración con Caja
Cada venta genera un ingreso en la caja del turno activo. Aparece en el arqueo, en los reportes y en la auditoría.
📒
Cuenta corriente (fiado)
Alumnos y staff pueden consumir sin pagar en el momento: el consumo queda como deuda y se salda después, total o parcial. El cargo no entra a la caja (es deuda); el pago sí entra, al saldar, en la caja del turno. Configurable: factura al consumir o al saldar, y tope de crédito por persona (libre o limitado). El saldo pendiente aparece en Por cobrar.
👤
Venta a nombre del alumno
El buscador «👤 ¿Quién compra? (opcional)» está siempre en el punto de venta, con cualquier medio de pago. Con el alumno elegido, la venta queda en su historial, la factura electrónica sale con su nombre y el comprobante se puede enviar por email a la casilla de su ficha sin tipearla (si no tiene, se pide en el momento). A cuenta corriente el comprador sigue siendo obligatorio.
⚠️
Alertas de stock bajo
Definí un stock mínimo por producto. El sistema alerta visualmente cuando un producto está por debajo del umbral.
🏢
Inventario separado por sede
En gyms multi-sede cada lote pertenece a una sucursal física. El FIFO de venta consume lotes de la sede del turno; el stock de otras sedes no se toca. Visibilidad de cuánto hay en cada sucursal desde el detalle del producto.
🔀
Transferir stock entre sedes
Mové unidades físicas de sede A a sede B (o desde el "pool sin sede" si tenés stock histórico). El sistema parte los lotes si hace falta y preserva el costo de compra y la antigüedad original — el FIFO histórico no se rompe.

Paso a paso

1
Crear un producto
Ir a Shop → Productos → + Nuevo producto. Ingresá nombre, categoría, precio de venta y stock mínimo.
2
Ingresar stock
Ir a Shop → Ingresos. Seleccioná el producto, ingresá la cantidad y el costo unitario de compra. Cada ingreso crea un lote independiente.
3
Vender
Ir a Shop → Vender. Seleccioná el producto de la grilla, elegí la cantidad y el medio de pago, y hacé clic en Vender. Necesitás un turno de caja abierto.
💡
Si comprás 10 aguas a $800 y después 5 más a $1.000, las primeras 10 ventas usan el costo de $800. Recién cuando se agotan, las siguientes ventas usan el costo de $1.000. Así funciona FIFO.

Soporte

Tickets de soporte Todos los planes

Sistema de tickets para reportar problemas o consultas al equipo de GymFlow. Cada ticket tiene historial de mensajes en tiempo real.

🎫
Apertura de tickets
Cualquier miembro del equipo (instructor, staff o admin) puede abrir un ticket con título, categoría y descripción del problema directamente desde el panel.
💬
Hilo de mensajes en tiempo real
Cada ticket tiene su propia sala de conversación con el equipo de soporte de GymFlow. Los mensajes se intercambian en tiempo real vía WebSocket.
📊
Estado del ticket
Los tickets tienen estado: Abierto, En proceso y Resuelto. El equipo puede priorizar y hacer seguimiento de cada caso hasta su resolución.
📨
Requerimientos: pedir una función o reportar un error
Distinto de un ticket de soporte: en Requerimientos (menú Sistema, solo el administrador) el dueño pide una función nueva o reporta un error del producto, con capturas de pantalla que se pegan con Ctrl+V o se arrastran. Cada requerimiento tiene su hilo de mensajes con el equipo de GymFlow y un estado visible —Recibido → En desarrollo → Implementado o Descartado—. Cuando hay respuesta o cambio de estado, el dueño recibe un email y un contador en el menú.
📈
Estado del sistema, con histórico: la página pública gymflow.com.ar/estado.php muestra la disponibilidad de cada servicio —plataforma web, sincronización en tiempo real y base de datos— en barras por día, hasta 90 días hacia atrás desde que empezó el monitoreo. Cada servicio se sondea cada 5 minutos contra la dirección pública, lo mismo que ve el usuario. Un día sin mediciones se muestra "Sin datos" y no cuenta ni como caída ni como 100%; nunca se publica "100%" como número: dice "sin incidentes registrados".

Integraciones

Access Bridge Add-on

Servicio local de Windows que conecta lectores biométricos (huella dactilar, tarjeta RFID, reconocimiento facial) con GymFlow para controlar el acceso al molinete en tiempo real — sin intervención humana. Soporta también acceso por PIN/DNI como alternativa a la huella, y se actualiza automáticamente sin intervención del administrador.

👆
Enrolamiento en mostrador
El alumno registra su huella en el reloj del mostrador al momento de inscribirse. El sistema mapea automáticamente esa huella a su perfil en GymFlow.
🚪
Validación en el molinete
Al poner el dedo (o tarjeta/rostro) en el reloj del molinete, el sistema valida la membresía en tiempo real. Si está activa: abre el relay. Si venció o está en deuda: deniega el acceso con señal sonora.
🔢
Acceso por PIN / DNI NUEVO
Si un alumno no tiene la huella registrada o se borró, puede ingresar su PIN (DNI u otro número) desde el teclado del molinete. El PIN se configura desde el perfil del alumno en el panel web → Alumnos. Queda registrado como asistencia igual que la huella.
📟
Teclado web para tablet (el alumno tipea su DNI)
Para el gimnasio que no quiere una PC por puerta. En Access Bridge → Teclado web para tablet — ingreso por DNI → + Nueva tablet cargás etiqueta, molinete, sede y la casilla Abre el molinete; el panel entrega un enlace y un QR para la tablet, sin login. El alumno tipea su DNI y el sistema valida con la misma regla de cuota que el teclado físico. Sin Abre el molinete la tablet es solo consulta: registra el ingreso sin disparar nada.
🖥️
Posnet Clover del mostrador NUEVO
El mismo Bridge conecta el posnet Clover del mostrador: la pestaña 🖥️ Posnet Clover enlaza el equipo por la red (código de enlace en grande la primera vez) y desde ahí GymFlow cobra cuotas, shop y cuenta corriente con tarjeta desde cualquier PC del gym. Ver Posnet Clover.
📋
Check-in automático
Cada acceso exitoso queda registrado como asistencia en GymFlow, igual que el check-in por QR. Sin pasos extra para el staff.
🖼️
Aviso con la foto de quien ingresa
Para chequear que quien pasó sea el titular del pase. Se prende en Configuración → Control de acceso → Avisar con la foto de quien ingresa (apagado por defecto). Cada vez que alguien pasa por el molinete aparece en la esquina la foto y el nombre del alumno, en cualquier pantalla del panel donde esté la recepción. Muestra también los rechazados, en rojo y con el motivo. Un botón 🔕 lo silencia en esa pantalla hasta el final del día. Requiere ingreso por Access Bridge.
🔌
Funciona sin internet
Si se cae la conexión, el bridge mantiene caché local de los últimos resultados (24 hs por default) y sigue validando accesos sin interrupciones.
⬆️
Auto-actualización NUEVO
Al iniciar, el bridge verifica automáticamente si hay una nueva versión disponible. Si existe, muestra un banner informando la versión y la descarga e instala con un click — sin intervención técnica.
⚙️
Configuración sin técnicos
La app de escritorio incluye ABM visual de dispositivos, generador de token, log en vivo y guía paso a paso. No requiere editar archivos de configuración.
🔑
Seguridad por token
La comunicación entre el bridge y GymFlow se autentica con Bearer token generado desde el panel de admin. Cada token es único por gimnasio y revocable.

🛑 Motivos de rechazo (deny reasons)

Cada intento de acceso (granted o denied) queda registrado en el historial de accesos y se emite en tiempo real al panel Access Live. Los críticos disparan alerta roja full-screen con countdown.

MotivoCuándo ocurreAlerta roja
Membresía vencidaLa membresía venció.
Deuda pendienteLa membresía está impaga.
Miembro inactivoEl alumno fue desactivado en el CRM.
Sin huella registradaLa huella/tarjeta no está asociada a ningún alumno.
Sede no permitidaLa membresía no habilita esta sede.
Límite diario alcanzadoEl gym tiene configurado un tope de ingresos por día y el alumno ya agotó sus pases del día (se cuentan sólo ingresos autorizados, reset a las 00:00).
Sin apto médicoEl gym exige apto médico vigente y el alumno no tiene certificado cargado.
Apto médico vencidoEl certificado médico del alumno venció.

🚪 Límite de pasos por día (gyms sin grilla)

Para gimnasios que controlan el ingreso por biometría/molinete sin reservar clases, la opción Límite de ingresos por día (Configuración → Control de acceso) limita cuántas veces puede ingresar un alumno en el día. Opciones 0 (sin límite, default), 1, 2, 3, 4 o 5. Caso típico: "solo dejar pasar una vez por día a alumnos con cuota al día". Aplica tanto al ingreso por lector (UID huella/tarjeta/rostro) como al ingreso por PIN.

📥 Reporte «Quién vino y quién no»

El gimnasio sin grilla también registra ingresos, y necesita saber quién vino y quién paga y no viene. En Control de acceso → Quién vino, disponible en todos los planes, el reporte lee tanto los ingresos por molinete o teclado de DNI como los presentes en clase y el check-in por QR o app. Filtra por fecha y por sede.

PestañaQué respondeExporta
Vinieron Quiénes entraron en el período, cuántas veces, días distintos, primer y último ingreso, concentración horaria y el abono al lado del nombre (las membresías que se solapan con el período: "A + B" si tiene dos; una congelada se muestra marcada). CSV y PDF (impresión del navegador)
No vinieron Quiénes no aparecieron, su plan, cuándo vence y cuándo fue la última vez que vinieron. Por defecto solo los alumnos con membresía vigente en el período —el que paga y no viene—; un link incluye a todo el padrón activo. Las membresías congeladas no cuentan como ausencia. Ordena primero a los que nunca vinieron y después por antigüedad de la última visita. CSV con teléfono y email, solo para administradores; el mostrador ve la lista sin datos de contacto

Dos fuentes, una por vez, nunca sumadas: Ingreso al establecimiento (molinete / teclado de DNI) y Presente en clase / check-in por QR (QR, app o presente del profe). El mismo paso físico puede quedar en las dos, así que sumarlas duplicaría ingresos. La pantalla dice cuál está mostrando, deja cambiarla con un botón y avisa cuando la otra fuente tiene más ingresos. Con una sede elegida, "Vinieron" son quienes entraron a esa sucursal y "No vinieron" es el padrón de esa sede.

🤝 Partner oficial de hardware — GSD Tecnología

GymFlow tiene convenio oficial con GSD Tecnología para la provisión de molinetes, terminales biométricos y lectores de huella/RFID/facial para gimnasios.

Recomendamos sus equipos y garantizamos compatibilidad absoluta con Access Bridge: instalación verificada en clientes productivos, soporte conjunto y actualizaciones sincronizadas. Si comprás el hardware con GSD, te conectamos al gimnasio sin sorpresas.

¿Querés cotizar molinetes o terminales? Escribinos y te ponemos en contacto con GSD.

🖥️ Marcas de hardware compatibles

El bridge usa arquitectura de plugins: cada marca de reloj biométrico es un módulo independiente que se puede agregar sin actualizar el sistema core.

ZKTeco — Lector USB GARANTIZADO
Modelo verificado: ZK9500 USB. Lector de huella dactilar por USB, utilizado en el mostrador de enrolamiento. Compatibilidad garantizada con SDK ZKFinger 5.x (incluido en el instalador). Nota: es un lector de solo huella, sin teclado ni relay.
DigitalPersona HID — Lector USB GARANTIZADO
Lectores de huella USB de HID Global / DigitalPersona: U.are.U 4500 y 5300. Integración vía SDK DigitalPersona / U.are.U para enrolamiento en mostrador. Alternativa al ZK9500 cuando el gym ya tiene hardware HID instalado. Lector de solo huella, sin teclado ni relay.
ZKTeco — Terminales de molinete GARANTIZADO
Modelo verificado: F22 / F22-ID. Validado sobre hardware real, incluye verificación online: el terminal no resuelve por su cuenta, le consulta la membresía a GymFlow y espera la respuesta antes de mostrar el resultado en su propia pantalla. Así una cuota vencida se ve como acceso denegado en el display del equipo, y no solamente como un molinete que no abre. También MA300, K40, F18, C2-260, C3-400 y similares. Soportan huella dactilar, tarjeta RFID, reconocimiento facial y acceso por PIN desde el teclado físico. Conexión vía protocolo PUSH o SDK.
🔧
Anviz A PEDIDO
Protocolo OAP/TCP. Huella y tarjeta. Modelos EP300, T5, W1 Pro. Disponible bajo solicitud en 2-5 días hábiles.
Hikvision DS-K1T342MX GARANTIZADO
Terminal biométrico facial vía ISAPI HTTP (red local). Reconocimiento facial <0.2s, tarjeta Mifare M1, PIN. 1.500 rostros / 3.000 tarjetas. IP65, PoE o 12V DC.

Enrollment desde el Bridge: En la pestaña Biométrico aparece el botón 📷 Enrolar en terminal. Al hacer clic, el Bridge crea el usuario en el terminal vía ISAPI y lo mapea en GymFlow. El alumno completa el registro de su cara directamente en la pantalla táctil del equipo (o el cajero lo asiste).

Nota: no tiene lector de huella dactilar. Usa cara + tarjeta.
Uniubi UFace-5 GARANTIZADO
Modelo verificado: UFace-5 (K52). Terminal facial vía API HTTP en red local. Validado sobre hardware real de punta a punta, incluye verificación online: el equipo no decide por su cuenta, le consulta la membresía a GymFlow y espera la respuesta antes de abrir. Una cuota vencida se ve como «VENCIDA» en la pantalla del terminal y el molinete no abre.

Enrolamiento a distancia: desde la solapa Uniubi UFace-5 del Bridge se hace doble clic en el alumno y el equipo entra en modo captura — la persona sólo se para enfrente. La foto queda guardada en GymFlow y viaja sola a las otras sedes.

Nota: el relé del propio equipo queda gobernado por GymFlow, así que no hace falta cablear un relé externo.
🔧
Uniubi UFace-5 Pro-FP A PEDIDO
Variante del UFace-5 que suma lector de huella dactilar al reconocimiento facial. Comparte la misma API HTTP que el K52 ya verificado, así que el acceso por cara funciona igual. El camino de huella todavía no se probó sobre este hardware: consultanos disponibilidad y lo validamos antes de la instalación.
🔧
Dahua / Virdi / FingerTec A PEDIDO
Integraciones adicionales disponibles para otras marcas presentes en el mercado latinoamericano. Consultá disponibilidad y tiempo de desarrollo.
Otras marcas
¿Tu reloj no está en la lista? Consultá con el equipo de GymFlow. Si el fabricante provee SDK o API documentada, desarrollamos el adaptador para tu hardware específico.

💡 ¿Tu molinete o reloj no aparece? Comunicáte con nosotros indicando la marca y modelo. Si el fabricante provee SDK o documentación de API, podemos desarrollar el adaptador y tenerlo disponible en pocos días hábiles.

🔌 Cómo conectar un molinete ZKTeco al Bridge

Los molinetes ZKTeco no se conectan como un lector USB: es el molinete el que llama al Bridge, no al revés. Por eso hay que configurar los dos lados — primero el equipo, después el Bridge. Toda la configuración es de red; no hace falta cablear nada entre la PC y el molinete.

01
Dale una IP fija al molinete
Antes de empezar, reservale una IP fija en el router (o configurala en el equipo). Si la IP cambia, el Bridge deja de poder enviarle altas y huellas nuevas.
02
En el molinete: activá el modo servidor
Entrá a Menú → Red → Configuración Servidor en Nube (según el modelo puede figurar como Comunicación → Conf. serv. en nube) y activá el Modo Servidor ADMS. Es lo que en otros equipos aparece como "PUSH" o "CloudPunch": son el mismo protocolo.
03
Apuntá el molinete a la PC del Bridge
En esa misma pantalla cargá:
Dirección del servidor: la IP de la PC donde corre el Bridge
Puerto del servidor: 4370
HTTPS: desactivado
Ojo con el HTTPS: si queda activado, el molinete se conecta cifrado, el Bridge no lo entiende y el equipo aparece como si nunca se hubiera conectado.
04
En el Bridge: agregá el dispositivo
Andá a Configuración → Dispositivos → Agregar y completá:
Marca / Tipo: ZKTecoPush (F22 / nueva gen.) para equipos de la generación nueva; ZKTeco para los modelos antiguos
Rol: access (molinete). Se usa enrollment solo para el lector del mostrador
Dirección IP: la IP fija del molinete
Puerto: 4370, el mismo que cargaste en el equipo
05
Verificá que se hayan encontrado
El molinete llama al Bridge cada pocos segundos, así que la conexión aparece sola: en la solapa del equipo vas a ver el número de serie y el estado en línea, y en el Log una línea de equipo conectado. Si no pasa nada en un minuto, revisá el HTTPS del paso 3 y el firewall del paso siguiente.
06
Enrolá y probá
Tomá una huella desde el lector del mostrador: se guarda en GymFlow y viaja sola al molinete (y a los de las otras sedes). Dale unos segundos antes de probar el dedo en el molinete — el equipo recibe las órdenes de a una por vez y la huella tarda unos instantes en quedar activa.

⚠️ Dos cosas que explican casi todos los problemas

El puerto 4370 lo puede escuchar un solo programa a la vez. Si el servicio de Windows del Bridge ya lo tomó, la ventana de la aplicación no va a poder atender el molinete (y al revés). Cuando el equipo "no se conecta" pero la red está bien, casi siempre es esto.

El firewall de Windows tiene que permitir la conexión entrante al puerto 4370 en la PC del Bridge. El instalador lo configura, pero un antivirus con firewall propio puede volver a bloquearlo.

💡 ¿Varios molinetes? Cada equipo necesita su propio puerto en el Bridge (4370, 4371, 4372…): cargá ese mismo puerto en la configuración de nube de cada molinete. El enrolamiento sigue siendo uno solo — la huella se distribuye a todos los equipos de todas las sedes automáticamente.


Integraciones

Monitor HR en tiempo real — ANT+ Add-on

El módulo de HR monitoring permite proyectar en el TV de la sala el ritmo cardíaco de cada alumno en tiempo real mediante cinturones ANT+. El instructor controla la sesión desde el panel web; el Bridge transmite las lecturas vía Socket.IO. No requiere apps adicionales.

❤️
BPM en tiempo real
Cada cinturón ANT+ transmite el BPM del alumno cada ~1 segundo al Bridge, que lo relaya al display vía Socket.IO. Sin polling, sin delay perceptible.
🟢
Zonas de entrenamiento
El sistema clasifica automáticamente el esfuerzo: Zona 1 Verde (<65% FCmax), Zona 2 Azul (65–80%) y Zona 3 Roja (>80%). El FCmax es 220 - edad por default o configurable por alumno.
🔥
Calorías acumuladas
Se calculan con la fórmula Keytel (2005) en base a BPM, edad, peso y sexo del alumno. Se acumulan durante toda la sesión y se muestran en el display.
🎽
Asignación de cinturones
El instructor asigna el serial ANT+ de cada cinturón a cada alumno desde el panel HR Monitor → tabla de enrolamiento. Un serial por alumno, un alumno por serial.
📺
Display proyectable
Abrís el HR Display en el TV de la sala (link desde el dashboard). Se auto-ajusta la grilla según la cantidad de alumnos. Diseño oscuro optimizado para proyección.
💾
Historial de sesiones
Cada sesión queda registrada en la base de datos con promedio y máximo de BPM, calorías, y minutos por zona para cada alumno. Datos disponibles para reportes futuros.

🔄 Flujo de uso

1️⃣
Habilitá el módulo HR en Configuración del Sistema
Admin → ⚙️ Configuración (en el menú lateral) → activá el toggle ❤️ ANT+ HR Monitoring. Esto hace aparecer el botón HR Display y el ítem de nav al instructor.
2️⃣
Asigná cinturones a alumnos
Instructor → ❤️ HR Monitor → tabla de enrolamiento. Ingresá el serial del cinturón (impreso en el dispositivo, ej: A3F2C1) para cada alumno. También podés ajustar su FCmax individual.
3️⃣
Abrí el display en el TV
Dashboard → sala → botón ❤️ HR. El display se abre en una nueva pestaña. Poné pantalla completa (F11) y listo. También desde el panel HR Monitor → botón 📺 Abrir Display.
4️⃣
Iniciá la sesión
Desde el panel HR Monitor, ingresá el nombre de la sesión (ej: "CrossFit 18hs") y presioná ▶ Iniciar sesión. El Bridge detecta los cinturones ANT+ activos y comienza a transmitir.

🛜 Hardware requerido

📡
Dongle ANT+ USB
Cualquier dongle USB ANT+ estándar (ej: Garmin ANT+ USB-m, aprox. USD 15). Se conecta a la misma PC donde corre el GymFlow Bridge.
🎽
Cinturones / brazaletes ANT+
Cualquier cinturón de frecuencia cardíaca con protocolo ANT+ (Garmin HRM, Polar H7/H10, Wahoo TICKR, Decathlon, etc.). Sin restricción de marca.
🖥️
PC con GymFlow Bridge
El mismo servicio Bridge que ya usás para el control de acceso. Solo necesitás activar el módulo HR desde la app del Bridge.

💡 Modo Mock para pruebas: El Bridge incluye un modo de simulación que genera lecturas ficticias para hasta 16 alumnos sin necesidad de hardware ANT+. Ideal para probar el display antes de comprar el equipamiento.


Gestión del Gimnasio

Cobros online: MercadoPago y Payway Gimnasio+

Tu gimnasio conecta su propia cuenta de MercadoPago, su comercio de Payway (tarjetas de crédito y débito) o las dos pasarelas, y tus alumnos pagan la cuota desde la app. Si hay dos, el alumno elige con cuál. La membresía se activa automáticamente sin intervención manual.

💳
Pago desde la app
El alumno ve su cuota pendiente en la app, toca "Pagar" y se abre MercadoPago o el formulario de tarjeta de Payway (si tenés las dos, elige). Una vez aprobado, la membresía se activa sola.
🔄
Débito automático
El alumno adhiere su cuota al débito automático desde la app: con MercadoPago cobra MP cada mes; con Payway, el alumno carga su tarjeta una vez y GymFlow la cobra en cada vencimiento y renueva la membresía sola. Si el banco rechaza, reintenta y avisa.
📅
Renovación anticipada
Cuando faltan menos de 10 días para el vencimiento, la app ofrece "Renovar ahora". El alumno paga y la nueva membresía arranca al día siguiente del vencimiento actual.
💳
Payway: tarjeta en el momento
Con el comercio de Payway del gimnasio, el alumno carga su tarjeta de crédito o débito en un formulario con la marca del gym y el cobro se aprueba o rechaza al instante, con el motivo real del emisor. Los datos de la tarjeta van cifrados directo a Payway: GymFlow no los ve ni los guarda.
🔔
Webhooks validados
Cada gym configura su propia clave secreta de webhook. Los pagos se validan con firma criptográfica HMAC-SHA256 y se registran en el log de auditoría.

MercadoPago, paso a paso

1
Conectá tu cuenta
En Configuración → Cobros online → MercadoPago, pegá el Access Token de tu aplicación de MercadoPago y tocá Verificar token. No se cobra nada: solo se comprueba que la credencial sea válida.
2
Configurá el webhook
En la misma pestaña, sección Notificaciones (webhook): copiá la URL, pegala en tu panel de MercadoPago Developers, marcá los eventos de pagos y suscripciones y guardá la clave secreta. Es lo que le permite a MercadoPago avisarle a GymFlow que un pago se aprobó.
3
Suscripciones (opcional)
Prendé «Suscripciones desde la app» para que el alumno pueda adherirse al débito automático mensual de MercadoPago. MP cobra cada mes y avisa por el mismo webhook; el alumno lo cancela desde la app cuando quiere.

Payway, paso a paso NUEVO

1
Cargá las claves de tu comercio
Tu comercio de Payway Venta Online tiene una clave pública (la usa el formulario para cifrar la tarjeta) y una privada (la usa GymFlow para cobrar). En Configuración → Cobros online → Payway pegá las dos, elegí el entorno y tocá Verificar claves: se prueban contra Payway sin cobrar nada. Ahí mismo elegís si aceptás débito además de crédito. No hay webhook que configurar.
2
Los alumnos pagan con tarjeta
Desde ese momento ven «Tarjeta (Payway)» al pagar la cuota en la app: cargan la tarjeta en un formulario con la marca de tu gimnasio y el cobro se aprueba o rechaza en el momento. Desde la ficha también podés generar un link de pago con tarjeta para mandar por WhatsApp.
3
Débito automático (opcional)
Primero pedile a tu ejecutivo de Payway que habilite en tu comercio la tokenización de tarjetas y el cobro sin código de seguridad. Después prendé «Débito automático con tarjeta» en la misma pestaña. El alumno toca «Adherir mi tarjeta» en la app: paga la cuota pendiente si tiene una (o se le hace un cargo de validación de $10 que se devuelve al instante) y la tarjeta queda guardada en Payway. En cada vencimiento, GymFlow crea la cuota siguiente, cobra el valor vigente del plan, la registra en caja y la factura si tenés AFIP activo.
Si el alumno viene con la tarjeta al mostrador y no tiene la app, lo adherís vos desde su ficha («🔁 Adherir al débito»): se abre el mismo formulario en tu pantalla para que él cargue la tarjeta, con el texto de autorización a la vista. Y desde tu propia web, con la API de GymFlow.
⚠️
Las dos habilitaciones de Payway no vienen activas por defecto y GymFlow no puede activarlas por vos: sin tokenización no hay tarjeta guardada, y sin cobro sin código de seguridad no se puede cobrar con el alumno ausente. Con las claves solas ya se cobran cuotas con tarjeta desde la app; el débito automático recién anda con el trámite hecho. Si un alumno intenta adherirse antes, recibe un mensaje claro, el cargo de validación se le devuelve, la cuota que haya pagado en el intento queda paga, y el gimnasio recibe el aviso en el panel.
🔁
Cuando el banco rechaza un débito de Payway: la cuota siguiente no se crea (sin cuotas fantasma), se reintenta al día siguiente hasta tres veces y, si las tres rechazan, la adhesión queda pausada: el alumno ve el motivo en la app y puede pagar a mano o adherir otra tarjeta; el gimnasio lo ve en el panel y en la auditoría. Si el mostrador ya cobró la renovación, el débito se reprograma y no cobra dos veces. Los débitos corren solo de día.

Vale para las dos

ℹ️
Comisiones: GymFlow no cobra comisión. Solo aplica la de la pasarela que uses (la estándar de MercadoPago, ~4,99% + IVA, o el arancel de tu comercio de Payway). El dinero llega directamente a la cuenta del gimnasio.
⚠️
Cobrás online sin facturación electrónica en GymFlow: si MercadoPago o Payway está activo y AFIP apagado o sin configurar, GymFlow no emite factura por esos cobros y lo avisa en el panel y en Configuración → Cobros online. Facturar desde otro sistema es válido —la obligación fiscal es del gimnasio—; el banner se cierra con «Entendido» (queda constancia de quién y cuándo) y el aviso de Cobros online se puede ocultar con «No mostrar más». Solo el administrador lo ve y lo confirma.
🔁
Administrar los débitos automáticos: en la misma pestaña, la fila Débitos automáticos lista a todos los adheridos (MercadoPago y Payway) con plan, tarjeta, monto adherido y precio vigente (⚠ si difieren), próximo débito, estado y el último cobro con hasta cuándo dejó paga la cuota. Por fila: pausar, reanudar, cancelar, actualizar el monto al precio vigente y, con Payway, cobrar ahora. Lo mismo está en la ficha del alumno. Con Payway cada débito cobra el precio vigente del plan; con MercadoPago el monto queda fijo hasta que lo actualizás («Actualizar montos» lo hace para todos los desactualizados).
💡
Un solo listado: todos los pagos online, de MercadoPago y de Payway, aparecen en Pagos online realizados con su pasarela, estado, monto y detalle, entran a la caja con su propio medio de pago y se ven en la ficha del alumno. Si tenés las dos pasarelas, el alumno elige con cuál pagar y con cuál adherirse al débito automático; el alumno cancela desde la app en cualquier momento y, con Payway, la tarjeta se borra del comercio al cancelar.

Gestión del Gimnasio

Posnet Clover en el mostrador Gimnasio+ NUEVO

El posnet Clover (Mini / Flex) como un medio de pago más del sistema. Al cobrar con «Posnet Clover» el monto aparece solo en el equipo, el alumno pasa la tarjeta y GymFlow espera la respuesta del banco: aprobado, se registra; cancelado o rechazado, no queda nada. Sin tipear el monto dos veces, sin cobros fantasma.

🖥️
Un medio de pago más
Aparece en el desplegable de medios de todas las pantallas de cobro: alta y pago de cuotas (incluida la deuda anterior), shop (también en pago mixto: el posnet cobra solo su parte), cuenta corriente, diferencia de cambio de plan, cuota familiar e ingreso manual de caja.
El sistema espera al banco
En la PC se abre una pantalla de espera con el importe, un cronómetro y Cancelar. Cuando el posnet responde, el pago se registra con todo lo de siempre (caja del turno, factura o recibo, historial de la ficha) y guarda la marca y los últimos cuatro dígitos de la tarjeta.
🌐
Desde cualquier PC del gym
El navegador no habla con el posnet: GymFlow le pasa el cobro al GymFlow Bridge que tiene el equipo y el resultado vuelve por el mismo camino. Un posnet por Bridge; con varias sedes, un Bridge por sede y cada cobro va al posnet de la sede de la caja abierta.
📺
Pantalla de bienvenida propia
Mientras el equipo está libre muestra el texto que escribís en Configuración (hasta 10 líneas, {gym} = nombre del gimnasio), con vista previa. Los cambios llegan al posnet al instante. Después de cada cobro aprobado agradece y vuelve a la bienvenida.
1
Preparar el posnet
Instalá la app Secure Network Pay Display desde el App Market de Clover y asignale una IP fija en el router (reserva por MAC). Es el modo en que Clover acepta cobros de un sistema externo por la red local.
2
Enlazar el Bridge
En una PC de la misma red, en el GymFlow Bridge activá la pestaña 🖥️ Posnet Clover, cargá la IP y tocá Conectar. La primera vez el posnet muestra un código de enlace: el Bridge lo muestra en grande (y también GymFlow, en Configuración); confirmalo en el equipo. Queda guardado y el Bridge conecta solo al reiniciar la PC.
3
Activarlo en GymFlow
En Configuración → Membresías y facturación → Posnet Clover prendé el toggle: se crea el medio de pago en Caja. Ahí ves el estado del equipo en vivo (listo, cobrando, esperando enlace, sin conexión), escribís la bienvenida y elegís si aceptás crédito además de débito.
ℹ️
Cuando algo sale mal: si el alumno cancela o la tarjeta es rechazada, no se registra nada y el cajero ve el motivo. Si el posnet está apagado o el Bridge cerrado, el sistema lo dice antes de intentar. Un cobro sin respuesta vence solo a los dos minutos. Si el banco aprobó pero el registro falló, el cajero recibe un aviso y el cobro queda en Últimos cobros como «aprobado sin registrar», con monto, tarjeta y hora, para registrarlo a mano o devolverlo desde el equipo. Un monto distinto del pedido tampoco se da por aprobado.
💡
En la caja y en los reportes el medio queda identificado como posnet: no se mezcla con el efectivo del arqueo ni con MercadoPago. El medio «Posnet Clover» es del sistema: no se renombra ni se borra, solo se ordena; apagar el toggle lo oculta.

Gestión del Gimnasio

Multi-sede Centro · Gimnasio + addon · Red

Cuando tu gym crece más allá de un local, GymFlow deja de tratar la "sede" como algo opcional y la convierte en el eje operativo: cada venta, cobro, lote de stock y turno de caja queda vinculado a una sucursal concreta. Un solo panel, datos separados donde importa y consolidados donde hace falta.

Concepto: sede central + sucursales

Todo gym multi-sede nace con una Sede Central — la dirección principal del local original. Después sumás sucursales (BIS, Palermo, Villa Crespo, etc.). El sistema auto-crea la Central al activarse un plan con soporte multi-sede, y si la creaste antes del fix te muestra un banner azul "Te falta la sede central" con un clic para resolverlo.

El nav del admin muestra el ítem "Sedes" solamente cuando el plan efectivo soporta más de una sede (Centro o Red). Plan Gimnasio (1 sede por definición) opera como single-sede, sin los gates de multi-sede ni la pantalla de gestión.

Addon: sumar sedes al plan Centro

El plan Centro incluye 3 sedes y permite sumar sedes extra por un adicional mensual por sede ($127.470 ARS por sede al mes). El plan Red trae sedes ilimitadas sin addon. El plan Gimnasio no admite sumar sedes — si abrís una sucursal y necesitás operarla en el sistema, pasás a Centro.

Lo que se separa por sede

💰
Turno de caja por sede
Cada turno nace con una sede asignada — no se puede abrir "sin sede". Las ventas y cobros del turno quedan atados a esa sucursal. Podés tener una caja abierta por sede a la vez y pasar de una a otra con el selector de sede; cada una cierra con su propio arqueo.
📦
Inventario de shop separado
Cada lote de stock pertenece a una sede física. El FIFO de venta consume primero los lotes de la sede donde se hace la venta. Podés transferir stock entre sedes preservando el costo y la antigüedad del lote original.
🧾
Cobros de membresía con sede
Cada pago de cuota se liga al turno de caja, que a su vez tiene sede. Los reportes financieros por sede dejan de tener ingresos "fantasma" sin ubicación. Los pagos online (cuota por MercadoPago, cuota familiar, cuenta corriente desde la app) van a la caja abierta de la sede del alumno; si esa sede no tiene caja abierta, los absorbe la próxima apertura de esa misma sucursal.
👥
Permisos de staff por sede
Desde el equipo asignás a cada cajero / instructor a una o más sedes. Al entrar a Caja, Shop o reportes, solo ve movimientos y ventas de sus sedes. El administrador del gimnasio ve todo.
🎨
Branding por sede
Cada sede puede tener su propio logo y paleta de colores. Si no lo define, hereda el branding del gym. El QR de check-in de cada sede muestra la identidad correcta.
📍
Alumnos con sede preferida
Cada alumno tiene una sede preferida. Podés transferirlo entre sedes con un click — migra su vinculación en membresías restringidas. El historial (asistencias, pagos) queda intacto.

Lo que se unifica

  • Catálogo de productos: una sola lista para todas las sedes. Lo que cambia es el stock físico por sede.
  • Alumnos y membresías: el padrón es único. Un alumno "pertenece al gym", no a una sede. La restricción de sede es una propiedad de la membresía (todas las sedes, o una lista de sedes específicas).
  • Planes y precios: los planes de membresía son del gym, no de la sede. Si querés precios distintos por sede, lo resolvés con convenios.
  • Biblioteca de sesiones WOD y plantillas PT: compartidas entre todas las sedes. Un WOD creado en Palermo puede ejecutarse en Villa Crespo al mismo tiempo.
  • Reportes consolidados: el admin tiene una "vista global" opcional que cruza todas las sedes. Los breakdowns por sede y por cajero son el default del panel financiero.

Flujo operativo en un día típico

  1. Cajero llega a su sede: entra a Caja → elige su sede en el selector → abre turno con monto inicial de efectivo.
  2. Operatoria: vende productos, cobra cuotas, registra movimientos. Todo queda atado al turno de esa sede.
  3. Cambio de sede: elige la otra sede en el selector; si no tiene caja abierta ahí, abre una. La de la sede A queda abierta con su arqueo pendiente.
  4. Fin del día: cierre de turno con arqueo. Diff cero o con nota de explicación.

Modo grupal vs modo por usuario

Las cajas pueden funcionar en dos modos configurables por el admin:

  • Por usuario (default): cada cajero tiene su propio turno. Arqueo individual al cierre.
  • Grupal: un solo turno por sede donde todos cargan movimientos. Coexisten varios grupales simultáneos si hay varias sedes (uno por sucursal).

En ambos modos todo turno nace con sede, y puede haber una caja abierta por sede al mismo tiempo: una por usuario por sede en modo Por usuario, una grupal por sede en modo Grupal.


Gestión del Gimnasio

Configuración del Sistema Todos los planes

Panel centralizado de configuración del gimnasio. Desde ⚙️ Configuración en el menú lateral controlás módulos, reglas de negocio, notificaciones automáticas y políticas de acceso. Cada gimnasio tiene su propia configuración independiente.

Módulos activables

Cada módulo se activa o desactiva con un toggle. Al desactivar un módulo, desaparece de todo el sistema (menú, badges, perfiles).

Módulo Descripción Estado por defecto
❤️ ANT+ HR Monitoring Monitor de frecuencia cardíaca en tiempo real. Display por sala para TV, panel de instructor con BPM en vivo. Requiere GymFlow Bridge con cinturones ANT+. Inactivo
🩺 Apto Físico Gestión del certificado médico. Al desactivarlo, el apto no se muestra en la lista de alumnos ni en el perfil, y los badges de 🩺 desaparecen del sistema. Activo
🧾 Factura Electrónica AFIP Emisión de facturas electrónicas a través de AFIP/ARCA. Soporta Monotributo (Factura C) y Responsable Inscripto (Factura A/B). Cada gym configura sus credenciales. Inactivo
📜 Términos y condiciones del gimnasio Texto libre del gimnasio (reglamento, cláusulas) que el alumno debe leer y aceptar —«He leído y acepto todas las condiciones»— la próxima vez que abre la app o el portal web; hasta que no acepta, no puede seguir. Cada aceptación queda registrada con fecha y hora, versión y texto exacto, y se ve en la ficha. Al publicar un texto nuevo se elige si todos deben volver a aceptarlo; las versiones anteriores no se pisan. En Configuración → App del alumno. Inactivo

Reglas de acceso y control

Regla Descripción Estado por defecto
🚫 Bloquear check-in sin apto vigente Los alumnos sin certificado médico vigente no pueden hacer check-in por QR. El alumno ve un mensaje en la app indicándole que necesita presentar su certificado. Requiere que "Apto Físico" esté activo. Inactivo
🏦 Requerir turno de caja abierto para vender El Shop no permite registrar ventas si el cajero no tiene un turno de caja abierto. Al desactivarlo, las ventas se registran aunque no haya turno abierto (útil para gyms que no usan el módulo de caja). Las ventas sin turno no quedan vinculadas a ningún arqueo. Activo
💰 Modo de caja (Por usuario / Grupal) Por usuario (default): cada usuario abre y opera su propio turno; los admins pueden ver y cerrar las cajas de otros. Grupal: una única caja compartida por gimnasio (o por sede). Cualquier usuario con acceso carga movimientos; solo un administrador o quien la abrió puede cerrarla. Mientras haya una caja grupal abierta en una sede, nadie puede abrir otra en esa misma sede. Al cambiar de modo se cierran automáticamente los turnos abiertos (sin arqueo) con audit log. Por usuario
🎟️ Pase por día Qué plan se vende como pase de un día desde la ficha del alumno (botón «🎟️ Pase por hoy»). El pase vale solo ese día en molinete, PIN y QR, convive con la membresía vigente y entra a caja y factura como una cuota. Precio, franja horaria, salas y sedes se configuran en ese plan. En Configuración → Membresías y facturación. Sin plan (apagado)

Notificaciones push automáticas

Cada tipo de push automático se activa o desactiva individualmente. Requiere que los alumnos tengan la app instalada.

Notificación Descripción Estado por defecto
🔔 Recordatorio push de clases Envía un push 30 minutos antes de la clase reservada con el nombre y horario de la clase. Activo
📋 Aviso de vencimiento de membresía Push automático cuando la membresía vence en los próximos 3 días. Se envía una sola vez por membresía. Activo
🎂 Saludo de cumpleaños Push automático el día del cumpleaños. Título y mensaje editables con placeholders: {nombre} (primer nombre del alumno) y {gym} (nombre del gimnasio). Se envía una sola vez por año. Requiere fecha de nacimiento cargada. Activo
✏️
Personalización del mensaje de cumpleaños: En la configuración podés editar el título (máx 50 caracteres) y el mensaje (máx 100 caracteres). Ejemplo por defecto:
Título: 🎂 ¡Feliz cumpleaños, {nombre}!
Mensaje: Todo el equipo de {gym} te desea un gran día. ¡Pasá a entrenar! 💪🎉

Reglas de reservas

Configuraciones que controlan el comportamiento de las reservas, el check-in y el acceso de los alumnos.

Tiempo límite de cancelación sin penalidad
Establece la anticipación mínima para cancelar una reserva sin perder el crédito. Si el alumno cancela pasado este límite o falta a la clase, se considera ausente y se le descuenta la sesión del plan.
Valor: el que quieras, escrito en minutos u horas — 10, 15, 20 minutos, 3 horas, 2 días… Con 0 se puede cancelar hasta que la clase empieza; el tope es 7 días.
Default: 2 horas antes.
Gracia antes de marcar Ausente
El alumno puede registrar su presencia durante toda la clase: por QR, con el presente del profe o desde el mostrador. Cuando la clase termina, el sistema espera además esta ventana de gracia y recién ahí marca como Ausente a los que no ficharon. Un Ausente marcado por error se revierte con un clic desde Asistencias o desde Mis clases del profe.
Opciones: 5, 10, 15, 20, 30 minutos o 1 hora.
Default: 15 minutos.
🚪
Límite de ingresos por día
Cuántas veces puede cruzar el molinete un alumno con la cuota al día. Es independiente del crédito: cuenta puertas, no cupos — aplica también a los planes ilimitados y funciona aunque "El molinete descuenta crédito" esté apagado. Si el alumno llega al límite, rebota sin gastarle un cupo. El conteo se resetea a las 00:00 y solo suma ingresos autorizados. Vive en la pestaña 🚪 Control de acceso.
Opciones: 1, 2, 3, 4, 5, Sin límite.
Default: Sin límite.
📅
Anticipación máxima de reserva
Los alumnos solo pueden reservar clases dentro de los próximos N días desde hoy. Si la clase cae fuera de ese rango, la app no les muestra el botón de reserva.
Opciones: 3, 5, 7, 10, 14, 21 o 30 días.
Default: 14 días.
🚫
Penalización por inasistencias
Para el que reserva y no viene. Si un alumno acumula ausencias en la misma clase (reservas marcadas Ausente: no canceló a tiempo y no fue), se lo bloquea temporalmente para volver a reservar esa franja desde la app. El mostrador sigue pudiendo anotarlo. Se configura cuántas faltas disparan el bloqueo (2 a 5), la ventana de conteo en días (número libre, 1 a 365) y la duración del bloqueo como número libre en horas o días, con la equivalencia a la vista (hasta 90 días).
Default: apagada.
⚠️
Importante: Los cambios en las reglas de reservas aplican inmediatamente a todas las reservas futuras. Las reservas existentes no se ven afectadas por los cambios retroactivamente.

Integraciones

API propia Gimnasio+

Para que el sitio web del gimnasio —u otro sistema— hable con GymFlow en nombre de ese gimnasio: leer los planes con precio real, registrar y validar alumnos, generar el link de pago e informar cobros. Se administra desde Integraciones → API propia y la documentación técnica completa se descarga en PDF desde ese mismo panel.

🔑
Una clave por sistema
El admin crea una clave con nombre ("Web del gimnasio") y elige uno por uno qué puede hacer. La clave se muestra una sola vez: el sistema guarda una huella, no la clave. Se regenera o se revoca en un clic y los accesos mueren en el acto.
⏱️
Token de 12 horas
La clave sirve para pedir un token; el token es el que opera. Así la credencial permanente no viaja en cada llamada. Al vencer, el sistema conectado pide otro y sigue.
🎯
Permisos granulares
Once permisos independientes: leer planes; consultar alumnos (que incluye ver el padrón sin contacto y ver teléfono y mail, también otorgables por separado); registrar y editar; validar el login; generar links de pago; informar pagos; consultar pagos; ver el estado de cuota; y leer asistencias y accesos. Lo que no está tildado, no se puede.
🧾
Todo auditado
Cada llamada queda en la pestaña Actividad (endpoint, resultado, IP) y cada acción con consecuencias aparece en la Auditoría del sistema firmada con el nombre de la clave que la hizo.

Qué habilita cada permiso

Permiso Qué puede hacer el sistema conectado
Leer planes Lista de planes activos con precio, duración, clases incluidas y bonificación de bienvenida. Si el plan tiene bonificación, viene también el precio bonificado ya calculado por GymFlow, para que la web no replique el redondeo. Para un alumno con ficha, el precio que se le cobra es el suyo (con convenio y cuotas bonificadas ya usadas), que se pide por alumno.
Consultar alumnos Buscar por email o DNI y ver el estado de la membresía: vigente, vencida, con deuda o sin membresía.
Ver el padrón (sin datos de contacto) Buscar por nombre y ver la ficha sin teléfono ni mail.
Ver teléfono y mail del alumno Habilita buscar por email y ver los datos de contacto.
Ver el estado de cuota Listar las cuotas de un alumno: importe, período, si está paga, pendiente o parcial, y cuándo vence.
Registrar y editar alumnos Crear fichas nuevas con las mismas reglas del mostrador (email único, DNI normalizado, PIN = DNI) y actualizar datos básicos. La baja no se hace por API.
Validar el login del alumno Verificar email y contraseña de la app para que el alumno entre a la web del gimnasio con su cuenta de GymFlow. Incluye "olvidé mi contraseña": la web pide que GymFlow le mande al alumno el mail de recuperación (el mismo link de 1 hora que usa la app); nunca devuelve el token y responde siempre igual, exista o no el email.
Generar links de pago Pedir un link de Checkout Pro con la cuenta de MercadoPago del gimnasio. Cuando el alumno paga, GymFlow recibe el aviso y acredita la membresía solo. Incluye "Ya me registré / Completar pago": con el email o el DNI, la web pide el link de la cuota impaga y GymFlow reusa el vigente o genera otro, nunca otra membresía. Regla de un solo checkout pendiente por alumno: pedir un link para otra cuota cancela el anterior sin pagar; alcanza solo a los links generados por la API.
Informar pagos Acreditar una cuota cobrada por otra vía (transferencia, pasarela propia). Es idempotente: reintentar con el mismo número de operación nunca duplica.
Consultar pagos Ver los pagos que entraron por la API, por referencia o por alumno.
Leer asistencias Ingresos por molinete, QR o PIN y presentes en clase, para análisis de uso o retención.
💡
Documentación para el desarrollador: en la pestaña Documentación del módulo está la referencia completa —cómo pedir el token, cada endpoint con sus campos, respuestas de ejemplo y códigos de error—, un historial de cambios por fecha y un botón para descargarla en PDF y mandársela a quien programa el sitio.
ℹ️
Es de servidor a servidor: la clave se usa desde el backend del sitio, nunca desde el navegador. Para probar el circuito de cobro completo conviene usar una cuenta de prueba y las credenciales de prueba de MercadoPago.

Integraciones

Link de inscripción Gimnasio+

Una URL propia del gimnasio para compartir o poner como botón en su web: quien entra completa sus datos y queda registrado en el padrón de alumnos. Sin programar nada. Se activa desde Integraciones → Link de inscripción.

🔗
URL propia del gimnasio
El panel entrega el link listo para copiar, el HTML del botón para pegar en la web y un QR para imprimir. Se comparte por WhatsApp, va en el link de Instagram o en el mostrador.
🎨
Con la marca del gimnasio
La página muestra el logo, el nombre y los colores del gym. Es responsive: la mayoría entra desde el celular.
📋
Cae en el padrón
La ficha nace con las reglas del mostrador y queda como Sin membresía. En pantalla y por mail el alumno recibe los tres datos para entrar por primera vez —el código del gimnasio, su email y una contraseña provisoria de 4 dígitos— más un botón para entrar al portal web sin instalar nada. Al entrar elige su propia contraseña y la provisoria deja de servir.
🛡️
Con frenos
Arranca apagado. Activo, admite 8 inscripciones cada 15 minutos por dispositivo y 40 por hora en todo el gimnasio, con trampa anti-bot y sin aceptar emails ni DNI repetidos.
ℹ️
Qué NO hace: no cobra, no asigna plan y no abre el molinete. Reemplaza el tipeo del alta, no el cobro. Si además querés cobrar desde tu web, eso se hace con la API propia.
💡
Datos obligatorios: por defecto pide nombre y email. Si en Configuración marcás DNI, teléfono y fecha de nacimiento como obligatorios, el formulario los exige — la misma regla que aplica al registro desde la app. Con molinete, conviene pedir el DNI: es el PIN del alumno. Aparte, en Integraciones → Link de inscripción el interruptor 🏠 Pedir domicilio y teléfono de emergencia (apagado por defecto) suma esos dos campos como obligatorios solo en el link público; los datos quedan en la ficha del alumno, solapa Salud.
✉️
Mail de bienvenida y contraseña olvidada: al registrarse por el link (o por la API), GymFlow le manda al alumno un mail con los tres datos que pide la pantalla de ingreso —Código del gimnasio, Email y Contraseña provisoria— y un botón Entrar al portal con el código ya cargado. El mostrador no puede ver esa contraseña después: solo blanquearla. Si el alumno la olvida, desde la app pide un link por mail de un solo uso que dura 1 hora. Esa recuperación no está en el portal web.

Cumplimiento fiscal

Facturación electrónica AFIP/ARCA Gimnasio+

Emisión de facturas electrónicas con CAE directo desde GymFlow. Soporta Monotributo (Factura C) y Responsable Inscripto (Factura A/B). Cada gimnasio configura sus propias credenciales (CUIT, certificado, clave) en ⚙️ Configuración → Factura Electrónica AFIP.

Emisión automática por origen

Tres toggles controlan cuándo se emite automáticamente una factura. En modo Manual, GymFlow pregunta al operador antes de emitir.

OrigenComportamiento ActivoComportamiento Inactivo
🛒 Ventas del Shop Emite automáticamente al cerrar la venta. Pregunta al operador "¿Emitir factura?" con modal.
💳 Cobros de Membresías Emite automáticamente al marcar como pagada. El cobro se registra pero la factura queda pendiente para emisión manual.
💙 Checkout MercadoPago Emite al recibir el webhook de aprobación. Pago procesado pero factura pendiente.

Notas de Crédito (parciales y totales)

Cada factura emitida (status ✅ Emitida) muestra en su detalle un botón 🔄 Emitir Nota de Crédito. Abre un modal con dos opciones:

  • Total: acredita el saldo completo disponible de la factura.
  • Parcial: ingresá un importe específico (bloqueado al saldo restante).

El mapeo AFIP es automático (Factura A → NC A, B → NC B, C → NC C). La NC se asocia al comprobante origen vía CbtesAsoc, hereda receptor y concepto, y respeta el ratio IVA 21% si corresponde. El panel de facturas muestra el saldo acreditado y bloquea nuevas NC cuando la factura está totalmente acreditada. Los KPIs del libro IVA Ventas restan las NC del neto/IVA/total.

Impresión térmica del comprobante

Toggle maestro en Configuración que habilita la impresión del ticket fiscal (80mm o 58mm) con QR AFIP validable en afip.gob.ar. Tres sub-controles aparecen cuando se activa:

🔀
Modo de impresión
Auto: dispara window.print() sin preguntar (ideal con Firefox + print.always_print_silent = true y la comandera como impresora predeterminada del SO). Preguntar: muestra "¿Imprimir comprobante?" tras cada emisión exitosa.
📐
Ancho del papel
Select 80 mm (default, la mayoría de las comanderas) o 58 mm (mini impresoras). Ajusta QR, padding y font-size automáticamente.
👁
Vista previa
Botón que abre un popup con la última factura emitida aplicando ancho y logo actuales, sin imprimir. El logo del gym se toma automáticamente del que subas en el Dashboard.

Cada factura del listado tiene un botón 🖨 Imprimir ticket permanente para reimpresión manual. El flujo auto-print funciona también en Shop (POS), membresías (cobro + alta con pago) y NC emitidas desde el panel.

Bloqueo del ambiente en Producción

🔒
Una vez que el gimnasio elige 🚀 Producción y guarda la configuración AFIP, el selector de ambiente desaparece de la UI y queda fijo. Esto previene que alguien rebaje por accidente a Homologación y pierda la continuidad de numeración fiscal. Para revertir (casos de debug de certificado) hay que gestionarlo con el equipo de soporte.

App del Alumno

Sistema de reservas Gimnasio+

Los alumnos reservan su lugar en la clase con un toque desde la app. El sistema controla el cupo y gestiona las cancelaciones automáticamente.

📅
Reserva desde la app
El alumno ve el horario semanal, elige la clase y reserva en un toque. Recibe confirmación y recordatorio automático.
Cancelación con ventana
El administrador define la ventana de cancelación sin penalidad. Cancelaciones fuera de esa ventana se marcan como ausente sin devolver el crédito.
🎟️
Créditos automáticos
Cada reserva descuenta un crédito. Si la cancelación es a tiempo, el crédito se devuelve automáticamente.
🔢
Control de cupo
Cuando una clase llega al cupo máximo, el botón de reserva se deshabilita en la app para todos los alumnos.
👥
Cupos ocupados en vivo (scheduler)
La vista semanal de Programación Semanal (que ven admin, staff/recepcionista e instructores) muestra en cada slot reservados/cupo · N libres. Colores: gris (ok), naranja si quedan ≤3, LLENO en rojo si se agotó. Cuenta sólo las reservas vigentes y los presentes (cancelados/ausentes no suman).
Desde Configuración → Reservas y clases se puede cambiar el contador a lugares que quedan: 6 lugares y COMPLETO al agotarse, para leer la disponibilidad sin restar.
Sincronización en tiempo real
Cuando un alumno reserva/cancela desde la app o el portal web, la grilla del scheduler y la vista Asistencias del admin se actualizan al instante en tiempo real a las pantallas conectadas de ese gimnasio. Los contadores cambian sin recargar la página.
🛎️
Acceso a Asistencias para recepción
Los usuarios rol staff (recepcionista) ahora tienen el link Asistencias directo en su menú (antes solo admin lo tenía). Ideal para control interno sin escalar permisos.

App del Alumno

Calculadora RM Personal Todos los planes

Seguimiento del peso máximo de cada ejercicio por alumno, con gráfico de evolución. Único en Argentina.

1
El instructor activa el QR de RM
Al finalizar el WOD, el instructor activa el QR de carga de RM desde el panel. Aparece en el TV del gym.
2
El alumno escanea y carga
Cada alumno escanea el QR con la app y carga el peso máximo con el que ejecutó el ejercicio.
3
Cálculo automático del RM
El sistema calcula el RM (1 repetición máxima), actualiza el récord personal si lo supera y guarda el historial con gráfico de evolución.
🏋️
Los alumnos pueden ver su historial de RM por ejercicio desde "Mi progreso" en la app. El gráfico muestra la evolución mes a mes.

App del Alumno

Portal editorial Gimnasio+

La pantalla de inicio de la app del alumno, personalizable por el administrador con contenido editorial del gym.

📰
Bloques de contenido
Creá bloques de texto con imagen, estilo banner, que los alumnos ven al abrir la app. Noticias, promos, novedades.
🎨
Personalizable
Cada bloque puede tener título, cuerpo de texto e imagen. El admin define el orden y la visibilidad de cada bloque.

Planes

Comparativa de planes

Todos los planes incluyen 30 días de prueba gratuita sin tarjeta de crédito.

Funcionalidad Instructor Gimnasio Centro
Constructor de WODs
Panel en vivo
Pantalla de sala
Integración Spotify
Generador IA de WODs
App del alumno
Calculadora RM
Salas 1 2 incluidas (+ add-on) 4 incluidas (+ add-on)
Instructores 1 ilimitados ilimitados
Grilla semanal + reservas
CRM de alumnos
Salud y apto médico
Suspensión de membresías
Por cobrar y alertas
Calificaciones de clases
Equipo de trabajo (Staff/Admins)
Cartelera de sala
Caja y reportes
Cobros online (MercadoPago / Payway)
Biblioteca de ejercicios
Sesiones compartidas
Check-in QR
Notificaciones Push
Portal editorial
Multi-sede
Compartir sesiones con clientes
Precio mensual $24.000 ARS $52.000 ARS $120.000 ARS
Probar gratis 30 días →

Seguridad

Auditoría del sistema 🛡️

GymFlow registra automáticamente un log de auditoría completo de todas las operaciones sensibles: cada cambio queda asociado a quién lo hizo y cuándo.

Área Eventos auditados
💰 MercadoPago Pagos aprobados y rechazados, suscripciones creadas y canceladas, cobros recurrentes automáticos, facturas subidas y borradas
🔐 Autenticación Login de usuarios del panel (éxito y fallo), verificación OTP, activación y desactivación de 2FA
👥 Miembros Alta, baja y modificación de alumnos, membresías, cambios de contraseña, reset de PIN, datos de salud, check-in por QR
🏋️ Operaciones Salas, sedes, sesiones, horarios, ejercicios, templates, cambio manual de estado de reservas
💵 Finanzas Movimientos de caja, renovaciones de membresía, suscripciones manuales
📢 Comunicaciones Envío de notificaciones push masivas, creación y eliminación de códigos de bienvenida
👤 Equipo Gestión de usuarios, equipo de trabajo, perfiles, registros de gimnasios, convenciones
📖
Legible para el dueño
En Auditoría (menú Sistema) cada acción aparece con un nombre legible en vez del código interno, y el detalle traducido (Pagado, Plan, Medio, Motivo, esperado antes/después) con los montos formateados.
🔢
Resumen del período
Arriba del listado, un mini-resumen del período filtrado: Pagos, Altas, Bajas e Ingresos al panel. Son conteos, no plata.
📥
Exportar a CSV
Descarga el filtro actual (hasta 10.000 filas, listo para Excel) con la acción legible y su código.
🎯
Filtros rápidos
Un clic sobre el operador o sobre el alumno u objeto de cada fila filtra por él. Además, filtro por tipo agrupado (Caja/Shop incluye anulaciones).
🔒
Seguridad adicional: Los webhooks de MercadoPago se validan con firma criptográfica HMAC-SHA256 en producción. Las conexiones a APIs externas usan verificación SSL completa. Los montos de pago se validan contra el monto esperado antes de activar suscripciones.

App del Alumno

Portal Web para Alumnos Gimnasio+

Además de la app móvil, los alumnos pueden acceder a su cuenta desde cualquier navegador — sin instalar nada. El portal web replica las funciones principales de la app Flutter.

🏠
Inicio / Portada
El alumno ve su membresía activa, días restantes, créditos disponibles y la próxima clase reservada. Además, los bloques editoriales configurados por el admin (imágenes, texto).
📅
Agenda semanal con bottom sheet
Grilla de clases por semana, con filtros por sede. Cada slot tappable abre un bottom sheet con detalle completo (paridad Flutter): fecha larga, hora, sala, profe, sede, cupos N/M reservas. Badges contextuales: ● EN VIVO si la clase está en curso ahora, ⚠️ quedan ≤3 lugares, Suspendida con motivo, Lleno. Botón primario adaptativo: Reservar lugar / Cancelar reserva / Clase pasada / Lleno / Suspendida.
Mis Reservas con cancelación inteligente
Historial con estadísticas: reservadas, asistencias, ausencias y créditos disponibles. Botón ✕ por reserva con warning de Tiempo límite de cancelación: si ya pasó el plazo, avisa que la reserva se marcará Ausente sin crédito. Si está dentro del plazo, devuelve el crédito automáticamente.
🏋️
RMs e historial
Lista de ejercicios con el PR actual. Al tocar un ejercicio, se despliega el historial completo de cargas, repeticiones y RM estimado por fecha.
👤
Perfil
Datos personales, plan activo, vencimiento, clases disponibles y estado del apto médico. Incluye código de check-in y botón de logout.
🔐
Autenticación
Login con email, contraseña y código del gym (slug). Token Bearer idéntico a la app Flutter. Auto-login silencioso si hay sesión válida.
💡
Acceso: Los alumnos acceden al portal desde /portal/ en tu dominio GymFlow. No requiere instalación ni descarga. Funciona en cualquier navegador moderno, celular o PC.
ℹ️
API compartida: El portal web consume las mismas APIs que la app Flutter. Reservas, cancelaciones y cambios se reflejan en tiempo real en ambos canales.

🔗 Embeber el portal en tu sitio web

Si tu gym tiene su propia web, podés incrustar el portal de alumnos directamente con un iframe. Desde el panel de admin (QR Check-in) tenés el código listo para copiar con el slug de tu gym ya incluido — los alumnos solo necesitan email y contraseña. Ejemplo genérico:

<!-- Portal GymFlow para alumnos -->
<iframe
  src="https://gymflow.com.ar/portal/"
  width="100%"
  height="700"
  frameborder="0"
  style="border:none;border-radius:12px;max-width:480px;margin:0 auto;display:block;"
  allow="clipboard-write"
  title="Portal de alumnos GymFlow">
</iframe>
💡
Personalización: Podés ajustar height y max-width para que se adapte al diseño de tu página. El portal se adapta automáticamente al tamaño del contenedor.

Seguridad

Portabilidad de datos Todos los planes

Descargá una copia completa de todos los datos de tu gimnasio en formato XML, en cualquier momento. Tus datos son tuyos.

📦
Export completo
Alumnos, membresías, pagos, planes de entrenamiento, nutrición, ejercicios, sesiones, movimientos de caja, historial de acceso, chat, soporte y configuración completa — todo en un solo archivo.
🔒
Siempre disponible
La exportación funciona incluso con la suscripción vencida. Es un derecho, no una funcionalidad premium. Accedé desde Facturación → Portabilidad de datos.
🔮
A prueba de futuro (auto-discovery)
El exportador tiene una pasada de auto-discovery: al generarse el XML se revisan todos los datos de tu gimnasio y se agrega automáticamente todo módulo nuevo aunque la exportación todavía no se haya actualizado. Garantiza que los módulos futuros de GymFlow (nuevas features, nuevos datos) salgan en el export sin tener que esperar un update. Las tablas auto-descubiertas aparecen listadas en el bloque <_auto_discovered> al principio del XML para transparencia.
💡
Formato XML: El archivo generado es un XML estándar que podés abrir con cualquier editor de texto, Excel, o importar a otro sistema. Los campos sensibles (contraseñas, secretos OTP) se excluyen automáticamente.
🛡️
Redacción de campos sensibles en módulos nuevos: lo que se detecta automáticamente pasa por el mismo filtro de seguridad: contraseñas, claves, certificados y cualquier otro dato sensible salen reemplazados por [redacted] en el XML. También se excluyen completamente los registros internos de sesión, de autenticación y de auditoría.

Facturación

Renovación directa Todos los planes

Si tu suscripción venció, no necesitás contactar a nadie. Podés pagar directamente desde la pantalla de "Suscripción vencida".

01
Pantalla de expiración
Al vencer tu suscripción, cualquier usuario del gym ve la pantalla de "Suscripción vencida". Si sos admin, además ves tu plan, ciclo y precio.
02
Pagar con MercadoPago
Hacé clic en "Pagar con MercadoPago". Se genera un link de checkout seguro. Podés pagar con tarjeta de crédito, débito, transferencia, Rapipago o Pago Fácil.
03
Reactivación automática
Una vez acreditado el pago, la suscripción se reactiva automáticamente. No necesitás esperar ni contactar soporte.
📦
Exportación de datos: Incluso con la suscripción vencida, podés descargar todos tus datos en XML desde la misma pantalla de expiración.

Gestión del Gimnasio

Facturación Electrónica AFIP Gimnasio+

Emití facturas electrónicas válidas ante AFIP directamente desde GymFlow. Emisión automática al cobrar membresías y vender productos, con CAE, QR fiscal y Libro IVA Ventas integrado.

Emisión automática
Al cobrar una membresía o vender un producto del Shop, la factura se emite sola contra AFIP vía WSFEv1. Sin intervención del operador, sin abrir otra web.
🧾
Tipo de comprobante inteligente
El sistema elige Factura A, B o C automáticamente según la condición de IVA del gimnasio y el tipo de receptor. IVA 21% desglosado para Responsables Inscriptos.
📊
Libro IVA Ventas
Exportá el Libro IVA Ventas como CSV compatible con Excel. Todos los campos que AFIP requiere: fecha, tipo de comprobante, neto gravado, IVA 21%, total, CAE y vencimiento.
📱
QR fiscal
Cada factura genera un código QR conforme a la normativa de AFIP. Verificable por cualquier persona con su celular desde la web de AFIP.

Configuración inicial

01
Generar certificado digital en AFIP
Desde la web de AFIP, en "Administración de Certificados Digitales", generá un CSR y subilo para obtener el certificado (.crt). Este certificado autoriza a GymFlow a emitir comprobantes en tu nombre.
02
Habilitar punto de venta electrónico
En AFIP, dar de alta un punto de venta tipo "Web Services" para que acepte comprobantes electrónicos vía API.
03
Cargar datos en GymFlow
En Configuración → Facturación AFIP, subí el certificado (.crt), la clave privada (.key), y completá: CUIT, razón social, condición de IVA (Responsable Inscripto o Monotributista) y número de punto de venta. El sistema valida la conexión al guardar.

Concepto según tipo de operación

Operación Concepto AFIP Fechas de servicio
Membresía Servicios (Concepto 2) Inicio y fin de la membresía
Venta del Shop Productos (Concepto 1) No aplica

Triggers de emisión automática

Acción Módulo Resultado
Crear membresía con pago Alumnos → Asignar membresía Factura de servicio emitida
Registrar pago de cuota Perfil alumno → Pagar cuota Factura de servicio emitida
Pago aprobado vía MercadoPago Webhook automático Factura de servicio emitida
Venta de producto Shop → Vender Factura de producto emitida
Venta de carrito Shop → Carrito Factura de producto emitida
💡
Prevención de duplicados: El sistema verifica que no exista una factura previa para el mismo ítem antes de emitir. Si ya hay una factura con estado "ok" para esa membresía o venta, no se emite otra.
📦
Tolerancia a caídas de AFIP: Si los WebServices de AFIP están caídos al momento del cobro, la operación se registra normalmente (membresía activa, caja impactada) y la factura queda pendiente para reintento automático. El gym nunca se bloquea por un corte de AFIP.
⚠️
Certificado digital: Los certificados de AFIP tienen una vigencia de 2 años. Cuando esté próximo a vencer, renovalo desde AFIP y actualizá el archivo en GymFlow. El sistema te avisa si el certificado expiró al intentar emitir.