In breve
- Azienda che porta spettacoli e formazione nelle scuole, team commerciale di quattro persone, circa 36.000 contatti
- Il problema: nessun modo di sapere quante chiamate si facevano e con che esito; al 05/09/2026 c'erano 116 note recenti, nessuna con un esito
- Cosa ho costruito: CRM con chat WhatsApp integrata, campagne con template approvati da Meta, note con esito e report AI del mattino
- Il risultato: 95,4% dei messaggi di campagna consegnati o letti e 3.174 chiamate con esito tracciate in sette settimane

Il contesto
Il cliente è un'azienda che porta spettacoli e progetti di formazione nelle scuole. Vende a docenti e dirigenti: il primo contatto avviene per telefono e su WhatsApp, poi arrivano la scheda di adesione, la convenzione e i richiami. Il team commerciale è di quattro persone e lavora su un archivio di circa 36.000 contatti fra scuole, insegnanti ed enti.
Fino a giugno 2026 i dati stavano in un database a tabelle: comodo per conservare righe, poco adatto a seguire una trattativa. Non c'erano attività con scadenza, né una cronologia per contatto, né una vista per capire chi stava lavorando cosa. Un tentativo precedente con un CRM più grande era fallito per un motivo semplice: era troppo complesso e il team non lo usava. WhatsApp, il canale principale con i docenti, viveva tutto fuori, sui telefoni.
Il problema
Il punto più scomodo l'ha detto il titolare: le commerciali chiamano anche dal cellulare, quindi il registro delle chiamate del sistema non raccontava niente di vero. Non c'era modo di sapere quante telefonate erano state fatte, né con che esito. Quando ho contato, il 5 settembre 2026, le note recenti scritte da persone erano 116, e nessuna aveva un campo che dicesse com'era andata la chiamata.
Secondo il titolare, l'anno prima una quarantina di clienti erano risultati gestiti ma mai richiamati, senza che nessuno se ne accorgesse in tempo. Per chi vende su una stagione scolastica, un richiamo perso a ottobre è un'adesione che non torna.
Su WhatsApp il problema era diverso: presentare i progetti a migliaia di docenti senza mandare due volte lo stesso messaggio allo stesso numero, e rispettando chi non vuole essere contattato.
Cosa ho costruito
Ho lavorato in quattro passi, da fine giugno a metà ottobre 2026.
- Un CRM che il team usa. Ho scelto EspoCRM installato su un server del cliente, con schermate ridotte per ruolo: chi chiama vede solo i campi che servono. Ho migrato circa 36.000 contatti con attività e tag e ho impostato un backup giornaliero dei dati. Ho scartato i CRM più completi perché riproponevano la complessità che aveva già fatto fallire il primo tentativo.
- WhatsApp dentro la scheda del contatto. Una piccola app incorporata nel CRM mostra una casella unica delle conversazioni e la chat nella scheda di ogni contatto. Il messaggio in arrivo si aggancia al contatto giusto tramite il numero di telefono, l'operatore risponde dal CRM con testo libero o con un template approvato da Meta, e tutto resta nello storico.
- Campagne con template approvati. La selezione parte dal CRM ed esclude chi ha detto no a WhatsApp, chi si è disiscritto e chi ha chiesto una pausa. La lista viene ripulita dai numeri doppi e congelata: chi cambia stato durante la campagna non riceve nulla per errore. Prima del lancio faccio una simulazione senza invii, poi i messaggi partono a lotti in fasce orarie, per esempio 100 alle 10 e 100 alle 16. Ogni messaggio ha un pulsante per disiscriversi che aggiorna tutte le schede con lo stesso numero.
- La nota diventa la chiamata. Visto che le chiamate partono dal cellulare, ho reso la nota nel CRM la prova che la chiamata c'è stata: chi chiama scrive due righe e sceglie un esito da 1 a 5 (1 non risponde, 2 centralino, 3 referente non disponibile, 4 referente raggiunto, 5 contatto caldo), e può programmare subito il richiamo. Dal lunedì al venerdì alle 8:30 il titolare riceve su WhatsApp e per email un report: i numeri li calcola il codice, un modello di intelligenza artificiale scrive solo il commento e tre consigli per la giornata.
Le scelte che contano
- L'esito lo sceglie una persona. Il titolare temeva che l'AI leggesse male note scritte di fretta durante le sessioni di chiamate. Aveva ragione: per questo l'esito è un numero scelto da chi ha parlato col referente, e l'AI non lo reinterpreta.
- Il modello non fa i conti. Tutti i totali del report li calcola il codice. Se il modello non risponde, il report parte lo stesso, con i soli numeri.
- Una pausa non è una disiscrizione. Chi risponde «non quest'anno» deve restare nel CRM ma non ricevere altro per la stagione. Ho aggiunto un classificatore AI che legge i messaggi in arrivo e propone la pausa, dopo aver controllato le altre schede con lo stesso numero, le note commerciali e le adesioni già prese. Sullo storico di 724 messaggi di testo, il 15/10/2026 ha applicato la pausa a 7 contatti, ne ha mandati 184 in revisione a una persona e ha lasciato stare gli altri 533. Un generico «non siamo interessati» non basta per fermare un contatto per un anno.
I risultati
Ho letto tutti i numeri dal CRM e dalle automazioni il 25 ottobre 2026. Le quattro campagne, una presentazione del progetto didattico a fine settembre e tre campagne regionali per uno spettacolo in lingua a ottobre, hanno mandato 2.487 messaggi, prove comprese. Sulle chiamate non esiste un vero prima e dopo: prima non c'era niente da contare, e il risultato è proprio questo.
| Misura | Prima | Dopo | Periodo e fonte |
|---|---|---|---|
| Messaggi di campagna consegnati o letti | non misurato | 2.372 su 2.487 (95,4%) | Stato dei messaggi nel CRM al 25/10/2026, invii dal 21/09 al 20/10/2026 |
| Messaggi di campagna falliti | non misurato | 78 (3,1%) | Stato dei messaggi nel CRM al 25/10/2026 |
| Numeri con doppio invio, campagna di settembre | non misurato | 0 su 1.363 | Report della campagna, 21-29/09/2026 |
| Disiscrizioni col pulsante, campagna di settembre | non misurato | 34 numeri (2,5%) | Report della campagna, 21-29/09/2026 |
| Messaggi in arrivo registrati nel CRM | fuori dal CRM | 793 | Esportazione dal CRM, 21/09-25/10/2026 |
| Chiamate registrate con un esito da 1 a 5 | 116 note recenti, nessuna con esito (05/09) | 3.174 | Esportazione dal CRM, 07/09-25/10/2026 |
| Note con referente raggiunto o contatto caldo (esito 4-5) | non misurato | 480 (15,1%) | Esportazione dal CRM, 07/09-25/10/2026 |
| Contatti che oggi hanno ultimo esito 4 o 5 | non misurato | 215 | Esportazione dal CRM del 25/10/2026 |
| Note con esito per settimana | non misurato | 888, poi 545, poi 438 | Esecuzioni del report: 05-09/10, 12-16/10, 19-22/10/2026 (lunedì-giovedì) |
| Report del mattino partiti | non esisteva | 10 su 10 giorni lavorativi | Esecuzioni delle automazioni, 09/10-23/10/2026 |
La serie settimanale delle note cala: 888 nella settimana del 5 ottobre, 545 in quella del 12, 438 nei primi quattro giorni della settimana del 19. Non ho una spiegazione misurata e non ne invento una. È esattamente il tipo di segnale che il report del mattino serve a mettere davanti al titolare, ogni giorno, invece che a fine stagione.
Limiti della misura. «Letti» è un minimo: chi ha disattivato le conferme di lettura risulta solo consegnato. I 2.487 messaggi sono messaggi, non persone uniche. I 793 messaggi in arrivo comprendono anche conversazioni che non nascono dalle campagne, e i mittenti unici non sono ricavabili (per la campagna di settembre erano 96 numeri al 29/09). Le disiscrizioni delle campagne di ottobre non le ho potute isolare. Il confronto fra 116 note e 3.174 chiamate con esito non è omogeneo: prima il punteggio non esisteva, e dal 9 ottobre una parte delle note arriva dai fogli dei consulenti sincronizzati nel CRM. Non ho un esito commerciale collegato alle campagne: le adesioni stanno in un foglio separato e non le pubblico.
Cosa rifarei diversamente
Due errori, entrambi miei. Il primo: ho fatto il test della campagna di settembre sui telefoni del team usando lo stesso nome della campagna vera. Al lancio, il sistema ha saltato le schede del team come «già inviato», e il team non ha ricevuto il messaggio vero. Ai docenti non è cambiato nulla, ma la regola che ne ho tratto è semplice: il test ha sempre un nome diverso dal lancio.
Il secondo: nella prima versione delle note avevo lasciato il campo standard del CRM accanto al riquadro nuovo con l'esito. Al primo uso vero il titolare ha scritto in tutti e due i posti. L'ho tolto: due posti per la stessa informazione vuol dire dati a metà in entrambi.
Per chi ha senso
Ha senso per chi vende con un team che chiama e scrive su WhatsApp, su liste di migliaia di contatti, e oggi non sa quante chiamate si fanno davvero: scuole, enti, formazione, eventi, servizi alle aziende con una stagione di vendita.
Non serve se i contatti sono poche centinaia e li segue una persona sola: un foglio condiviso fatto bene basta. E non serve se il team non è disposto a scrivere due righe dopo ogni chiamata: senza la nota, il report non ha niente da contare.
Strumenti usati
EspoCRMn8nWhatsApp Business APINext.jsModello linguistico AI
Numeri letti dal CRM, dallo stato dei messaggi e dalle esecuzioni delle automazioni il 25 ottobre 2026, più il report della campagna di settembre del 29/09/2026, senza modificarli.
Chi scrive: Ivan Lao, Make Certified Partner e n8n Expert.
Come è nato questo caso studio: l'ho scritto con l'aiuto dell'intelligenza artificiale, partendo dalla documentazione del progetto e dai dati letti nei sistemi del cliente, senza modificarli. Il nome del cliente non compare finché non lo autorizza. Ho verificato ogni numero e approvato il testo prima di pubblicarlo.