Smart Notify vs Unread: notificaciones internas en GLPI

Comparativa entre el módulo Smart Notify (NexTool) y el plugin Unread para notificaciones internas en GLPI, sin depender del correo. Tabla criterio por criterio, veredicto por escenario, el trade-off de polling que importa en la operación y la configuración que usamos en producción.

En este artículo7 secciones

El correo no es una notificación en tiempo real. Para que un técnico sepa en el momento que un ticket cambió, el aviso tiene que aparecer dentro de GLPI. Dos soluciones lo resuelven por caminos opuestos: el plugin Unread resalta en los listados lo que aún no se ha visto, y el módulo Smart Notify (NexTool) coloca una campana global en la barra de navegación, con sonido y preferencias por usuario. Y hay un factor que decide antes que cualquier función: la versión de GLPI que operas.

El contexto: por qué el correo solo no basta

En GLPI estándar, toda notificación sale por correo. En la práctica, el técnico que mantiene el sistema abierto todo el día termina teniendo que:

  1. Alternar entre la cola de GLPI y la bandeja de entrada todo el tiempo;
  2. Rebuscar los correos de GLPI entre decenas de otros;
  3. Hacer clic en el enlace del correo solo para volver a un ticket que ya estaba en pantalla.

El resultado es conocido: respuestas tardías, follow-ups que nadie vio, validaciones detenidas esperando un clic. La notificación interna corta ese ir y venir - pero "interna" tiene dos significados muy distintos, y ahí es justo donde los dos plugins divergen.

Dos filosofías diferentes

Unread es un plugin de la comunidad con un alcance reducido: marcar visualmente, en los listados, los elementos (tickets, follow-ups) que aún no has abierto. Es pasivo - el resaltado aparece cuando ya estás mirando la lista. Sin sonido, sin campana, sin preferencia por usuario. Su gran ventaja es un coste operativo cercano a cero: nada corre en segundo plano.

Smart Notify (módulo de NexTool, GLPI 11) es activo. Agrega 11 fuentes de eventos que ya existen en GLPI - follow-ups, tareas, validaciones y soluciones de tickets, problemas y cambios, más documentos adjuntos y avisos manuales del administrador - y lo presenta todo en una campana en la barra de navegación, visible en cualquier pantalla. Trae contador de no leídas, sonido por prioridad, sincronización entre pestañas y un panel de preferencias donde cada técnico activa o desactiva lo que quiere recibir. Un punto clave: no crea eventos nuevos, solo reúne y señala lo que GLPI ya registró.

Comparativa directa

CriterioSmart Notify (NexTool)Unread
NaturalezaMódulo NexTool para GLPI 11Plugin de la comunidad
Dónde aparece el avisoCampana global en la barra de navegación, en cualquier pantallaResaltado en el listado de elementos
Modelo de actualizaciónPolling en segundo plano (15 a 120s)Al cargar el listado
Fuentes de eventos11 (follow-up, tarea, validación, solución, documento y avisos manuales de ticket/problema/cambio)Estado leído / no leído de los elementos
Sonido por prioridadSí (4 tonos: subtle, default, alert, alarm)No
Preferencias por usuarioSí (11 tipos + sonido, por técnico)No
Sincronización entre pestañasSí (BroadcastChannel + respaldo en localStorage)No
Separador "Nuevos mensajes" en la línea de tiempoSíNo
Indicador en los listadosPuntos rojos por elemento no leídoResaltado de la fila/elemento
Aviso manual del administrador (broadcast)Sí (segmentación: todos, usuario, grupo, entidad)No
Limpieza automáticaSí (cron diario, retención configurable)No aplica
Coste en la base de datos por usuario activo1 consulta por ciclo de pollingCercano a cero en segundo plano
GLPI compatible11 (glpi_major 11 en el manifiesto)Depende de la versión del plugin instalado
PrecioGratuitoGratuito

El trade-off que importa en la operación

En el mantenimiento de GLPI para clientes, el punto que siempre aparece no es la lista de funciones - es el coste del polling. Smart Notify actualiza la campana por polling (intervalo configurable de 15 a 120 segundos), no por WebSocket. Cada técnico con la pantalla abierta lanza una consulta a la base de datos por ciclo. En una operación con decenas de técnicos simultáneos, dejar el intervalo en 15s multiplica esas consultas sin ganancia real de percepción. Por eso, en producción, lo calibramos entre 30 y 45 segundos: imperceptible para el usuario y tranquilo para la base de datos. El módulo ayuda de dos maneras - pausa el polling cuando la pestaña queda inactiva (evento visibilitychange) y llama a session_write_close() al inicio de la petición de lectura, para que el poll no quede atascado detrás del bloqueo de la sesión del propio usuario.

El error más común que vemos en soporte es que el técnico se queje de que "no recibe notificación de su propio follow-up". Es intencional: Smart Notify excluye las acciones del propio usuario - no se te avisa de lo que tú mismo escribiste. Otro ajuste que siempre hacemos es desactivar la notificación de documentos por defecto (es ruidosa en instancias que adjuntan muchos archivos) y mantener solo los eventos que exigen acción. Y el factor que decide el proyecto de entrada: Smart Notify es GLPI 11. Si el cliente sigue en GLPI 10, la conversación cambia - lo realista ahí es Unread (o un resaltado de lista equivalente), porque la campana no corre en el 10.

Configuración que usamos en producción

# Smart Notify - configuracion base (GLPI 11)
# Panel NexTool > Modulos > Smart Notify > pestaña Configuracion
refresh_interval   = 30      # segundos (rango 15-120); 30-45 es el punto de equilibrio
max_notifications  = 50
retention_days     = 90      # limpieza automatica via cron smartnotify_cleanup
notify_document    = 0       # off: los adjuntos generan mucho ruido
notify_new_problem = 0       # off: evento poco frecuente
sound_urgent       = alarm   # tonos por prioridad: subtle | default | alert | alarm

# 1) Verificar la config efectiva directo en la base de datos
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';

# 2) Resetear el OPcache de FPM tras activar/actualizar (validate_timestamps=Off)
docker exec glpi_app_prod kill -USR2 $(docker exec glpi_app_prod pgrep -o php-fpm)

# 3) Confirmar la limpieza automatica en GLPI:
#    Configuracion > Acciones automaticas > smartnotify_cleanup

Veredicto por escenario

Elige Smart Notify cuando: la operación corre en GLPI 11, los técnicos mantienen la interfaz abierta todo el día, hay múltiples entidades y perfiles, y necesitas un aviso activo (campana + sonido) con preferencias por persona y broadcast del administrador. Es el escenario de service desk con volumen, donde perder un follow-up cuesta SLA.

Elige Unread cuando: estás en GLPI 10, o solo quieres resaltar lo que no se ha visto en los listados sin nada corriendo en segundo plano, o el equipo es pequeño y el correo ya cubre el aviso - Unread resuelve solo "lo que aún no he abierto". Es la opción de huella mínima.

Los dos no son competidores directos: Unread cubre una parte (estado no leído en lista) que Smart Notify también entrega, con puntos rojos en los listados y separador "Nuevos mensajes" en la línea de tiempo. Correr ambos juntos en GLPI 11 es redundancia - elige uno.

Coste y esfuerzo

Los dos son gratuitos. Lo que difiere es el esfuerzo: Unread se instala y listo, sin configuración ni mantenimiento. Smart Notify exige una configuración inicial (intervalo de polling, tipos de evento, perfiles autorizados) y tiene una tarea de cron (smartnotify_cleanup) que limpia notificaciones leídas y logs según la retención - corre a diario, sin intervención. Una vez calibrado también es "instalar y olvidar", pero la calibración del polling y de los tipos es lo que separa un despliegue limpio de uno ruidoso.

¿Necesitas notificación también fuera de GLPI - WhatsApp, Telegram, Teams? La campana alcanza a quien está dentro del sistema; para llegar a quien está fuera, combínala con los módulos de notificación externa de NexTool. Si quieres, te ayudamos a diseñar el flujo de avisos en el mantenimiento de tu GLPI.


Revisado por el equipo de NexTool Solutions.

Preguntas Frecuentes

No. De forma nativa, toda notificación sale por correo. Plugins como Smart Notify (NexTool) y Unread añaden el aviso dentro de la interfaz. Smart Notify actualiza la campana por polling (intervalo de 15 a 120 segundos), no por WebSocket - así que es 'casi en tiempo real', con la latencia del intervalo configurado.

No. Smart Notify es un módulo para GLPI 11 (el manifiesto declara glpi_major 11). Si sigues en GLPI 10, la opción realista para señalar lo que no se ha visto es el plugin Unread o un resaltado de listado equivalente - la campana de la barra de navegación no corre en el 10.

Depende del intervalo y del número de técnicos simultáneos: cada pestaña abierta hace una consulta por ciclo. En producción usamos de 30 a 45 segundos como equilibrio; 15s multiplica consultas sin ganancia real de percepción. El módulo además pausa el polling cuando la pestaña queda inactiva y llama a session_write_close() en la lectura, evitando que el poll quede atascado tras el bloqueo de la sesión del propio usuario.

Es intencional. El módulo excluye las acciones del propio usuario - no se te avisa del follow-up, tarea o solución que tú mismo escribiste, solo de lo que otros hicieron en los elementos en los que estás involucrado (solicitante, asignado, observador o grupo).

En GLPI 11, no. Smart Notify ya cubre el escenario de Unread - marca los elementos no leídos con puntos rojos en los listados y añade un separador 'Nuevos mensajes' en la línea de tiempo. Correr ambos es redundante. Unread tiene sentido por sí solo cuando estás en GLPI 10 o quieres la huella mínima de solo resaltar lo que no se ha abierto.

?Necesitas ayuda?