Workflows es un sistema para crear y ejecutar procesos de modificación de datos en varios pasos sobre registros de participantes. Está diseñado para operaciones en eventos en vivo — expos de carreras, conferencias, recintos deportivos — donde el personal necesita una herramienta rápida, guiada y adaptada a dispositivos móviles para buscar participantes y actualizar sus registros sobre la marcha.
El sistema se divide en dos aplicaciones principales:
Cada workflow se construye a partir de hasta cuatro pasos secuenciales. No todos los pasos son obligatorios — puedes omitir o resolver automáticamente algunos según tu caso de uso.
1. Query (Búsqueda) La pantalla de búsqueda. El operador introduce un valor (dorsal, nombre, escaneo de código de barras) para encontrar uno o más participantes en el registro. Puedes configurar múltiples campos de búsqueda combinados con lógica AND/OR, habilitar el escaneo de códigos de barras y activar el auto-envío para que el workflow avance automáticamente en cuanto se encuentre una coincidencia.
Paso de búsqueda — el operador busca un participante
2. Select (Selección) Si la búsqueda devuelve más de un resultado, el operador ve una lista y elige uno (o varios, si el workflow permite selección múltiple). Puedes elegir qué campos aparecen en la vista de lista o en la vista de detalle, y cuáles se resaltan visualmente.
Paso de selección — el operador elige entre los resultados
3. Action (Acción) La modificación real de los datos. Aquí es donde se escriben los valores. Los campos pueden ser manuales (el operador escribe o escanea un valor) o automáticos (el sistema rellena una marca de tiempo, el nombre del operador actual o un valor fijo). Los tipos de entrada incluyen texto, número, fecha, lista desplegable y captura de foto.
Paso de acción — el operador introduce los nuevos datos
4. Confirm (Confirmación) Una pantalla de revisión opcional. El operador ve los valores originales y los nuevos lado a lado y debe aprobar antes de que la operación se confirme. También puedes configurar un temporizador de auto-aprobación para que la confirmación desaparezca tras un número determinado de segundos.
Paso de confirmación — revisión antes de guardar
Cada workflow tiene asignado un PIN que los operadores introducen para abrirlo. Opcionalmente, puedes habilitar la autenticación, que requiere que los operadores inicien sesión y vincula cada operación a un usuario con nombre — útil para pistas de auditoría.
Si una competición tiene múltiples eventos (por ejemplo, 10K y Media Maratón), un workflow puede limitarse a un solo evento para que los operadores solo vean los participantes relevantes.
Los workflows pueden funcionar en dos modos de datos, cada uno diseñado para un caso de uso diferente:
Modo local — La Aplicación de Ejecución descarga toda la base de datos de participantes al cargar el workflow y la almacena en el navegador (IndexedDB). Las búsquedas son instantáneas porque se ejecutan contra datos en memoria. Los cambios se encolan localmente y se sincronizan con el servidor en segundo plano. Este modo funciona incluso sin conexión a internet tras la carga inicial — los dispositivos pueden estar desconectados y sincronizar más tarde. Los dispositivos conectados también comparten actualizaciones en tiempo real a través de una red en malla. El modo local es ideal para personal de campo operando en entornos controlados (expos, puntos de control, mostradores de inscripción). Importante: dado que la base de datos completa se descarga al dispositivo, el modo local solo debe usarse en dispositivos de confianza y autorizados. Se muestra un aviso de privacidad en el Panel de Configuración para recordar las posibles implicaciones en protección de datos (RGPD, LOPD).
Modo remoto — La Aplicación de Ejecución no descarga datos de participantes. En su lugar, cada consulta de búsqueda se envía directamente al servidor y los resultados llegan bajo demanda. Ningún registro de participante se almacena en el dispositivo. El caso de uso típico es compartir la URL del workflow directamente con los participantes — por ejemplo, para que puedan consultar sus datos de inscripción, ver sus resultados de carrera o rellenar su propia información de perfil. Dado que el enlace del workflow se distribuye públicamente a los propios participantes, el modo remoto garantiza que los datos privados de la base de datos completa de participantes nunca se transfieran a los dispositivos de los usuarios finales.
Cuándo usar cada modo:
| Local | Remoto | |
|---|---|---|
| Audiencia | Personal de campo, voluntarios, operadores | Los propios participantes, acceso público |
| Datos en el dispositivo | Base de datos completa de participantes | Ninguno — se obtienen por consulta |
| Soporte offline | Sí, tras la carga inicial | No — requiere conexión constante |
| Velocidad de búsqueda | Instantánea (local) | Depende de la latencia de red |
| Privacidad | Todos los datos se descargan al dispositivo | Solo se devuelven los registros consultados |
Lo primero que debes elegir al crear un workflow es su modo de datos. Es una decisión fundamental que determina cómo se gestionan los datos de los participantes. Se presentan dos tarjetas seleccionables:
El resto del formulario de configuración solo aparece tras seleccionar un modo. Ver Modos de Datos: Local y Remoto para una comparación detallada.
| Campo | Descripción |
|---|---|
| Nombre | Un nombre descriptivo para el workflow (ej: "Recogida de dorsal", "Check-in 10K"). |
| PIN | El código numérico que los operadores introducirán para acceder a este workflow. |
| Autenticación | Si se habilita, los operadores deben iniciar sesión antes de usar el workflow. Solo disponible en modo local — los workflows remotos no tienen operador. |
| Evento | Opcionalmente, restringe el workflow a un único evento dentro de la competición. |
Añade uno o más campos de búsqueda. Para cada campo configuras:
equals para coincidencia exacta o contains para coincidencia parcial.También configuras el modo de búsqueda — OR (coincidir con cualquier campo) o AND (coincidir con todos los campos).
Define qué campos del participante son visibles cuando el operador elige de la lista de resultados:
Define los campos que se van a modificar:
Para cada campo de acción:
$timestamp para la fecha/hora actual, $currentUser para el operador que ha iniciado sesión).Cuando un campo de acción está configurado como automático o dinámico, el operador lo ve pre-rellenado y deshabilitado — el valor resuelto es visible pero no se puede editar. Para los campos manuales, si el participante ya tiene un valor en ese campo, se muestra como placeholder para que el operador conozca el estado actual. Los campos de foto muestran la foto existente del participante como miniatura.
Los campos que el operador deja en blanco se ignoran — solo se guardan los campos con un valor real. Esto significa que los operadores pueden saltarse campos opcionales sin sobrescribir datos existentes con valores vacíos.
La pantalla de confirmación solo muestra los campos que realmente han cambiado — si el nuevo valor de un campo es igual al anterior, se oculta de la revisión. Los campos de foto se muestran como miniaturas que se pueden tocar para abrir una vista previa a pantalla completa.
Una vez guardado, puedes:
En modo local, toda la base de datos de participantes se descarga en la primera carga. Si se pierde la conexión, las operaciones pendientes se almacenan localmente y se reintentan automáticamente cuando se restablece la conexión. La barra de estado en la parte superior muestra cuántos participantes están cargados y el estado de sincronización con el servidor.
En modo remoto, cada búsqueda se envía al servidor en tiempo real. No se precargan datos, por lo que el workflow requiere conexión de red durante todo su uso. La barra de estado refleja el estado de la conexión en lugar de un recuento de datos locales.
Cada transición entre pasos se anima con un efecto de fundido suave, proporcionando una retroalimentación visual clara a medida que el workflow avanza.
El sistema incluye nueve ejemplos preconfigurados que demuestran patrones comunes. Puedes probar cada uno directamente desde los enlaces siguientes.
Escenario: Un operador en la expo necesita asignar un número de chip de cronometraje a un participante.
| Paso | Configuración |
|---|---|
| Query | Buscar por dorsal (escaneable, auto-envío). |
| Select | Selección única. Muestra dorsal (enfatizado), nombre y apellido. |
| Action | Un campo manual: número de chip (entrada numérica, rango 1–99999). Datos del participante visibles. |
| Confirm | Habilitado. Muestra dorsal, nombre y chip para revisión. |
Escenario: Un check-in rápido de escaneo y listo en la entrada. El operador escanea un código de barras; el sistema registra la marca de tiempo y quién realizó el check-in.
| Paso | Configuración |
|---|---|
| Query | Buscar por número de boletín (escaneable, auto-envío). |
| Select | Selección única. Muestra dorsal, nombre, apellido. |
| Action | Dos campos automáticos: checkin = $timestamp, operador = $currentUser. Sin entrada manual. |
| Confirm | Deshabilitado — el check-in ocurre instantáneamente. |
La autenticación está habilitada para que cada check-in quede vinculado a un operador identificado.
Escenario: Capturar la foto de un participante en la expo para acreditaciones o galerías de resultados.
| Paso | Configuración |
|---|---|
| Query | Buscar por dorsal (escaneable, auto-envío). |
| Select | Selección única. Muestra dorsal, nombre, apellido. |
| Action | Un campo manual: foto (entrada de tipo foto). |
| Confirm | Habilitado. Muestra dorsal, nombre y la foto capturada. |
Más allá de los ejemplos incluidos, aquí tienes workflows que puedes diseñar para otros escenarios:
Escenario: Controlar la entrada a zonas restringidas (área VIP, sala de prensa, zona solo atletas) en un recinto de eventos.
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por ID de credencial o código QR (escaneable, auto-envío). |
| Select | Selección única. Mostrar nombre, tipo de credencial y zonas autorizadas. |
| Action | Campos auto: marcaTiempoAcceso = $timestamp, operadorPuerta = $currentUser, zona = valor estático (ej: "VIP"). |
| Confirm | Deshabilitado para rapidez, o habilitado para zonas de alta seguridad. |
Habilita la autenticación para que cada evento de acceso quede atribuido a un operador de puerta. Limita el workflow a un evento específico si diferentes eventos tienen distintas zonas restringidas.
Escenario: En el registro o check-in, los participantes necesitan proporcionar o actualizar datos de perfil que faltan — contacto de emergencia, talla de camiseta, información médica — antes de poder competir.
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por dorsal o nombre. |
| Select | Selección única. Mostrar dorsal, nombre y un campo de "estado del perfil" (enfatizado) para detectar rápidamente perfiles incompletos. |
| Action | Múltiples campos manuales: contacto de emergencia (texto, máscara de teléfono), talla de camiseta (desplegable: S/M/L/XL), condiciones médicas (texto), grupo sanguíneo (desplegable). |
| Confirm | Habilitado, con todos los campos actualizados mostrados para que el participante los verifique. |
Escenario: Registrar quién ha recogido su kit de carrera, chip de cronometraje u otros materiales.
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por dorsal (escaneable, auto-envío) o por nombre. |
| Select | Selección única. Mostrar dorsal, nombre, estado del kit. |
| Action | Campos auto: kitRecogido = estático "true", marcaTiempoRecogida = $timestamp, operadorRecogida = $currentUser. |
| Confirm | Deshabilitado para rapidez. |
Escenario: Un participante quiere cambiar del 10K al 5K, o cambiar su categoría de edad, en el mostrador de la expo.
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por dorsal o nombre. |
| Select | Selección única. Mostrar evento actual, categoría, dorsal, nombre (evento y categoría enfatizados). |
| Action | Campos manuales: nuevo evento (desplegable con los eventos de la competición), nueva categoría (desplegable). |
| Confirm | Habilitado — el operador y el participante revisan el cambio juntos. |
Escenario: Durante una carrera, el personal médico necesita etiquetar a un participante con un informe de incidencia (llegada a la carpa médica, tratamiento administrado, estado).
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por dorsal (escaneable). |
| Select | Selección única. Mostrar dorsal, nombre, contacto de emergencia, grupo sanguíneo. |
| Action | Campos manuales: tipo de incidencia (desplegable: deshidratación/lesión/cardíaco/otro), tratamiento (texto), gravedad (desplegable: verde/amarillo/rojo). Campos auto: marcaTiempoMedico = $timestamp, medico = $currentUser. |
| Confirm | Habilitado — verificar el registro médico antes de guardar. |
Escenario: En un evento grande, los coordinadores asignan tareas o zonas a los voluntarios registrados.
| Paso | Configuración Sugerida |
|---|---|
| Query | Buscar por ID de voluntario o nombre. |
| Select | Selección múltiple habilitada (asignar la misma tarea a un grupo). Mostrar nombre, asignación actual, disponibilidad. |
| Action | Campos manuales: asignación de zona (desplegable), turno (desplegable: mañana/tarde/día completo). Campo auto: asignadoPor = $currentUser. |
| Confirm | Habilitado — revisar toda la asignación por lotes antes de confirmar. |
Escenario: Comparte un enlace con los participantes para que puedan consultar sus propios datos de inscripción — dorsal, evento, categoría, hora de salida — sin exponer la base de datos completa.
| Paso | Configuración Sugerida |
|---|---|
| Modo de Datos | Remoto — no se almacenan datos en el dispositivo del participante. |
| Query | Buscar por dorsal (entrada numérica) o email (máscara de email). Sin escaneo ni auto-envío — dejar que el participante escriba a su ritmo. |
| Select | Selección única. Mostrar dorsal, nombre, apellido, evento. |
| Action | Sin campos de acción — mostrar los datos del participante para que pueda ver su inscripción completa. |
| Confirm | Deshabilitado — no hay nada que modificar. |
Este workflow es de solo lectura: permite a los participantes verificar sus datos sin modificar nada. Ideal para incluir en un email previo a la carrera o publicar en redes sociales.
Escenario: Antes del día de la carrera, los participantes necesitan rellenar información de perfil que falta — teléfono, contacto de emergencia, talla de camiseta — desde su propio dispositivo.
| Paso | Configuración Sugerida |
|---|---|
| Modo de Datos | Remoto — el participante accede al workflow desde su dispositivo personal. |
| Query | Buscar por documento de identidad (máscara de DNI) o número de confirmación de inscripción. |
| Select | Selección única. Mostrar dorsal, nombre, apellido. |
| Action | Campos manuales: teléfono (máscara de teléfono), contacto de emergencia (máscara de teléfono), talla de camiseta (desplegable: XS/S/M/L/XL/XXL). Datos del participante visibles para que vea su información actual. |
| Confirm | Habilitado — el participante revisa sus cambios antes de enviar. |
Distribuye el enlace del workflow por email tras la inscripción. Los participantes completan su perfil desde casa, reduciendo las colas en la expo.
$currentUser permite registrar exactamente quién realizó cada operación./test/:sampleName) para familiarizar a los operadores antes de ir en vivo.