O email não é notificação em tempo real. Para um técnico saber na hora que um pedido mudou, o aviso tem de aparecer dentro do GLPI. Duas soluções resolvem isto por caminhos opostos: o plugin Unread realça nas listagens o que ainda não foi visto, e o módulo Smart Notify (NexTool) coloca uma campainha global na barra de navegação, com som e preferências por utilizador. E há um fator que decide antes de qualquer funcionalidade: a versão do GLPI que gere.
O contexto: porque só o email não chega
No GLPI padrão, toda a notificação sai por email. Na prática, o técnico que mantém o sistema aberto o dia inteiro acaba por ter de:
- Alternar entre a fila do GLPI e a caixa de entrada a toda a hora;
- Garimpar os emails do GLPI no meio de dezenas de outros;
- Clicar na ligação do email só para voltar a um pedido que já estava no ecrã.
O resultado é conhecido: resposta atrasada, follow-up que ninguém viu, validação parada à espera de um clique. A notificação interna corta este vai-e-vem - mas "interna" tem dois significados bem diferentes, e é justamente aí que os dois plugins divergem.
Duas filosofias diferentes
Unread é um plugin da comunidade com um âmbito enxuto: assinalar visualmente, nas listagens, os itens (pedidos, follow-ups) que ainda não abriu. É passivo - o realce surge quando já está a olhar para a lista. Sem som, sem campainha, sem preferência por utilizador. A grande vantagem é um custo operacional próximo de zero: nada corre em segundo plano.
Smart Notify (módulo do NexTool, GLPI 11) é ativo. Agrega 11 fontes de eventos que já existem no GLPI - follow-ups, tarefas, validações e soluções de pedidos, problemas e mudanças, além de documentos anexados e avisos manuais do administrador - e apresenta tudo numa campainha na barra de navegação, visível em qualquer ecrã. Traz contador de não lidas, som por prioridade, sincronização entre separadores e um painel de preferências onde cada técnico liga ou desliga o que quer receber. Um ponto importante: não cria eventos novos, apenas reúne e sinaliza o que o GLPI já registou.
Comparativo direto
| Critério | Smart Notify (NexTool) | Unread |
|---|---|---|
| Natureza | Módulo NexTool para GLPI 11 | Plugin da comunidade |
| Onde aparece o aviso | Campainha global na barra de navegação, em qualquer ecrã | Realce na listagem de itens |
| Modelo de atualização | Polling em segundo plano (15 a 120s) | Ao carregar a listagem |
| Fontes de eventos | 11 (follow-up, tarefa, validação, solução, documento e avisos manuais de pedido/problema/mudança) | Estado lido / não lido dos itens |
| Som por prioridade | Sim (4 tons: subtle, default, alert, alarm) | Não |
| Preferências por utilizador | Sim (11 tipos + som, por técnico) | Não |
| Sincronização entre separadores | Sim (BroadcastChannel + recurso a localStorage) | Não |
| Separador "Novas mensagens" na cronologia | Sim | Não |
| Indicador nas listagens | Pontos vermelhos por item não lido | Realce da linha/item |
| Aviso manual do administrador (broadcast) | Sim (segmentação: todos, utilizador, grupo, entidade) | Não |
| Limpeza automática | Sim (cron diário, retenção configurável) | Não aplicável |
| Custo na base de dados por utilizador ativo | 1 consulta por ciclo de polling | Próximo de zero em segundo plano |
| GLPI suportado | 11 (glpi_major 11 no manifesto) | Depende da versão do plugin instalado |
| Preço | Gratuito | Gratuito |
O trade-off que importa na operação
Na sustentação de GLPI para clientes, o ponto que aparece sempre não é a lista de funcionalidades - é o custo do polling. O Smart Notify atualiza a campainha por polling (intervalo configurável de 15 a 120 segundos), não por WebSocket. Cada técnico com o ecrã aberto dispara uma consulta à base de dados a cada ciclo. Numa operação com dezenas de técnicos simultâneos, deixar o intervalo em 15s multiplica essas consultas sem ganho real de perceção. Por isso, em produção, calibramos entre 30 e 45 segundos: impercetível para o utilizador e leve para a base de dados. O módulo ajuda de duas formas - pausa o polling quando o separador fica inativo (evento visibilitychange) e chama session_write_close() logo no início do pedido de leitura, para o poll não ficar preso atrás do bloqueio da sessão do próprio utilizador.
O erro mais comum que vemos no suporte é o técnico queixar-se de que "não recebe notificação do próprio follow-up". É propositado: o Smart Notify exclui as ações do próprio utilizador - não é avisado do que escreveu você mesmo. Outro ajuste que fazemos sempre é desligar a notificação de documentos por predefinição (é ruidosa em instâncias que anexam muitos ficheiros) e manter apenas os eventos que exigem ação. E o fator que decide o projeto à partida: o Smart Notify é GLPI 11. Se o cliente ainda está em GLPI 10, a conversa muda - o realista aí é o Unread (ou um realce de lista equivalente), porque a campainha não corre no 10.
Configuração que usamos em produção
# Smart Notify - configuracao base (GLPI 11)
# Painel NexTool > Modulos > Smart Notify > separador Configuracao
refresh_interval = 30 # segundos (intervalo 15-120); 30-45 e o ponto de equilibrio
max_notifications = 50
retention_days = 90 # limpeza automatica via cron smartnotify_cleanup
notify_document = 0 # off: os anexos geram muito ruido
notify_new_problem = 0 # off: evento pouco frequente
sound_urgent = alarm # tons por prioridade: subtle | default | alert | alarm
# 1) Conferir a config efetiva diretamente na base de dados
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';
# 2) Repor a OPcache do FPM apos ativar/atualizar (validate_timestamps=Off)
docker exec glpi_app_prod kill -USR2 $(docker exec glpi_app_prod pgrep -o php-fpm)
# 3) Confirmar a limpeza automatica no GLPI:
# Configuracao > Acoes automaticas > smartnotify_cleanup
Veredito por cenário
Escolha o Smart Notify quando: a operação corre em GLPI 11, os técnicos mantêm a interface aberta o dia todo, há múltiplas entidades e perfis, e precisa de um aviso ativo (campainha + som) com preferência por pessoa e broadcast do administrador. É o cenário de service desk com volume, onde perder um follow-up custa SLA.
Escolha o Unread quando: está em GLPI 10, ou quer apenas realçar o que não foi visto nas listagens sem nada a correr em segundo plano, ou a equipa é pequena e o email já dá conta do aviso - o Unread resolve só o "o que ainda não abri". É a opção de pegada mínima.
Os dois não são concorrentes diretos: o Unread cobre uma parte (não leitura em lista) que o Smart Notify também entrega, com pontos vermelhos nas listagens e separador "Novas mensagens" na cronologia. Correr os dois juntos em GLPI 11 é redundância - escolha um.
Custo e esforço
Os dois são gratuitos. O que difere é o esforço: o Unread instala e pronto, sem configuração e sem manutenção. O Smart Notify exige uma configuração inicial (intervalo de polling, tipos de evento, perfis autorizados) e tem uma tarefa de cron (smartnotify_cleanup) que limpa notificações lidas e registos conforme a retenção - corre diariamente, sem intervenção. Depois de calibrado também é "instalar e esquecer", mas a calibragem do polling e dos tipos é o que separa uma implementação limpa de uma ruidosa.
Precisa de notificação também fora do GLPI - WhatsApp, Telegram, Teams? A campainha alcança quem está dentro do sistema; para chegar a quem está fora, combine-a com os módulos de notificação externa do NexTool. Se quiser, ajudamos a desenhar o fluxo de avisos na sustentação do seu GLPI.
Revisto pela equipa NexTool Solutions.