Smart Notify vs Unread: notifiche interne in GLPI

Confronto tra il modulo Smart Notify (NexTool) e il plugin Unread per le notifiche interne in GLPI, senza dipendere dall'email. Tabella criterio per criterio, verdetto per scenario, il trade-off di polling che conta nell'operatività e la configurazione che usiamo in produzione.

In questo articolo7 sezioni

L'email non è una notifica in tempo reale. Perché un tecnico sappia nel momento stesso che un ticket è cambiato, l'avviso deve comparire dentro GLPI. Due soluzioni lo risolvono per vie opposte: il plugin Unread evidenzia negli elenchi ciò che non è ancora stato visto, e il modulo Smart Notify (NexTool) mette una campanella globale nella barra di navigazione, con suono e preferenze per utente. E c'è un fattore che decide prima di qualsiasi funzione: la versione di GLPI che gestisce.

Il contesto: perché la sola email non basta

In GLPI standard, ogni notifica parte via email. In pratica, il tecnico che tiene il sistema aperto tutto il giorno finisce col dover:

  1. Alternare di continuo tra la coda di GLPI e la casella di posta;
  2. Ripescare le email di GLPI in mezzo a decine di altre;
  3. Cliccare sul link dell'email solo per tornare a un ticket già a schermo.

Il risultato è noto: risposte in ritardo, follow-up che nessuno ha visto, validazioni ferme in attesa di un clic. La notifica interna taglia questo andirivieni - ma "interna" ha due significati molto diversi, ed è proprio lì che i due plugin divergono.

Due filosofie diverse

Unread è un plugin della community dallo scopo essenziale: segnalare visivamente, negli elenchi, gli elementi (ticket, follow-up) che non ha ancora aperto. È passivo - l'evidenziazione compare quando sta già guardando l'elenco. Niente suono, niente campanella, niente preferenze per utente. Il suo grande vantaggio è un costo operativo vicino a zero: niente gira in background.

Smart Notify (modulo NexTool, GLPI 11) è attivo. Aggrega 11 sorgenti di eventi già presenti in GLPI - follow-up, task, validazioni e soluzioni di ticket, problemi e modifiche, più documenti allegati e avvisi manuali dell'amministratore - e presenta tutto in una campanella nella barra di navigazione, visibile su qualsiasi schermata. Porta un contatore di non letti, suono per priorità, sincronizzazione tra schede e un pannello di preferenze dove ogni tecnico attiva o disattiva ciò che vuole ricevere. Un punto chiave: non crea nuovi eventi, si limita a raccogliere e segnalare ciò che GLPI ha già registrato.

Confronto diretto

CriterioSmart Notify (NexTool)Unread
NaturaModulo NexTool per GLPI 11Plugin della community
Dove compare l'avvisoCampanella globale nella barra di navigazione, su ogni schermataEvidenziazione nell'elenco degli elementi
Modello di aggiornamentoPolling in background (15 a 120s)Al caricamento dell'elenco
Sorgenti di eventi11 (follow-up, task, validazione, soluzione, documento e avvisi manuali di ticket/problema/modifica)Stato letto / non letto degli elementi
Suono per prioritàSì (4 toni: subtle, default, alert, alarm)No
Preferenze per utenteSì (11 tipi + suono, per tecnico)No
Sincronizzazione tra schedeSì (BroadcastChannel + fallback su localStorage)No
Separatore "Nuovi messaggi" nella timelineSìNo
Indicatore negli elenchiPunti rossi per elemento non lettoEvidenziazione della riga/elemento
Avviso manuale dell'amministratore (broadcast)Sì (targeting: tutti, utente, gruppo, entità)No
Pulizia automaticaSì (cron giornaliero, retention configurabile)Non applicabile
Costo sul database per utente attivo1 query per ciclo di pollingVicino a zero in background
GLPI supportato11 (glpi_major 11 nel manifesto)Dipende dalla versione del plugin installato
PrezzoGratuitoGratuito

Il trade-off che conta nell'operatività

Nella manutenzione di GLPI per i clienti, il punto che salta sempre fuori non è l'elenco delle funzioni - è il costo del polling. Smart Notify aggiorna la campanella tramite polling (intervallo configurabile da 15 a 120 secondi), non tramite WebSocket. Ogni tecnico con lo schermo aperto lancia una query al database a ogni ciclo. In un'operatività con decine di tecnici simultanei, lasciare l'intervallo a 15s moltiplica quelle query senza reale guadagno di percezione. Per questo, in produzione, lo calibriamo tra 30 e 45 secondi: impercettibile per l'utente e leggero per il database. Il modulo aiuta in due modi - mette in pausa il polling quando la scheda diventa inattiva (evento visibilitychange) e chiama session_write_close() all'inizio della richiesta di lettura, così il poll non resta bloccato dietro il lock della sessione dell'utente stesso.

L'errore più comune che vediamo nel supporto è il tecnico che si lamenta di "non ricevere la notifica del proprio follow-up". È voluto: Smart Notify esclude le azioni dell'utente stesso - non viene avvisato di ciò che ha scritto Lei. Un altro ritocco che facciamo sempre è disattivare la notifica dei documenti per impostazione predefinita (è rumorosa nelle istanze che allegano molti file) e tenere solo gli eventi che richiedono un'azione. E il fattore che decide il progetto in partenza: Smart Notify è GLPI 11. Se il cliente è ancora su GLPI 10, il discorso cambia - lì la scelta realistica è Unread (o un'evidenziazione di elenco equivalente), perché la campanella non gira su 10.

Configurazione che usiamo in produzione

# Smart Notify - configurazione base (GLPI 11)
# Pannello NexTool > Moduli > Smart Notify > scheda Configurazione
refresh_interval   = 30      # secondi (intervallo 15-120); 30-45 e il punto di equilibrio
max_notifications  = 50
retention_days     = 90      # pulizia automatica tramite il cron smartnotify_cleanup
notify_document    = 0       # off: gli allegati generano troppo rumore
notify_new_problem = 0       # off: evento poco frequente
sound_urgent       = alarm   # toni per priorita: subtle | default | alert | alarm

# 1) Verificare la config effettiva direttamente nel database
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';

# 2) Resettare l'OPcache di FPM dopo attivazione/aggiornamento (validate_timestamps=Off)
docker exec glpi_app_prod kill -USR2 $(docker exec glpi_app_prod pgrep -o php-fpm)

# 3) Confermare la pulizia automatica in GLPI:
#    Configurazione > Azioni automatiche > smartnotify_cleanup

Verdetto per scenario

Scelga Smart Notify quando: l'operatività gira su GLPI 11, i tecnici tengono l'interfaccia aperta tutto il giorno, ci sono più entità e profili, e serve un avviso attivo (campanella + suono) con preferenze per persona e broadcast dell'amministratore. È lo scenario del service desk a volume, dove un follow-up mancato costa SLA.

Scelga Unread quando: è su GLPI 10, oppure vuole solo evidenziare ciò che non è stato visto negli elenchi senza nulla che giri in background, oppure il team è piccolo e l'email copre già l'avviso - Unread risolve solo "cosa non ho ancora aperto". È l'opzione a impronta minima.

I due non sono concorrenti diretti: Unread copre una parte (stato non letto in elenco) che Smart Notify offre anche, con punti rossi negli elenchi e separatore "Nuovi messaggi" nella timeline. Far girare entrambi insieme su GLPI 11 è ridondanza - ne scelga uno.

Costo e sforzo

Entrambi sono gratuiti. A differire è lo sforzo: Unread si installa e basta, senza configurazione né manutenzione. Smart Notify richiede una configurazione iniziale (intervallo di polling, tipi di evento, profili autorizzati) e ha un task cron (smartnotify_cleanup) che ripulisce notifiche lette e log secondo la retention - gira ogni giorno, senza intervento. Una volta calibrato è anch'esso "installa e dimentica", ma la calibrazione del polling e dei tipi è ciò che separa un rollout pulito da uno rumoroso.

Le servono notifiche anche fuori da GLPI - WhatsApp, Telegram, Teams? La campanella raggiunge chi è dentro il sistema; per raggiungere chi è fuori, la combini con i moduli di notifica esterna di NexTool. Se vuole, La aiutiamo a progettare il flusso di avvisi nella manutenzione del Suo GLPI.


Revisionato dal team NexTool Solutions.

Domande Frequenti

No. Nativamente ogni notifica parte via email. Plugin come Smart Notify (NexTool) e Unread aggiungono l'avviso dentro l'interfaccia. Smart Notify aggiorna la campanella tramite polling (intervallo da 15 a 120 secondi), non tramite WebSocket - quindi è 'quasi in tempo reale', con la latenza dell'intervallo configurato.

No. Smart Notify è un modulo per GLPI 11 (il manifesto dichiara glpi_major 11). Se è ancora su GLPI 10, l'opzione realistica per segnalare ciò che non è stato visto è il plugin Unread o un'evidenziazione di elenco equivalente - la campanella nella barra di navigazione non gira su 10.

Dipende dall'intervallo e dal numero di tecnici simultanei: ogni scheda aperta fa una query per ciclo. In produzione usiamo da 30 a 45 secondi come equilibrio; 15s moltiplica le query senza reale guadagno di percezione. Il modulo mette anche in pausa il polling quando la scheda diventa inattiva e chiama session_write_close() in lettura, evitando che il poll resti bloccato dietro il lock della sessione dell'utente stesso.

È voluto. Il modulo esclude le azioni dell'utente stesso - non viene avvisato del follow-up, task o soluzione che ha scritto Lei, ma solo di ciò che altri hanno fatto sugli elementi in cui è coinvolto (richiedente, assegnato, osservatore o gruppo).

Su GLPI 11, no. Smart Notify copre già lo scenario di Unread - segnala gli elementi non letti con punti rossi negli elenchi e aggiunge un separatore 'Nuovi messaggi' nella timeline. Far girare entrambi è ridondante. Unread ha senso da solo quando è su GLPI 10 o vuole l'impronta minima di evidenziare solo ciò che non è stato aperto.

Hai bisogno di aiuto?