Ultimamente ho completato e messo in produzione un progetto che lavorava nella mia testa da un po': permettere ai clienti di iscriversi al programma fedeltà in negozio tramite WhatsApp.

Il risultato è un flusso completamente digitale, veloce e a basso costo operativo. In questo articolo racconto come l'ho costruito, le scelte tecniche che ho fatto e — soprattutto — il ragionamento dietro ogni decisione.


Il problema di partenza

La registrazione tradizionale alla fidelity card in negozio prevede diversi passaggi: il cliente accede ad una pagina di registrazione sul nostro sito, dove fornisce i suoi dati, il sistema invia un codice OTP via SMS per verificare il numero di cellulare, il cliente inserisce il codice e solo allora la registrazione si completa. Ci piace verificare l'SMS perché è un canale utile per l'invio di campagne marketing, oggi ancor di più con l'avvento dei Rich SMS (Rich Communication Services).

Questo processo funziona, ma ha tre criticità molto concrete dal punto di vista operativo:


L'intuizione chiave: WhatsApp verifica già il numero

Quando un utente installa WhatsApp, il numero di cellulare viene verificato dalla piattaforma tramite SMS o chiamata. Questo significa che se un cliente mi scrive su WhatsApp, il suo numero è già verificato dall'app di Meta.

In altre parole, se sto conversando con un numero su WhatsApp, so già che appartiene a qualcuno che ha superato una verifica iniziale sulla piattaforma.

Eliminare l'OTP non è stata una scorciatoia, ma una scelta tecnica consapevole: ho deciso di appoggiarmi alla verifica già avvenuta a monte, all'interno dell'ecosistema WhatsApp, evitando di duplicare un controllo che il sistema ha già eseguito. Il risultato è un passaggio in meno per il cliente e un costo eliminato per l'azienda.


Lo stack tecnico: integrazione diretta, senza Business Provider

La prima scelta architetturale è stata evitare un Business Solution Provider (BSP) intermedio. Ho optato per una integrazione diretta con WhatsApp Cloud API, che Meta mette a disposizione attraverso la piattaforma business messaging.

Il progetto gira su Vercel, con funzioni serverless che orchestrano le chiamate tra:

Ho scelto Vercel per evitare gestione di server, avere deploy rapidi e scalabilità automatica anche in presenza di picchi (es. campagne o saldi).

Nessun intermediario, nessun costo aggiuntivo per messaggi oltre a quelli previsti da WhatsApp, e pieno controllo sul flusso dati end-to-end.


L'app su Meta Developers, i webhook e le Cloud API

Per poter utilizzare direttamente WhatsApp Cloud API ho dovuto creare una app su Meta Developers e configurare:

In pratica l'app su Meta Developers funge da ponte di autenticazione e configurazione tra:

  1. WhatsApp (lato cliente)
  2. Le API Cloud (lato server)
  3. Il mio backend su Vercel, che ascolta i webhook e decide come instradare i dati verso il CRM e gli altri servizi coinvolti

Questa impostazione mi permette di aggiungere nuovi use case in futuro (es. notifiche post-acquisto o campagne di loyalty) senza dover ripensare l'architettura di base.


WhatsApp Flows: il modulo dentro la chat

Il cuore dell'esperienza utente è un WhatsApp Flow: un modulo interattivo che si apre direttamente all'interno della conversazione WhatsApp, senza aprire browser esterni o app dedicate.

Il Flow guida il cliente in una sequenza di step strutturati:

  1. Inserimento dati anagrafici (nome, cognome, email, data di nascita)
  2. Raccolta consensi privacy, con testo recuperato dinamicamente da Iubenda
  3. Conferma finale e invio dei dati

WhatsApp Flows è pensato proprio per questi casi d'uso strutturati: lead generation, onboarding, raccolta preferenze, iscrizioni a programmi fedeltà, quote personalizzate, ecc. In questo scenario ho usato il Flow come "form embedded" dentro la chat, riducendo al minimo gli attriti rispetto a una classica pagina web.


Verifica duplicati in tempo reale

Prima di procedere con la registrazione, il sistema controlla in tempo reale se il cliente risulta già iscritto al programma fedeltà, verificando sia l'email che il numero di cellulare tramite le API del CRM.

Il flusso è questo:

  1. Il cliente completa il Flow in WhatsApp
  2. La funzione serverless riceve i dati tramite webhook
  3. Il backend interroga le API del CRM su email e cellulare
  4. Se il cliente esiste già, il Flow restituisce un messaggio di errore dedicato e blocca la nuova registrazione

Questo approccio evita duplicati nel database, mantiene pulita la base clienti e gestisce in modo elegante il caso — frequente — del cliente che non ricorda di essere già iscritto.


Niente più OTP: cosa abbiamo guadagnato

Nel flusso WhatsApp ho eliminato completamente la richiesta di OTP via SMS. Il numero di cellulare arriva da WhatsApp, quindi è già stato validato a monte.

Da questa scelta discendono tre benefici immediati:

Dal punto di vista della UX, il cliente percepisce un flusso molto più lineare: apre WhatsApp, compila, invia, riceve la conferma e la card digitale.


La fidelity card digitale a fine flusso

Al termine della registrazione andata a buon fine, il sistema genera e invia al cliente un messaggio con un'immagine JPG contenente il barcode EAN della sua fidelity card.

Questo consente al cliente di:

Per il negozio significa zero attesa, zero frizioni al momento del primo acquisto post-iscrizione.


In continuità con la nuova WhatsApp Business Platform

Negli ultimi mesi Meta ha spinto molto sulla WhatsApp Business Platform come infrastruttura per marketing, CRM e automazione, non solo come canale di assistenza. Il progetto che ho implementato si inserisce perfettamente in questa direzione, sfruttando in particolare:

In parallelo, il nuovo modello di pricing "a messaggio" e la semplificazione delle categorie di template spingono verso un uso del canale sempre più mirato, rilevante e integrato nelle logiche di CRM conversazionale.


Opt-in e notifiche future su WhatsApp

Un altro aspetto importante dal punto di vista CRM è la gestione del consenso. Tutti i contatti che si registrano tramite questo flusso e per i quali viene memorizzato whatsapp_optin = yes possono essere utilizzati in futuro per inviare notifiche push su WhatsApp, nel rispetto delle policy della piattaforma e delle normative privacy.

In pratica, la registrazione non serve solo ad attivare la card, ma costruisce un canale di comunicazione conversazionale pronto per:

Dal punto di vista legale, ogni registrazione viene tracciata con origine canale, timestamp e versione di informativa utilizzata, così da avere una prova puntuale del consenso.


I risultati concreti

Metto a confronto il flusso tradizionale e quello via WhatsApp:

Flusso tradizionale Flusso WhatsApp
Verifica numero OTP via SMS Nativamente garantita da WhatsApp
Costo per registrazione SMS + infrastruttura Nessun costo SMS aggiuntivo
Problemi di copertura Frequenti Molto ridotti (usa dati/Wi-Fi)
Tempo medio registrazione 2–4 minuti ~1 minuto
Card disponibile subito Sì (barcode sul sito) Sì (barcode via chat)
Dipendenze Piattaforma Ecommerce Nessuna (Cloud API diretta)

Questo progetto dimostra che, partendo da un'esigenza molto operativa — semplificare la registrazione alla fidelity in negozio — è possibile usare la WhatsApp Business Platform per ridisegnare il processo in chiave omnicanale, riducendo costi e frizioni e migliorando al tempo stesso l'esperienza del cliente.

La chiave è stata ragionare su cosa la piattaforma fa già (verifica del numero, interfaccia conversazionale, Flows) e costruire intorno un'architettura di integrazione pulita con CRM e sistemi legacy, invece di trattare WhatsApp come un "semplice canale in più".

Nel mio caso questo progetto è nato da un'esigenza molto concreta in negozio, ma gli stessi principi si applicano a onboarding, post-vendita e customer care in qualunque contesto retail.

Se stai lavorando su progetti simili o hai domande sull'architettura, contattami su Linkedin: sarò felice di confrontarmi.