WhatsApp é o canal que seu usuário abre dezenas de vezes por dia - e o GLPI, por padrão, só sabe falar por e-mail. O módulo WhatsApp Bot do NexTool liga o GLPI à Evolution API (open source, protocolo Baileys) e entrega notificação de chamado direto no WhatsApp, com fila que reprocessa falha e conexão na sua própria infraestrutura. Na sustentação de service desks aprendemos que o canal certo muda a taxa de resposta de aprovação e de pesquisa de satisfação - mas a integração tem armadilhas de configuração que este guia mostra por baixo do capô.
O problema
O GLPI notifica por e-mail transacional através da fila queuednotification. Funciona, mas o e-mail corporativo cai em spam, o usuário final não mora no webmail e o gestor que precisa aprovar um chamado só descobre a pendência quando alguém liga cobrando. O resultado no dia a dia é aprovação represada por horas, pesquisa de satisfação com taxa de resposta perto de zero e equipe de suporte gastando tempo em cobrança manual. Trocar o e-mail por um canal que a pessoa realmente lê resolve a maior parte disso - e no Brasil esse canal é o WhatsApp.
A saída comercial (WhatsApp Business API oficial) é cara, depende de aprovação de template pela Meta e amarra você a um contrato externo. Para quem já opera infraestrutura própria, a Evolution API é a alternativa self-hosted, e o WhatsApp Bot a conecta ao GLPI usando a infraestrutura nativa de notificações - sem gambiarra no core.
Como o WhatsApp Bot funciona
O módulo registra um modo de notificação próprio reaproveitando o canal SMS do GLPI (Notification_NotificationTemplate::registerMode(MODE_SMS)). Quando um evento de chamado dispara, o GLPI resolve o destinatário, o módulo busca o número, monta a mensagem e envia via Evolution API - tudo transparente para o operador.
- Notificações próprias por evento - no install, o módulo cria nove notificações WhatsApp dedicadas (Novo Chamado, Novo Acompanhamento, Chamado Solucionado, Pesquisa de Satisfação, Pedido de Aprovação, Resposta de Aprovação e as três de senha), cada uma com destinatários próprios. A criação é idempotente por nome: se você editar o texto na interface do GLPI, o reinstall preserva a sua edição.
- Fila com retry automático - mensagem que falha por instabilidade da conexão entra na tabela de fila e é reprocessada em lotes de até 50 a cada 1 minuto, com no máximo 3 tentativas antes de marcar como
failed. Nada some silenciosamente: o motivo do erro fica gravado. - Health check a cada 5 minutos - uma cron consulta o estado real da conexão na Evolution API e atualiza o status no painel, para você saber que o WhatsApp caiu antes do usuário reclamar.
- QR Code no próprio GLPI - a conexão do número remetente é feita escaneando o QR gerado na aba Conectores, sem sair do ambiente.
- Self-hosted ou gerenciado - aponte para a sua Evolution API (URL + API Key) ou, em ambiente licenciado, use a instância gerenciada pela NexTool.
O número do destinatário vem do campo Celular do usuário GLPI (glpi_users.mobile), normalizado automaticamente: o módulo tira máscara, valida o comprimento (10 a 15 dígitos) e prefixa o DDI 55 quando o número brasileiro vem sem ele. Quem não tem celular cadastrado simplesmente não recebe - o envio é silencioso, não gera erro.
WhatsApp Bot x notificação nativa do GLPI
| Recurso | GLPI nativo (e-mail SMTP) | WhatsApp Bot + Evolution API |
|---|---|---|
| Canal de entrega | E-mail transacional | WhatsApp (mensagem no celular) |
| Taxa de leitura | Baixa (cai em spam, ninguém abre) | Alta (canal do dia a dia) |
| Reenvio em falha | Fila, sem retry configurável por canal | Fila própria, 3 tentativas, lotes de 50/min |
| Origem do número | E-mail do usuário | Campo Celular (glpi_users.mobile), normalizado |
| Infraestrutura | Servidor SMTP | Evolution API self-hosted ou gerenciada |
| Custo por mensagem | Zero (SMTP próprio) | Zero (sem API paga da Meta) |
Como ativar
- Instale o NexTool no seu GLPI e acesse Configuração > NexTool > Módulos.
- Ative o módulo WhatsApp Bot e clique em Configurar.
- Na aba Conectores, informe a URL e a API Key da sua Evolution API e gere o QR Code para conectar o número remetente.
- Em Administração > Usuários, preencha o campo Celular dos destinatários (formato DDI+DDD+número, ex.: 5511999998888).
- Confirme que o cron externo do GLPI está rodando - as CronTasks do módulo são
MODE_EXTERNALe não disparam por acesso web.
# As CronTasks do modulo (healthcheck 5min, fila 1min) sao MODE_EXTERNAL.
# No GLPI 11 o disparador e front/cron.php (nao ha console glpi:cron):
* * * * * www-data /usr/bin/php /var/www/html/front/cron.php >/dev/null 2>&1
# A Evolution API recebe o envio neste endpoint (o modulo cuida disso):
# POST {URL}/message/sendText/{instancia}
# header: apikey: ...sua_api_key...
# body: { "number": "5511999998888", "text": "..." }
Diagnóstico de entrega direto no banco
Quando um cliente diz que "o WhatsApp não chegou", a resposta quase sempre está na tabela de fila. Duas consultas resolvem a triagem:
-- Panorama da fila: o que esta preso e quantas tentativas ja teve
SELECT status, COUNT(*) AS total, MAX(attempts) AS max_tentativas
FROM glpi_plugin_nextool_whatsappbot_queue
GROUP BY status;
-- Ultimas falhas com o motivo devolvido pela Evolution API
SELECT id, phone_number, attempts, last_error, created_at
FROM glpi_plugin_nextool_whatsappbot_queue
WHERE status = 'failed'
ORDER BY created_at DESC
LIMIT 20;
O erro mais comum que lemos em last_error não é bug do módulo: é número fora de formato ou conexão da instância caída. Por isso o health check existe - se o status no painel está desconectado, o QR expirou e precisa ser reescaneado.
A armadilha que só quem opera conhece
Duas pegadinhas derrubam quase toda primeira implantação. A primeira: o canal do WhatsApp Bot viaja pelo modo SMS do GLPI. Isso significa que, para o usuário receber, o "seguir por SMS" precisa estar ativo na notificação - muita gente procura um modo chamado "WhatsApp" na tela de notificações e não acha, porque ele aparece como SMS. A segunda: o GLPI anexa a assinatura padrão de e-mail ("-- " e o rodapé) ao corpo do template, e no WhatsApp isso vira ruído visual; o módulo remove esse bloco no envio, mas se você criar um template próprio evite despejar variáveis de assinatura de e-mail nele. E lembre: como o número sai de glpi_users.mobile, um cadastro de celular errado é a causa nº 1 de "não recebi" - normalizamos o DDI, mas não adivinhamos um dígito trocado.
Para quem é indicado (e quando não usar)
O WhatsApp Bot brilha onde o usuário final não acompanha e-mail: varejo, saúde, educação, serviços e qualquer service desk que atende público externo. Também é excelente para aprovações de gestores que raramente entram no GLPI. Quando não usar: se a sua operação é 100% interna, com técnicos que vivem logados no GLPI, um sino de notificação in-app resolve melhor e sem depender de uma instância de WhatsApp. E se a política da empresa proíbe WhatsApp para comunicação de trabalho, respeite - o canal certo é o que o time pode usar.
Compatibilidade
- GLPI: 10.0+ e 11.0+
- Plano: FREE
- Plugin: NexTool 4.2.1+
- Pré-requisito: Evolution API instalada e acessível pelo servidor do GLPI
Próximo passo
O WhatsApp Bot faz parte do NexTool. Precisa de ajuda para subir a Evolution API ou calibrar quais eventos notificar por WhatsApp? Fale com a equipe.
Este conteúdo foi produzido com auxílio de inteligência artificial e revisado pela equipe Nextool Solutions.