Notifiche GLPI su WhatsApp con la Evolution API

GLPI notifica solo via e-mail, e l'e-mail finisce nello spam. Il modulo gratuito WhatsApp Bot collega GLPI alla Evolution API (open source) e recapita le notifiche dei ticket su WhatsApp, con coda di ritentativi e connessione self-hosted. Scopri come il canale viaggia sulla modalità SMS di GLPI, da dove arriva il numero, il SQL di diagnosi della coda e le trappole di campo del primo rilascio.

WhatsApp è il canale che il tuo utente apre decine di volte al giorno - e GLPI, di default, sa parlare solo via e-mail. Il modulo WhatsApp Bot di NexTool collega GLPI alla Evolution API (open source, protocollo Baileys) e recapita la notifica del ticket direttamente su WhatsApp, con una coda che rielabora i fallimenti e la connessione sulla tua infrastruttura. Sostenere service desk ci ha insegnato che il canale giusto cambia il tasso di risposta di approvazioni e sondaggi di soddisfazione - ma l'integrazione ha trappole di configurazione che questa guida mostra sotto il cofano.

Il problema

GLPI notifica via e-mail transazionale usando la coda queuednotification. Funziona, ma l'e-mail aziendale finisce nello spam, l'utente finale non vive nella webmail e il responsabile che deve approvare un ticket lo scopre solo quando qualcuno chiama a sollecitare. Il risultato quotidiano sono approvazioni ferme per ore, sondaggi di soddisfazione con tasso di risposta vicino a zero e un team di supporto che perde tempo in solleciti manuali. Sostituire l'e-mail con un canale che le persone leggono davvero risolve gran parte del problema - e in Brasile quel canale è WhatsApp.

La via commerciale (l'API WhatsApp Business ufficiale) è costosa, dipende dall'approvazione dei modelli da parte di Meta e ti lega a un contratto esterno. Per chi già gestisce la propria infrastruttura, la Evolution API è l'alternativa self-hosted, e WhatsApp Bot la collega a GLPI usando l'infrastruttura nativa di notifiche - senza forzature nel core.

Come funziona WhatsApp Bot

Il modulo registra una propria modalità di notifica riutilizzando il canale SMS di GLPI (Notification_NotificationTemplate::registerMode(MODE_SMS)). Quando scatta un evento del ticket, GLPI risolve il destinatario, il modulo recupera il numero, compone il messaggio e lo invia tramite la Evolution API - in modo trasparente per l'operatore.

  • Notifiche proprie per evento - all'installazione, il modulo crea nove notifiche WhatsApp dedicate (Nuovo ticket, Nuovo follow-up, Ticket risolto, Sondaggio di soddisfazione, Richiesta di approvazione, Risposta di approvazione e le tre di password), ognuna con i propri destinatari. La creazione è idempotente per nome: se modifichi il testo nell'interfaccia di GLPI, una reinstallazione preserva la tua modifica.
  • Coda con ritentativo automatico - un messaggio che fallisce per instabilità della connessione entra nella tabella della coda ed è rielaborato in lotti fino a 50 ogni 1 minuto, con un massimo di 3 tentativi prima di essere marcato failed. Nulla sparisce in silenzio: il motivo dell'errore resta salvato.
  • Health check ogni 5 minuti - un cron interroga lo stato reale della connessione sulla Evolution API e aggiorna lo stato nel pannello, così sai che WhatsApp è caduto prima che l'utente si lamenti.
  • QR Code dentro GLPI - il numero mittente si connette scansionando il QR generato nella scheda Connettori, senza uscire dall'ambiente.
  • Self-hosted o gestito - punta alla tua Evolution API (URL + API Key) oppure, in ambiente su licenza, usa l'istanza gestita da NexTool.

Il numero del destinatario proviene dal campo Cellulare dell'utente GLPI (glpi_users.mobile), normalizzato automaticamente: il modulo toglie la formattazione, valida la lunghezza (da 10 a 15 cifre) e antepone il prefisso 55 quando un numero brasiliano arriva senza. Chi non ha un cellulare registrato semplicemente non riceve - l'invio è silenzioso, non genera errore.

WhatsApp Bot rispetto alla notifica nativa di GLPI

FunzioneGLPI nativo (e-mail SMTP)WhatsApp Bot + Evolution API
Canale di consegnaE-mail transazionaleWhatsApp (messaggio sul cellulare)
Tasso di letturaBasso (spam, nessuno apre)Alto (canale quotidiano)
Reinvio in caso di erroreCoda, senza ritentativo per canaleCoda propria, 3 tentativi, lotti da 50/min
Origine del numeroE-mail dell'utenteCampo Cellulare (glpi_users.mobile), normalizzato
InfrastrutturaServer SMTPEvolution API self-hosted o gestita
Costo per messaggioZero (SMTP proprio)Zero (nessuna API Meta a pagamento)

Come attivarlo

  1. Installa NexTool sul tuo GLPI e vai in Configurazione > NexTool > Moduli.
  2. Attiva il modulo WhatsApp Bot e clicca su Configura.
  3. Nella scheda Connettori, inserisci l'URL e l'API Key della tua Evolution API e genera il QR Code per connettere il numero mittente.
  4. In Amministrazione > Utenti, compila il campo Cellulare dei destinatari (prefisso+area+numero, es.: 5511999998888).
  5. Verifica che il cron esterno di GLPI sia in esecuzione - le CronTask del modulo sono MODE_EXTERNAL e non scattano con gli accessi web.
# Le CronTask del modulo (healthcheck 5min, coda 1min) sono MODE_EXTERNAL.
# Su GLPI 11 il trigger e front/cron.php (non c'e la console glpi:cron):
* * * * * www-data /usr/bin/php /var/www/html/front/cron.php >/dev/null 2>&1

# La Evolution API riceve l'invio su questo endpoint (ci pensa il modulo):
#   POST {URL}/message/sendText/{istanza}
#   header: apikey: ...la_tua_api_key...
#   body:   { "number": "5511999998888", "text": "..." }

Diagnosi di consegna direttamente nel database

Quando un cliente dice che "WhatsApp non è arrivato", la risposta è quasi sempre nella tabella della coda. Due query risolvono il triage:

-- Panoramica della coda: cosa e bloccato e quanti tentativi ha avuto
SELECT status, COUNT(*) AS totale, MAX(attempts) AS max_tentativi
FROM glpi_plugin_nextool_whatsappbot_queue
GROUP BY status;

-- Ultimi fallimenti con il motivo restituito dalla 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;

L'errore più comune che leggiamo in last_error non è un bug del modulo: è un numero mal formattato o la connessione dell'istanza caduta. Per questo esiste l'health check - se lo stato nel pannello è disconnesso, il QR è scaduto e va riscanalizzato.

La trappola che solo chi opera conosce

Due insidie rompono quasi ogni primo rilascio. La prima: il canale di WhatsApp Bot viaggia sulla modalità SMS di GLPI. Questo significa che, perché l'utente riceva, il "segui via SMS" deve essere attivo sulla notifica - in molti cercano una modalità chiamata "WhatsApp" nella schermata delle notifiche e non la trovano, perché appare come SMS. La seconda: GLPI aggiunge la firma e-mail predefinita ("-- " e il piè di pagina) al corpo del modello, e su WhatsApp questo diventa rumore visivo; il modulo rimuove quel blocco all'invio, ma se crei un modello tuo evita di riversarci variabili di firma e-mail. E ricorda: poiché il numero arriva da glpi_users.mobile, un cellulare registrato male è la causa numero uno del "non ho ricevuto" - normalizziamo il prefisso, ma non indoviniamo una cifra scambiata.

A chi è rivolto (e quando non usarlo)

WhatsApp Bot brilla dove l'utente finale non segue l'e-mail: retail, sanità, istruzione, servizi e qualsiasi service desk che serve un pubblico esterno. È eccellente anche per le approvazioni di responsabili che entrano raramente in GLPI. Quando non usarlo: se la tua operazione è al 100% interna, con tecnici che vivono connessi a GLPI, una campanella di notifica in-app si adatta meglio e non dipende da un'istanza WhatsApp. E se la policy aziendale vieta WhatsApp per la comunicazione di lavoro, rispettala - il canale giusto è quello che il team può davvero usare.

Compatibilità

  • GLPI: 10.0+ e 11.0+
  • Piano: FREE
  • Plugin: NexTool 4.2.1+
  • Prerequisito: Evolution API installata e raggiungibile dal server GLPI

Prossimo passo

WhatsApp Bot fa parte di NexTool. Ti serve aiuto per avviare la Evolution API o calibrare quali eventi notificare via WhatsApp? Parla con il team.


Questo contenuto è stato prodotto con l'aiuto dell'intelligenza artificiale e revisionato dal team Nextool Solutions.

Domande Frequenti

Il modulo gratuito WhatsApp Bot di NexTool registra un canale di notifica che riutilizza la modalità SMS di GLPI e invia i messaggi tramite la Evolution API. All'installazione crea nove notifiche WhatsApp per evento (nuovo ticket, follow-up, soluzione, soddisfazione, approvazione e password) e le recapita con coda di ritentativi. Il numero del destinatario arriva dal campo Cellulare dell'utente.

No. Il modulo usa la Evolution API, open source e basata sul protocollo Baileys, che funziona con WhatsApp personale o Business senza costo per messaggio da Meta e senza approvazione dei modelli. Colleghi il numero mittente scansionando un QR Code direttamente nel pannello di GLPI.

Sì. Sia GLPI sia la Evolution API possono girare sulla tua infrastruttura; inserisci solo l'URL e l'API Key nella scheda Connettori. In ambienti su licenza puoi anche usare un'istanza gestita da NexTool, ma la connessione self-hosted mantiene i dati sul tuo server.

Entra in una coda ed è rielaborato automaticamente in lotti fino a 50 ogni 1 minuto, con un massimo di 3 tentativi. Se i tentativi si esauriscono, il record è marcato failed con il motivo dell'errore in last_error - di solito un numero mal formattato o un'istanza disconnessa, non un bug del modulo. Un health check ogni 5 minuti segnala quando la connessione cade.

Le due cause più comuni sono il campo Cellulare vuoto o mal compilato (il numero arriva da glpi_users.mobile, normalizzato con prefisso 55 per il Brasile) e il fatto che il canale viaggia sulla modalità SMS di GLPI - se il 'segui via SMS' non è attivo sulla notifica, non viene inviato nulla. Conviene anche controllare lo stato della connessione nel pannello: se il QR è scaduto, va riscanalizzato.

Sì. Il modulo è FREE, compatibile con GLPI 10.0+ e 11.0+, e richiede il plugin NexTool 4.2.1 o superiore. L'unico prerequisito esterno è una Evolution API raggiungibile dal server GLPI.

Hai bisogno di aiuto?