WhatsApp Business Platform
Servizi WhatsApp che reggono quando li usano milioni di persone.
Ho passato sei anni a costruire una piattaforma WhatsApp in Turn.io, usata da servizi sanitari in tutto il mondo e con milioni di messaggi al giorno. Posso sviluppare la tua integrazione con la Cloud API, il tuo chatbot o il tuo agente AI, oppure sistemare quello che hai già.
Vista divisa animata di un'integrazione con WhatsApp Cloud API. A sinistra: una conversazione su telefono in cui un'utente chiede aiuto, tocca dei pulsanti di risposta, sceglie da una lista, riceve la risposta di un agent AI, passa a un'infermiera e giorni dopo riceve un promemoria con template approvato. A destra: gli eventi di backend dietro ogni passo, tra cui verifica della firma del webhook, deduplica, ordinamento per contatto, run dell'agent con tool, un retry dopo un 429, le callback di stato e la finestra di assistenza di 24 ore.
Ciao, sono incinta di 30 settimane e avrei bisogno di un consiglio
Ciao! Sono l'assistente dell'Ambulatorio Centrale. Come posso aiutarti?
Fai una domandaPrenota visitaParla con infermiera- Ciao! Sono l'assistente dell'Ambulatorio Centrale. Come posso aiutarti?
Fai una domanda
Certo. Di cosa si tratta?
Scegli un argomento- Certo. Di cosa si tratta?
Sintomi
Questa settimana ho mal di testa quasi tutti i pomeriggi. È normale?
- ✦ agent AI
Il mal di testa è frequente in gravidanza, ma prima voglio chiederti una cosa: hai notato vista offuscata o gonfiore al viso o alle mani?
sì, a volte vedo un po' sfocato
- L'infermiera Amina è entrata nella chat
- Infermiera Amina
Ciao, sono Amina, l'infermiera. Mal di testa e vista offuscata vanno controllati oggi. Riesci a venire all'Ambulatorio Centrale alle 14:00?
Sì, alle 14 ci sono
- 3 giorni dopo
- template · appointment_reminder
Promemoria: il tuo controllo all'Ambulatorio Centrale è domani alle 9:00. Ci sarai?
ConfermoSposta - Promemoria: il tuo controllo all'Ambulatorio Centrale è domani alle 9:00. Ci sarai?
Confermo
- in
POST /webhook ← messages[0].type=text200 · 3ms - sys
verifica X-Hub-Signature-256✓ - sys
dedupe per message id · wamid.HBgL…a1nuovo - sys
enqueue → processo della conversazione (ordine per contatto)seq 1 - out
POST /{phone-number-id}/messages · status=read200 - sys
flow "prenatal_menu" → step welcome2ms - out
POST /{phone-number-id}/messages · type=interactive/button200 · wamid…c7 - in
POST /webhook ← statuses: sent → delivered → readletto - in
POST /webhook ← interactive.button_reply.id="ask"200 - sys
dedupe ✓ · enqueue → stesso processo, in ordineseq 2 - out
POST /{phone-number-id}/messages · type=interactive/list429 - sys
429 limite di throughput → retry tra 200ms (+ jitter)backoff - out
POST /{phone-number-id}/messages · type=interactive/list200 · wamid…d4 - in
POST /webhook ← interactive.list_reply.id="symptoms"200 - in
POST /webhook ← messages[0].type=text200 - ai
agent.run (tools: 2, 1.8s)ok - ai
├ tool.call guidelines.search → 3 chunks212ms - ai
└ tool.call risk.screenmedio - out
POST /{phone-number-id}/messages · type=text200 · wamid…e9 - in
POST /webhook ← messages[0].type=text200 - ai
agent.run → risk.screenrischio: alto - hum
handover → assegnazione in inboxAmina · 38s - sys
agent in pausa per questo contattoin pausa - out
POST /{phone-number-id}/messages · inbox agent=amina200 · wamid…f1 - in
POST /webhook ← type=text → instradato alla inbox200 - 3 giorni dopo
- sys
finestra di 24h chiusa → template "appointment_reminder" (utility)approvato - out
POST /{phone-number-id}/messages · type=template200 · wamid…g3 - in
POST /webhook ← statuses: sent → delivered → readletto - in
POST /webhook ← button.payload="confirm"200 - sys
appointment.confirmed · finestra di 24h riapertaaperta
Perché i servizi WhatsApp si rompono in produzione
Un prototipo su WhatsApp si fa in fretta. Il difficile arriva quando lo usano persone vere: i webhook arrivano due volte o nell’ordine sbagliato, una campagna scatena migliaia di risposte in un minuto, la finestra di assistenza clienti di 24 ore si chiude a metà conversazione, un template viene messo in pausa, e l’unico messaggio che contava davvero non riceve mai lo stato delivered.
Ho passato sei anni su questi problemi in Turn.io, una piattaforma WhatsApp usata da organizzazioni come l’OMS e da programmi sanitari nazionali per raggiungere milioni di persone. Ci ho costruito il motore di invio massivo dietro grandi campagne di salute pubblica, l’infrastruttura di job e trigger, lo storage su Postgres ed Elasticsearch mentre i dati dei messaggi crescevano di milioni di righe al giorno e, dal 2023, gli agenti AI che rispondono su WhatsApp.
Cosa costruisco
Integrazioni con la Cloud API. Un receiver di webhook che verifica X-Hub-Signature-256 sul body grezzo, risponde subito ed elabora in modo asincrono, deduplica per ID del messaggio e mantiene in ordine i messaggi di ogni contatto. Invii in uscita che gestiscono come si deve errori di throttling, regole dei template e media.
Messaggistica massiva e campagne. Una pipeline guidata dalla domanda con rate limiting, backpressure, retry e tracciamento delle consegne, così una campagna verso un milione di contatti non manda in crisi il tuo sistema e non ti fa finire in throttling.
Chatbot e agenti AI. Flussi di conversazione, messaggi interattivi (pulsanti, liste), agenti AI con tool e un handover agli operatori umani che non perde il contesto. Posso collegarli al tuo CRM, alla cartella clinica elettronica, al sistema di prenotazione o di pagamento.
Voce. Chiamate WhatsApp combinate con modelli vocali real-time e LLM piccoli e veloci, per conversazioni con una latenza abbastanza bassa da risultare naturali.
Come lavoro
- Mappare prima le conversazioni. Cosa vogliono ottenere gli utenti, cosa non deve mai andare storto, quali messaggi partono dall’azienda e quindi richiedono un template.
- Progettare per la consegna at-least-once. Su WhatsApp tutto può arrivare due volte o in ritardo, quindi idempotenza e ordinamento vengono prima di tutto.
- Rilasciare presto una versione minima e osservare il traffico reale: tassi di consegna, tempi di risposta, punti di abbandono.
- Misurare e iterare. Per gli agenti AI questo significa eval su conversazioni simulate e reali, non sensazioni.
Servizi correlati
- Sistemi real-time e distribuiti: il motore di invio e l’elaborazione che reggono WhatsApp su larga scala.
- Orchestrazione di agenti AI ed eval: agenti che rispondono su WhatsApp, e come dimostrare che sono sicuri.
Come possiamo collaborare
Sviluppo di un’integrazione
Sviluppo a perimetro definito di un’integrazione o di un servizio sulla WhatsApp Cloud API, dal receiver dei webhook fino al lancio in produzione.
Revisione dell’architettura
Da una a due settimane di analisi di un’integrazione WhatsApp esistente: affidabilità, ordinamento, idempotenza e costi.
Senior engineer nel tuo team
Part-time nel tuo team per qualche mese, mentre lanci o fai crescere un servizio WhatsApp.
Domande frequenti
Lavori con la WhatsApp Cloud API o con la On-Premises API?
I nuovi progetti dovrebbero usare la Cloud API, ospitata da Meta, ed è quella su cui lavoro oggi. Ho lavorato anche su configurazioni più vecchie e posso aiutarti a pianificare una migrazione.
Puoi costruire un agente AI che risponde su WhatsApp?
Sì. In Turn.io ho costruito l’agent harness che le organizzazioni usano per far girare agenti AI su WhatsApp, con uso di tool, guardrail e handover agli operatori umani. Posso fare lo stesso per il tuo servizio, insieme alle eval che dimostrano che l’agente si comporta come deve.
Come si inviano milioni di messaggi WhatsApp senza incappare nel throttling?
Con una pipeline di invio guidata dalla domanda, che applica limiti di throughput per numero con un token bucket, ripete con backoff e jitter le richieste respinte per throttling e registra ogni webhook di stato. Ho costruito un motore di questo tipo per campagne nazionali di salute pubblica.
Lavori solo con organizzazioni sanitarie?
No. Gran parte della mia esperienza con WhatsApp viene da servizi sanitari e a impatto sociale, dove l’affidabilità conta molto, ma l’ingegneria è la stessa per e-commerce, assistenza clienti, fintech o logistica.
Articoli correlati
Costruire un receiver di webhook affidabile per la WhatsApp Cloud API su larga scala
Webhook della WhatsApp Cloud API su larga scala: verifica della firma sul body grezzo, risposta 200 immediata, deduplica, ordine per contatto e media.
Backpressure in Elixir: inviare milioni di messaggi WhatsApp senza crollare
Progettare un motore di invio massivo WhatsApp in Elixir: pipeline Broadway guidate dalla domanda, token bucket per numero, retry con jitter e stati in batch.
Come partizionare una tabella PostgreSQL da 1 TB senza downtime: il metodo della default partition
Partiziona una tabella Postgres da 1 TB senza downtime: agganciala come DEFAULT partition, copia lo storico con job Oban e fai lo swap in una transazione breve.
Il partitioning di PostgreSQL in pratica: chiavi di partizione, pruning, index e retention
Come si comporta davvero il partitioning di PostgreSQL: scelta della chiave, pruning verificato con EXPLAIN, index, vincoli, retention e le insidie di Ecto.