Smart Notify vs Unread: Notificações Internas no GLPI

Comparativo entre o módulo Smart Notify (NexTool) e o plugin Unread para notificações internas no GLPI, sem depender de email. Tabela critério a critério, veredito por cenário, o trade-off de polling que importa na operação e a configuração que usamos em produção.

Neste artigo7 seções

Email não é notificação em tempo real. Para um técnico saber na hora que um chamado mudou, o aviso precisa aparecer dentro do GLPI. Duas soluções resolvem isso por caminhos opostos: o plugin Unread destaca nas listagens o que ainda não foi visto, e o módulo Smart Notify (NexTool) coloca um sino global na navbar, com som e preferências por usuário. E há um fator que decide antes de qualquer recurso: a versão do GLPI que você opera.

O contexto: por que só email não basta

No GLPI padrão, toda notificação sai por email. Na prática, o técnico que fica com o sistema aberto o dia inteiro acaba tendo que:

  1. Alternar entre a fila do GLPI e a caixa de entrada o tempo todo;
  2. Garimpar os emails do GLPI no meio de dezenas de outros;
  3. Clicar no link do email só para voltar a um chamado que já estava na tela.

O resultado é conhecido: resposta atrasada, follow-up que ninguém viu, validação parada esperando um clique. A notificação interna corta esse vai-e-volta - mas "interna" tem dois significados bem diferentes, e é justamente aí que os dois plugins divergem.

Duas filosofias diferentes

Unread é um plugin da comunidade com escopo enxuto: marcar visualmente, nas listagens, os itens (chamados, follow-ups) que você ainda não abriu. É passivo - o destaque aparece quando você já está olhando a lista. Não tem som, não tem sino, não tem preferência por usuário. A grande vantagem é o custo operacional próximo de zero: nada roda em segundo plano.

Smart Notify (módulo do NexTool, GLPI 11) é ativo. Ele agrega 11 fontes de evento que já existem no GLPI - follow-ups, tarefas, validações e soluções de chamados, problemas e mudanças, mais documentos anexados e avisos manuais do administrador - e apresenta tudo num sino na navbar, visível em qualquer tela. Traz contador de não-lidas, som por prioridade, sincronização entre abas e um painel de preferências onde cada técnico liga ou desliga o que quer receber. Um ponto importante: ele não cria eventos novos, apenas reúne e sinaliza o que o GLPI já registrou.

Comparativo direto

CritérioSmart Notify (NexTool)Unread
NaturezaMódulo NexTool para GLPI 11Plugin da comunidade
Onde o aviso apareceSino global na navbar, em qualquer telaDestaque na listagem de itens
Modelo de atualizaçãoPolling em segundo plano (15 a 120s)Ao carregar a listagem
Fontes de evento11 (follow-up, tarefa, validação, solução, documento e avisos manuais de chamado/problema/mudança)Leitura / não-leitura de itens
Som por prioridadeSim (4 tons: subtle, default, alert, alarm)Não
Preferências por usuárioSim (11 tipos + som, por técnico)Não
Sincronização entre abasSim (BroadcastChannel + fallback localStorage)Não
Separador "Novas mensagens" na timelineSimNão
Indicador nas listagensPontos vermelhos por item não lidoDestaque da linha/item
Aviso manual do administrador (broadcast)Sim (targeting: todos, usuário, grupo, entidade)Não
Limpeza automáticaSim (cron diário, retenção configurável)Não se aplica
Custo no banco por usuário ativo1 consulta por ciclo de pollingPróximo de zero em segundo plano
GLPI suportado11 (glpi_major 11 no manifesto)Depende da versão do plugin instalado
PreçoGratuitoGratuito

O trade-off que importa na operação

Na sustentação de GLPI para clientes, o ponto que sempre aparece não é a lista de recursos - é o custo do polling. O Smart Notify atualiza o sino por polling (intervalo configurável de 15 a 120 segundos), não por WebSocket. Cada técnico com a tela aberta dispara uma consulta ao banco a cada ciclo. Numa operação com dezenas de técnicos simultâneos, deixar o intervalo em 15s multiplica essas queries sem ganho real de percepção. Por isso, em produção, calibramos entre 30 e 45 segundos: é imperceptível para o usuário e mantém o banco tranquilo. O módulo ajuda de dois jeitos - pausa o polling quando a aba fica inativa (evento visibilitychange) e chama session_write_close() logo no início da requisição de leitura, para o poll não ficar preso atrás do lock da sessão do próprio usuário.

O erro mais comum que vemos no suporte é o técnico reclamar que "não recebe notificação do próprio follow-up". Isso é proposital: o Smart Notify exclui as ações do próprio usuário - você não é avisado do que você mesmo escreveu. Outro ajuste que sempre fazemos é desligar a notificação de documentos por padrão (ela é ruidosa em instância que anexa muito arquivo) e manter só os eventos que geram ação. E o fator que decide o projeto antes de tudo: Smart Notify é GLPI 11. Se o cliente ainda está no GLPI 10, a conversa muda - o realista ali é o Unread (ou um destaque em lista equivalente), porque o sino não roda no 10.

Configuração que usamos em produção

# Smart Notify - configuracao base (GLPI 11)
# Painel NexTool > Modulos > Smart Notify > aba Configuracoes
refresh_interval   = 30      # segundos (faixa 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: anexos geram muito ruido
notify_new_problem = 0       # off: evento pouco frequente
sound_urgent       = alarm   # tons por prioridade: subtle | default | alert | alarm

# 1) Conferir o config efetivo direto no banco
SELECT config FROM glpi_plugin_nextool_main_modules WHERE module_key = 'smartnotify';

# 2) Resetar o 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 roda em GLPI 11, os técnicos ficam com a interface aberta o dia todo, há múltiplas entidades e perfis, e você precisa de um aviso ativo (sino + 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: você está em GLPI 10, ou quer apenas destacar o que não foi visto nas listagens sem nada rodando em segundo plano, ou a equipe é pequena e o email já dá conta do aviso - o Unread resolve só o "o que ainda não abri". É a opção de footprint mínimo.

Os dois não são concorrentes diretos: o Unread cobre um pedaço (não-leitura em lista) que o Smart Notify também entrega, com pontos vermelhos nas listagens e separador "Novas mensagens" na timeline. Rodar os dois juntos no GLPI 11 é redundância - escolha um.

Custo e esforço

Os dois são gratuitos. O esforço é que difere: 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 logs conforme a retenção - roda diária, sem intervenção. Depois de calibrado também é "instala e esquece", mas a calibragem do polling e dos tipos é o que separa uma implantação boa de uma barulhenta.

Precisa de notificação também fora do GLPI - WhatsApp, Telegram, Teams? O sino resolve quem está dentro do sistema; para alcançar quem está fora, combine com os módulos de notificação externa do NexTool. Se quiser, ajudamos a desenhar a régua de avisos na sustentação do seu GLPI.


Revisado pela equipe NexTool Solutions.

Perguntas Frequentes

Não. Nativamente toda notificação sai por email. Plugins como Smart Notify (NexTool) e Unread adicionam o aviso dentro da interface. O Smart Notify atualiza o sino por polling (intervalo de 15 a 120 segundos), não por WebSocket - então é 'quase em tempo real', com a latência do intervalo configurado.

Não. O Smart Notify é um módulo para GLPI 11 (o manifesto declara glpi_major 11). Se você ainda está no GLPI 10, a opção realista para sinalizar o que não foi visto é o plugin Unread ou um destaque de listagem equivalente - o sino na navbar não roda no 10.

Depende do intervalo e do número de técnicos simultâneos: cada aba aberta faz uma consulta por ciclo. Em produção usamos 30 a 45 segundos como equilíbrio; 15s multiplica queries sem ganho real de percepção. O módulo ainda pausa o polling quando a aba fica inativa e chama session_write_close() na leitura, evitando que o poll fique preso atrás do lock da sessão do próprio usuário.

É proposital. O módulo exclui as ações do próprio usuário - você não é avisado do follow-up, tarefa ou solução que você mesmo escreveu, só do que os outros fizeram nos itens em que você está envolvido (requerente, atribuído, observador ou grupo).

No GLPI 11, não. O Smart Notify já cobre o cenário do Unread - marca itens não lidos com pontos vermelhos nas listagens e coloca um separador 'Novas mensagens' na timeline. Rodar os dois é redundância. O Unread faz sentido isolado quando você está no GLPI 10 ou quer o footprint mínimo de só destacar o que não foi aberto.

Precisa de ajuda?