Notifications
AuditorIA entrega notificaciones en tiempo real para avisarte cuando tus tareas terminan, cuando hay un incidente o cuando el equipo de administración envía un anuncio. Todo sin refrescar la página.
Campana de notificaciones
El icono de notificaciones vive en el encabezado, a la izquierda del avatar.
| Indicador | Significado |
|---|---|
| No badge | No hay notificaciones pendientes |
| Unread counter | Cantidad de notificaciones sin leer |
| Red indicator | Al menos una nueva notificación llegó en esta sesión |
Clickeala para abrir el panel lateral con el listado completo.
Panel de notificaciones
Cada entrada muestra:
| Campo | Descripción |
|---|---|
| Icono de tipo | success - error - warning - info |
| Título | Resumen del evento (ej. "Transcripción completada") |
| Descripción | Detalle corto (ej. "Tarea #1234 lista para revisar") |
| Timestamp relativo | hace 2 min, ayer 14:32, fecha absoluta si >7 días |
| CTA | Link directo al recurso (abre el visor, el reporte, la config.) |
| Estado | Leída / sin leer (barra lateral coloreada) |
Acciones rápidas
- Clic en la notificación → abre el recurso y marca como leída.
- Ícono ✓ → marcar como leída sin abrir.
- Ícono ✕ → descartar (se borra definitivamente).
- Botón Marcar todas como leídas en el header del panel.
- Botón Limpiar leídas en el footer (soft delete, queda en el log).
Retención
Por default, las notificaciones se guardan 24 horas en Redis y luego se archivan. Tu admin puede cambiar el TTL (ver notification-system.md).
Categorías de notificaciones
Personales
Llegan solo al usuario destinatario.
| Tipo | Trigger | Ejemplo |
|---|---|---|
| Tarea completada | status: completed de una tarea creada por vos | "Transcripción lista: Reclamo_cliente_001.mp3" |
| Error en tarea | status: error de una tarea propia | "No se pudo transcribir Audio_047.wav" |
| Mención en comentario | Alguien te mencionó @usuario en una auditoría | "@vos: revisá este segmento" |
| Asignación de rol | Cambio en tus roles Keycloak | "Ahora sos Supervisor en campaña 162" |
| Cambio de contraseña | Keycloak registró cambio | "Tu contraseña fue actualizada" |
De equipo
Para grupos (campaña, rol, departamento).
| Tipo | Trigger | Destinatarios |
|---|---|---|
| Cambio en campaña | Edición de la campaña (horario, script, scoring) | Todos los miembros de la campaña |
| Nueva directiva de compliance | Admin publica un script obligatorio nuevo | Todos los operadores de esa campaña |
| Resumen diario | Cron 08:00 AM | Supervisores |
Globales
Generadas por Administradores o el sistema; llegan a todos los usuarios activos.
| Tipo | Ejemplo |
|---|---|
| Anuncio | "Mantenimiento programado sábado 03-05" |
| Nueva feature | "Ya podés exportar reportes en XLSX" |
| Alerta de servicio | "Worker Deepgram con latencia elevada" |
| Incidente | "Estamos investigando errores 500 intermitentes" |
Arquitectura en tiempo real
AuditorIA usa Server-Sent Events (SSE) con Redis Pub/Sub por detrás:
Detalles técnicos
| Aspecto | Valor |
|---|---|
| Protocolo | HTTP/1.1 con text/event-stream |
| Heartbeat | Keep-alive cada 15s (:\n\n) |
| Retry | Reconexión automática con retry: 3000ms |
| Canales Redis | notifications:{userId} (personal), notifications:global (broadcast) |
| TTL default | 24h (configurable por tenant) |
| Optimistic UI | El frontend actualiza al instante; sincroniza al recibir el ACK del backend |
Ver profundidad técnica en Real-time events y Notification types.
Preferencias personales
Menú: Configuración → Notificaciones.
Podés configurar por categoría:
| Categoría | Canal in-app | Canal email | Canal webhook |
|---|---|---|---|
| Tarea completada | Yes | Configurable | Configurable |
| Error en tarea | Yes | Configurable | Configurable |
| Mención | Yes | Configurable | — |
| Anuncios globales | Yes | — | — |
| Resumen diario | Configurable | Configurable | — |
Leyenda: default active, Configurable, — not available.
Ejemplos de configuración
- "Solo email si es crítico" → apagá in-app para Error en tarea, dejá el email.
- "Zero ruido" → desactivá Resumen diario si ya lo tenés en Slack.
- "Integración con PagerDuty" → activá webhook y pasá la URL al admin.
Webhooks
Los webhooks permiten integrar con Slack, Teams, PagerDuty u otros sistemas. Requieren configuración en Integraciones.
Troubleshooting
| Síntoma | Diagnóstico | Solución |
|---|---|---|
| No llegan notificaciones | SSE desconectado (proxy que cierra conexiones) | Revisar que el proxy no tenga proxy_buffering on |
| Badge desfasado (suma 1 extra) | Race condition optimistic UI | Refrescar la página |
| Notificaciones duplicadas | Múltiples pestañas con el mismo usuario | Cerrar pestañas; cada tab abre su propia conexión SSE |
| "Permission denied" al clickear CTA | Cambio de rol sin refrescar | Cerrar sesión y volver a ingresar |
| No recibo email | Filtro de spam o dominio no whitelisteado | Agregar no-reply@auditoria.app a contactos |