Digi-Flow: Sistema de Gestión de Turnos Digitales para Negocios
Digi-Flow - Sistema de Gestion de Turnos
Guia Completa del Sistema de Turnos Digitales
Digi-Flow es un sistema de gestion de turnos digitales que permite a los negocios organizar la atencion al cliente mediante tickets virtuales. Los clientes solicitan un turno desde una pantalla tactil o dispositivo movil, y los agentes del negocio atienden los turnos en orden de prioridad, con notificaciones sonoras y visualizacion en tiempo real en pantallas del local.
Caso de Uso: Banco o Negocio con Atencion Presencial
Imagina un banco con 3 ventanillas. El cliente Marcos llega, se acerca a la tablet del banco y solicita un turno para 'Servicio al Cliente'. Recibe el ticket SC007. Marcos espera observando la pantalla del TV en la sala. Un agente en Ventanilla 2 hace clic en 'Siguiente Turno', y el sistema le asigna el turno SC007. La pantalla del TV muestra 'SC007 - Ventanilla 2' con una notificacion sonora. Marcos se dirige a Ventanilla 2, el agente lo marca como 'Recibido', lo atiende y al terminar lo marca como 'Completado'.
Como Funciona
El sistema consta de 3 partes principales:
- Pantalla de Solicitud (digi-flow): URL publica donde el cliente solicita su turno. Ingresa su cedula/RNC/pasaporte, selecciona el servicio y recibe un numero de ticket. Accesible via tablet, kiosko o celular.
- Pantalla de Display (digi-flow-view): Pantalla para TV o monitor del local. Muestra el turno actual siendo llamado, la posicion donde el cliente debe dirigirse, y el historial de turnos recientes. Protegida por PIN.
- Dashboard de Administracion: Panel dentro de Digimart donde los agentes toman turnos, los marcan como atendidos, ven metricas y gestionan la configuracion.
Primeros Pasos - Configuracion Inicial
- Activar Digi-Flow: Ve a Digi-Flow > Configuracion y activa el modulo con el interruptor 'Habilitado'.
- Crear Categorias de Servicio: Ve a Digi-Flow > Categorias y crea los servicios que ofreces (ej: 'Caja General' con prefijo 'A', 'Servicio al Cliente' con prefijo 'SC').
- Asignar Operadores: Ve a Digi-Flow > Operadores y asigna los usuarios del sistema que atenderan turnos. Cada operador necesita una posicion (ej: 'Caja 1', 'Ventanilla 2') y las categorias que atiende.
- Configurar PIN del Display: En Configuracion, establece un PIN para la pantalla de TV.
- Compartir URL de Solicitud: Copia la 'URL para solicitar turnos' desde Configuracion y colocala como QR impreso o en la tablet del local.
- Abrir Display en TV: En la TV del local, abre la 'URL del display' e ingresa el PIN configurado.
Pantalla de Solicitud de Turnos (digi-flow)
URL y Acceso
La URL de solicitud tiene el formato: /auth/static/{tenantId}/digi-flow?key={accessKey}. Esta URL se encuentra en Digi-Flow > Configuracion > 'URL para solicitar turnos'. Es una pagina publica que no requiere inicio de sesion. El parametro key (accessKey) es una clave unica generada automaticamente que protege el acceso. Si se compromete, puede regenerarse desde Configuracion.
Flujo del Cliente
- Paso 1 - Identificacion: El cliente ingresa su cedula, RNC o pasaporte usando el teclado numerico tactil en pantalla. Presiona 'OK' para continuar.
- Paso 2 - Seleccion de Servicio: Se muestran las categorias de servicio disponibles como botones grandes con color. Las categorias con cupos agotados (si tienen limite diario) aparecen deshabilitadas.
- Paso 3 - Nombre (opcional): El cliente puede ingresar su nombre. Este paso es opcional y se puede omitir presionando 'Confirmar Turno' directamente.
- Paso 4 - Ticket Emitido: Se muestra el numero de ticket asignado (ej: 'A015') junto con la cantidad de personas antes en la cola. El cliente debe observar la pantalla del display y esperar a ser llamado.
Diseno de la Pantalla
La pantalla esta disenada para dispositivos tactiles (tablets, kioskos). Usa colores claros, botones grandes (72px de alto) y un teclado numerico estilo telefono. El header muestra el logo, nombre y direccion del negocio, personalizado con el color primario del tenant.
Modos de Entrega del Ticket
- Pantalla (screen): El ticket se muestra en la pantalla. El cliente le toma foto o lo memoriza. Modo por defecto.
- Impresion (print): El ticket se imprime automaticamente en la impresora termica conectada. Requiere la app de escritorio (electron-background-service).
- Ambos (both): Se muestra en pantalla y se imprime simultaneamente.
Si la opcion 'Mostrar QR' esta activada, la pantalla de confirmacion incluye un codigo QR que el cliente puede escanear con su celular para ver un recibo digital con los datos de su turno.
Pantalla de Display (digi-flow-view)
URL y Acceso
La URL del display tiene el formato: /auth/static/{tenantId}/digi-flow-view. Esta URL se encuentra en Digi-Flow > Configuracion > 'URL del display (TV)'. A diferencia de la pantalla de solicitud, el display esta protegido por un PIN que se configura desde la administracion.
PIN de Acceso
El PIN se configura en Digi-Flow > Configuracion > 'PIN del Display'. Al abrir la URL del display, se muestra una pantalla de ingreso de PIN. Una vez autenticado, el navegador recuerda la sesion por 24 horas. Si el PIN se cambia, las sesiones activas se invalidan y deben ingresar el nuevo PIN.
Contenido del Display
- Header: Logo, nombre y direccion del negocio con el color primario del tenant.
- Panel Izquierdo (55%): Muestra el turno actualmente siendo llamado con un numero grande, la posicion donde el cliente debe dirigirse (ej: 'Ventanilla 2'), y la categoria del servicio. Si hay multiples turnos llamados simultaneamente, los adicionales se muestran como chips debajo.
- Panel Derecho (45%): Lista de turnos recientes con su numero, posicion, categoria y estado (Atendiendo / Atendido).
- Badge de Espera: Muestra la cantidad de tickets actualmente en espera.
- Boton de Volumen: Permite silenciar o activar el sonido del display.
Notificacion Sonora
Cuando un turno es llamado, el display reproduce un sonido de notificacion. El sonido se repite automaticamente segun la configuracion: el numero de repeticiones se controla con 'Repeticiones de notificacion' y el intervalo entre cada repeticion con 'Intervalo entre repeticiones'. Por ejemplo, con 3 repeticiones cada 30 segundos, el sonido se reproduce 4 veces en total (1 inicial + 3 repeticiones). El sonido se detiene cuando el agente marca el turno como 'Recibido'.
Importante: Los navegadores requieren que el usuario haga clic al menos una vez en la pagina para desbloquear la reproduccion de audio. Al abrir el display, haga clic en cualquier parte de la pantalla para activar el sonido.
Dashboard de Administracion
Pagina: Turnos (Dashboard Principal)
Es la pagina principal de Digi-Flow, accesible desde el menu lateral. Muestra el estado en tiempo real de la cola de atencion.
- Metricas (parte superior): Tarjetas con indicadores clave: tickets en espera, atendiendo, completados hoy, espera promedio, atencion promedio y ausencias.
- Tickets Urgentes: Si hay tickets que superan los umbrales de urgencia configurados (por tiempo de espera, prioridad alta o tiempo de atencion excesivo), aparecen destacados con borde rojo en la parte superior.
- Cola por Categoria: Columnas que muestran los tickets agrupados por categoria de servicio. Cada ticket muestra su numero, nombre del cliente, tiempo de espera y acciones disponibles.
- Boton 'Siguiente Turno': Toma el siguiente ticket disponible segun el modelo de prioridad configurado y lo asigna al agente actual. El ticket pasa a estado 'Llamado' y se notifica en el display.
- Boton '+ Nuevo Turno': Permite crear un ticket manualmente (util si la maquina de solicitud se dana). Se selecciona la categoria, nombre y telefono del cliente.
Acciones sobre un Ticket
- Recibido: El cliente llego a la posicion. Cambia el estado de 'Llamado' a 'Atendiendo'. Detiene la repeticion de sonido en el display.
- No llego: El cliente no se presento. Marca el ticket como ausente (no-show) y permite al agente tomar el siguiente turno.
- Completar: El agente termino de atender al cliente. Mueve el ticket al historial.
- Cancelar: Cancela un ticket en espera (elimina de la cola).
Permisos de Operacion
Los usuarios con rol systemSuperAdmin o tenantSuperAdmin pueden tomar turnos sin estar registrados como operadores. En ese caso, pueden atender todas las categorias y su posicion se muestra como 'Admin'. Para usuarios normales, deben ser asignados como operadores en Digi-Flow > Operadores con una posicion y categorias especificas.
Pagina: Categorias
Permite crear, editar y eliminar las categorias de servicio. Cada categoria define un tipo de atencion que el negocio ofrece.
- Nombre: Nombre visible del servicio (ej: 'Caja General', 'Servicio al Cliente').
- Prefijo: Letras que preceden al numero del ticket (ej: 'A' genera tickets A001, A002...). Debe ser unico por empresa. No se puede cambiar despues de crear la categoria.
- Color: Color visual para identificar la categoria en el dashboard y display.
- Prioridad: Nivel de prioridad (1 = normal, mayor = mas urgente). Afecta el orden de atencion en los modelos de prioridad.
- Tiempo estimado de atencion: Tiempo promedio en segundos que toma atender un ticket de esta categoria. Usado en el calculo de prioridad ponderada.
- Max tickets por dia: Limite opcional de tickets diarios. Una vez alcanzado, la categoria aparece como 'Cupos agotados' en la pantalla de solicitud.
- Orden: Orden visual en la pantalla de solicitud.
Pagina: Operadores
Permite asignar usuarios del sistema como operadores de Digi-Flow. Cada operador necesita:
- Usuario: El usuario del sistema que atendera turnos.
- Posicion: El lugar fisico donde atiende (ej: 'Caja 1', 'Ventanilla 2', 'Oficina 3'). Esta posicion es la que ve el cliente en la pantalla del display cuando su turno es llamado. Debe ser unica por empresa.
- Categorias: Las categorias de servicio que este operador puede atender. Solo recibira turnos de estas categorias al hacer clic en 'Siguiente Turno'.
Pagina: Historial
Muestra el registro completo de todos los tickets emitidos. Permite filtrar por estado (Esperando, Llamado, Atendiendo, Completado, Ausente, Cancelado), por categoria, y por rango de fechas. Cada registro muestra el numero de turno, nombre del cliente, categoria, estado, posicion asignada, operador que lo atendio, fuente (Publico o Manual) y fecha de creacion.
Pagina: Configuracion
Pagina central de configuracion del modulo. Incluye las siguientes secciones:
Enlaces Publicos
- URL para solicitar turnos: El enlace completo que los clientes usaran para solicitar turnos. Copielo y coloquelo como codigo QR en su local o en la tablet de recepcion.
- URL del display (TV): El enlace para abrir la pantalla del display en la TV del local.
- Regenerar clave de acceso: Genera una nueva clave (accessKey) para la URL de solicitud. La URL anterior dejara de funcionar. Use esto si la clave se compromete.
PIN del Display
Establece o cambia el PIN necesario para acceder a la pantalla del display (digi-flow-view). El PIN se almacena encriptado. Al cambiarlo, cualquier sesion activa del display debera ingresar el nuevo PIN.
Configuracion General
- Habilitado: Interruptor principal del modulo. Si esta desactivado, no se pueden crear tickets ni operar turnos.
- Modelo de prioridad: Define como se calcula el siguiente turno. Opciones: FIFO (orden de llegada), Prioridad Ponderada (combina prioridad, tiempo de espera y tiempo estimado de atencion - recomendado), Prioridad Estricta (siempre atiende la prioridad mas alta primero).
- Max tickets activos: Limite total de tickets simultaneos en estados activos (esperando + llamados + atendiendo).
- Timeout no-show: Segundos de espera antes de considerar que un cliente no se presento.
- Repeticiones de notificacion: Cuantas veces se repite el sonido en el display cuando un turno es llamado.
- Intervalo entre repeticiones: Segundos entre cada repeticion del sonido.
Entrega de Ticket
- Modo de entrega: Solo pantalla, Impresion termica, o Ambos.
- Mostrar QR: Si esta activo, la pantalla de confirmacion incluye un codigo QR con los datos del ticket.
Umbrales de Urgencia
Configuran cuando un ticket se considera urgente en el dashboard. Los tickets urgentes se destacan con borde rojo para que los agentes los prioricen.
- Espera urgente: Segundos de espera tras los cuales un ticket en cola se marca como urgente (defecto: 900 = 15 minutos).
- Nivel prioridad urgente: Tickets con prioridad mayor o igual a este valor se marcan como urgentes (defecto: 3).
- Atencion urgente: Segundos de atencion tras los cuales un ticket siendo atendido se marca como urgente (defecto: 1800 = 30 minutos).
Sonido
- Sonido habilitado: Activa o desactiva la notificacion sonora.
- Tipo de sonido: Campana, Chime o Ding.
- Volumen: Control de volumen de 0 a 1.
Flujo Completo de Atencion
- El cliente solicita un turno desde la pantalla de solicitud (digi-flow).
- El ticket aparece en el dashboard de los agentes en la cola de la categoria correspondiente.
- Un agente hace clic en 'Siguiente Turno'. El sistema selecciona el ticket con mayor prioridad y lo asigna al agente.
- El turno aparece en el display (digi-flow-view) con la posicion del agente (ej: 'Ventanilla 2'). Suena la notificacion.
- Si el cliente no llega, la notificacion se repite segun la configuracion. El agente puede marcar 'No llego' para continuar con el siguiente.
- Cuando el cliente llega, el agente hace clic en 'Recibido'. El ticket pasa a estado 'Atendiendo'.
- Al terminar la atencion, el agente hace clic en 'Completar'. El ticket pasa al historial.
- El agente puede tomar el siguiente turno inmediatamente.
Seguridad
- Access Key (digi-flow): Clave unica UUID que protege la URL de solicitud de turnos. Se puede regenerar desde Configuracion si se compromete.
- PIN (digi-flow-view): Clave alfanumerica para acceder al display. Se almacena encriptada con bcrypt. Tiene limite de 5 intentos por minuto por IP para prevenir fuerza bruta.
- Token del Display: Al ingresar el PIN correctamente, se genera un token de sesion valido por 24 horas. El display no necesita reingresar el PIN cada vez que se refresca la pagina.
- Aislamiento por Tenant: Cada empresa solo ve y opera sobre sus propios datos. Los tickets, categorias y operadores son completamente independientes entre empresas.
Limpieza Automatica
Digi-Flow ejecuta una tarea automatica diaria a la 1:00 AM (hora Santo Domingo) que realiza las siguientes acciones: cancela automaticamente los tickets en espera del dia anterior, marca como ausente los tickets llamados que quedaron sin atender, y archiva tickets con mas de 90 dias de antiguedad.
Modelos de Prioridad
- FIFO (First In, First Out): El primer ticket en llegar es el primero en ser atendido. Simple y predecible.
- Prioridad Ponderada (recomendado): Combina tres factores: la prioridad del ticket (segun la categoria), el tiempo que lleva esperando (los tickets mas antiguos suben de prioridad automaticamente) y el tiempo estimado de atencion. Esto garantiza que ningun ticket espere indefinidamente, incluso los de baja prioridad.
- Prioridad Estricta: Siempre atiende primero los tickets con mayor prioridad. Si hay muchos tickets de alta prioridad, los de baja prioridad podrian esperar mucho tiempo.
Concurrencia y Colision de Turnos
Si dos agentes hacen clic en 'Siguiente Turno' al mismo tiempo, el sistema garantiza que cada uno reciba un ticket diferente. Esto se logra mediante un mecanismo de bloqueo atomico a nivel de base de datos (SELECT FOR UPDATE SKIP LOCKED). El segundo agente automaticamente recibe el siguiente ticket disponible sin esperar ni causar errores.
Preguntas Frecuentes
Que pasa si la maquina de solicitud de tickets se dana?
Los agentes pueden crear tickets manualmente desde el dashboard usando el boton '+ Nuevo Turno'. Estos tickets se crean con fuente 'Manual' y entran a la cola normalmente. En los reportes, se pueden filtrar para auditar cuantos fueron manuales vs. publicos.
Puedo limitar los turnos por dia para un servicio?
Si. En la configuracion de cada categoria, establece el campo 'Max tickets/dia'. Una vez alcanzado el limite, la categoria aparece como 'Cupos agotados' en la pantalla de solicitud y no se pueden crear mas tickets para ese servicio hasta el dia siguiente.
Los contadores de tickets se reinician cada dia?
Si. Los contadores de cada categoria se reinician automaticamente al inicio de cada nuevo dia. El primer ticket del dia sera A001, B001, etc.
Necesito internet para usar el display?
Si. El display necesita conexion a internet para recibir actualizaciones en tiempo real del servidor. Si la conexion se pierde temporalmente, el display intentara reconectarse automaticamente cada 5 segundos.
Como configuro un NFC tag para solicitar turnos?
Compre un NFC tag (disponible en Amazon por menos de $2 USD) y grabelo con la URL de solicitud de turnos. Peguelo en la entrada del local o en el mostrador. Cuando un cliente acerque su celular, se abrira automaticamente la pantalla de solicitud de turno sin necesidad de escanear un QR.
Requisitos para que Digi-Flow Funcione
- Digi-Flow debe estar activado en Configuracion.
- Debe existir al menos una categoria de servicio activa.
- Para que la pantalla del display funcione, el PIN debe estar configurado.
- Los dispositivos (tablet de solicitud, TV del display, computadoras de agentes) deben tener conexion a internet.
- Para la impresion termica de tickets, se requiere la app de escritorio (electron-background-service) con una impresora termica conectada.