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:
- Alternare di continuo tra la coda di GLPI e la casella di posta;
- Ripescare le email di GLPI in mezzo a decine di altre;
- 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
| Criterio | Smart Notify (NexTool) | Unread |
|---|---|---|
| Natura | Modulo NexTool per GLPI 11 | Plugin della community |
| Dove compare l'avviso | Campanella globale nella barra di navigazione, su ogni schermata | Evidenziazione nell'elenco degli elementi |
| Modello di aggiornamento | Polling in background (15 a 120s) | Al caricamento dell'elenco |
| Sorgenti di eventi | 11 (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 utente | Sì (11 tipi + suono, per tecnico) | No |
| Sincronizzazione tra schede | Sì (BroadcastChannel + fallback su localStorage) | No |
| Separatore "Nuovi messaggi" nella timeline | Sì | No |
| Indicatore negli elenchi | Punti rossi per elemento non letto | Evidenziazione della riga/elemento |
| Avviso manuale dell'amministratore (broadcast) | Sì (targeting: tutti, utente, gruppo, entità) | No |
| Pulizia automatica | Sì (cron giornaliero, retention configurabile) | Non applicabile |
| Costo sul database per utente attivo | 1 query per ciclo di polling | Vicino a zero in background |
| GLPI supportato | 11 (glpi_major 11 nel manifesto) | Dipende dalla versione del plugin installato |
| Prezzo | Gratuito | Gratuito |
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.