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
| Funzione | GLPI nativo (e-mail SMTP) | WhatsApp Bot + Evolution API |
|---|---|---|
| Canale di consegna | E-mail transazionale | WhatsApp (messaggio sul cellulare) |
| Tasso di lettura | Basso (spam, nessuno apre) | Alto (canale quotidiano) |
| Reinvio in caso di errore | Coda, senza ritentativo per canale | Coda propria, 3 tentativi, lotti da 50/min |
| Origine del numero | E-mail dell'utente | Campo Cellulare (glpi_users.mobile), normalizzato |
| Infrastruttura | Server SMTP | Evolution API self-hosted o gestita |
| Costo per messaggio | Zero (SMTP proprio) | Zero (nessuna API Meta a pagamento) |
Come attivarlo
- Installa NexTool sul tuo GLPI e vai in Configurazione > NexTool > Moduli.
- Attiva il modulo WhatsApp Bot e clicca su Configura.
- Nella scheda Connettori, inserisci l'URL e l'API Key della tua Evolution API e genera il QR Code per connettere il numero mittente.
- In Amministrazione > Utenti, compila il campo Cellulare dei destinatari (prefisso+area+numero, es.: 5511999998888).
- Verifica che il cron esterno di GLPI sia in esecuzione - le CronTask del modulo sono
MODE_EXTERNALe 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.