L'e-mail n'est pas une notification en temps réel. Pour qu'un technicien sache au moment même qu'un ticket a changé, l'alerte doit apparaître dans GLPI. Deux solutions y répondent par des voies opposées : le plugin Unread met en évidence, dans les listes, ce qui n'a pas encore été vu, et le module Smart Notify (NexTool) place une cloche globale dans la barre de navigation, avec du son et des préférences par utilisateur. Et un facteur tranche avant toute fonctionnalité : la version de GLPI que vous exploitez.
Le contexte : pourquoi l'e-mail seul ne suffit pas
Dans GLPI standard, toute notification part par e-mail. En pratique, le technicien qui garde le système ouvert toute la journée finit par devoir :
- Basculer sans cesse entre la file GLPI et la boîte de réception ;
- Repêcher les e-mails de GLPI parmi des dizaines d'autres ;
- Cliquer sur le lien de l'e-mail juste pour revenir à un ticket déjà à l'écran.
Le résultat est connu : réponses tardives, follow-ups que personne n'a vus, validations bloquées en attente d'un clic. La notification interne coupe ces allers-retours - mais "interne" a deux sens très différents, et c'est justement là que les deux plugins divergent.
Deux philosophies différentes
Unread est un plugin communautaire au périmètre resserré : signaler visuellement, dans les listes, les éléments (tickets, follow-ups) que vous n'avez pas encore ouverts. Il est passif - la mise en évidence apparaît quand vous regardez déjà la liste. Pas de son, pas de cloche, pas de préférence par utilisateur. Son grand atout est un coût d'exploitation proche de zéro : rien ne tourne en arrière-plan.
Smart Notify (module NexTool, GLPI 11) est actif. Il agrège 11 sources d'événements déjà présentes dans GLPI - follow-ups, tâches, validations et solutions de tickets, problèmes et changements, plus documents joints et messages manuels de l'administrateur - et présente le tout dans une cloche de la barre de navigation, visible sur n'importe quel écran. Il apporte un compteur de non-lus, un son par priorité, une synchronisation entre onglets et un panneau de préférences où chaque technicien active ou désactive ce qu'il veut recevoir. Point clé : il ne crée pas de nouveaux événements, il rassemble et signale seulement ce que GLPI a déjà enregistré.
Comparatif direct
| Critère | Smart Notify (NexTool) | Unread |
|---|---|---|
| Nature | Module NexTool pour GLPI 11 | Plugin communautaire |
| Où apparaît l'alerte | Cloche globale dans la barre de navigation, sur tout écran | Mise en évidence dans la liste des éléments |
| Modèle de mise à jour | Polling en arrière-plan (15 à 120s) | Au chargement de la liste |
| Sources d'événements | 11 (follow-up, tâche, validation, solution, document et alertes manuelles de ticket/problème/changement) | État lu / non lu des éléments |
| Son par priorité | Oui (4 tonalités : subtle, default, alert, alarm) | Non |
| Préférences par utilisateur | Oui (11 types + son, par technicien) | Non |
| Synchronisation entre onglets | Oui (BroadcastChannel + repli localStorage) | Non |
| Séparateur "Nouveaux messages" dans la timeline | Oui | Non |
| Indicateur dans les listes | Points rouges par élément non lu | Mise en évidence de la ligne/élément |
| Message manuel de l'administrateur (broadcast) | Oui (ciblage : tous, utilisateur, groupe, entité) | Non |
| Nettoyage automatique | Oui (cron quotidien, rétention configurable) | Non applicable |
| Coût en base par utilisateur actif | 1 requête par cycle de polling | Proche de zéro en arrière-plan |
| GLPI pris en charge | 11 (glpi_major 11 dans le manifeste) | Dépend de la version du plugin installé |
| Prix | Gratuit | Gratuit |
Le compromis qui compte en exploitation
En maintenance de GLPI pour des clients, le point qui revient toujours n'est pas la liste des fonctionnalités - c'est le coût du polling. Smart Notify rafraîchit la cloche par polling (intervalle configurable de 15 à 120 secondes), pas par WebSocket. Chaque technicien ayant l'écran ouvert déclenche une requête en base à chaque cycle. Dans une exploitation avec des dizaines de techniciens simultanés, laisser l'intervalle à 15s multiplie ces requêtes sans gain réel de perception. C'est pourquoi, en production, nous le calibrons entre 30 et 45 secondes : imperceptible pour l'utilisateur et tranquille pour la base. Le module aide de deux façons - il met le polling en pause quand l'onglet devient inactif (événement visibilitychange) et appelle session_write_close() au début de la requête de lecture, pour que le poll ne reste pas coincé derrière le verrou de session de l'utilisateur lui-même.
L'erreur la plus fréquente que nous voyons au support, c'est le technicien qui se plaint de "ne pas recevoir de notification pour son propre follow-up". C'est volontaire : Smart Notify exclut les actions de l'utilisateur lui-même - vous n'êtes pas alerté de ce que vous avez écrit vous-même. Un autre réglage que nous faisons toujours est de désactiver la notification des documents par défaut (bruyante sur les instances qui joignent beaucoup de fichiers) et de ne garder que les événements qui appellent une action. Et le facteur qui décide le projet d'emblée : Smart Notify, c'est GLPI 11. Si le client est encore sous GLPI 10, la discussion change - le réaliste là est Unread (ou une mise en évidence de liste équivalente), car la cloche ne tourne pas sur 10.
Configuration que nous utilisons en production
# Smart Notify - configuration de base (GLPI 11)
# Panneau NexTool > Modules > Smart Notify > onglet Configuration
refresh_interval = 30 # secondes (plage 15-120); 30-45 est le bon compromis
max_notifications = 50
retention_days = 90 # nettoyage automatique via le cron smartnotify_cleanup
notify_document = 0 # off : les pieces jointes generent trop de bruit
notify_new_problem = 0 # off : evenement peu frequent
sound_urgent = alarm # tonalites par priorite : subtle | default | alert | alarm
# 1) Verifier la config effective directement en base
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';
# 2) Reinitialiser l'OPcache de FPM apres activation/mise a jour (validate_timestamps=Off)
docker exec glpi_app_prod kill -USR2 $(docker exec glpi_app_prod pgrep -o php-fpm)
# 3) Confirmer le nettoyage automatique dans GLPI :
# Configuration > Actions automatiques > smartnotify_cleanup
Verdict par scénario
Choisissez Smart Notify quand : l'exploitation tourne sous GLPI 11, les techniciens gardent l'interface ouverte toute la journée, il y a plusieurs entités et profils, et vous avez besoin d'une alerte active (cloche + son) avec préférences par personne et broadcast de l'administrateur. C'est le scénario du service desk à volume, où un follow-up manqué coûte du SLA.
Choisissez Unread quand : vous êtes sous GLPI 10, ou vous voulez seulement mettre en évidence ce qui n'a pas été vu dans les listes sans rien qui tourne en arrière-plan, ou l'équipe est petite et l'e-mail suffit déjà pour l'alerte - Unread ne résout que "ce que je n'ai pas encore ouvert". C'est l'option à empreinte minimale.
Les deux ne sont pas des concurrents directs : Unread couvre une partie (état non lu en liste) que Smart Notify livre aussi, avec des points rouges dans les listes et un séparateur "Nouveaux messages" dans la timeline. Faire tourner les deux ensemble sous GLPI 11 est de la redondance - choisissez-en un.
Coût et effort
Les deux sont gratuits. Ce qui diffère, c'est l'effort : Unread s'installe et c'est tout, sans configuration ni maintenance. Smart Notify exige un réglage initial (intervalle de polling, types d'événements, profils autorisés) et a une tâche cron (smartnotify_cleanup) qui nettoie les notifications lues et les logs selon la rétention - tourne chaque jour, sans intervention. Une fois calibré, c'est aussi "installer et oublier", mais le calibrage du polling et des types est ce qui sépare un déploiement propre d'un déploiement bruyant.
Besoin de notifications aussi hors de GLPI - WhatsApp, Telegram, Teams ? La cloche atteint ceux qui sont dans le système ; pour toucher ceux qui sont dehors, combinez-la avec les modules de notification externe de NexTool. Si vous le souhaitez, nous aidons à concevoir le flux d'alertes dans la maintenance de votre GLPI.
Révisé par l'équipe NexTool Solutions.