Il problema
Molte piccole e medie imprese parlano con i clienti su WhatsApp, spesso da un solo telefono. Quando le conversazioni crescono servono più persone sullo stesso numero, regole chiare su chi risponde, uno storico condiviso e la possibilità di collegare le conversazioni agli altri strumenti aziendali.
Recapito nasce dalla chat che prima viveva dentro UnigestPro: l’abbiamo resa un prodotto autonomo, con un’API stabile per integrarla anche in sistemi di terzi.
Contesto e team
Recapito è un prodotto dell’azienda in cui lavoro, ancora in costruzione, e ne sono Head of Product. Sul piano tecnico, il nucleo (canali, casella condivisa, campagne, automazioni) lo hanno sviluppato altri membri del team. Io ho lavorato alle fondamenta che Recapito condivide con gli altri prodotti e alla sua integrazione dentro UnigestPro.
Il mio contributo
- L’adozione dello standard condiviso per i file: caricamento diretto su S3 e anteprime generate dal worker comune.
- Code e spazi di archiviazione separati per ambiente.
- Il design system comune e le utilità condivise del frontend.
- La regola comune per le password: almeno 12 caratteri, rifiuto delle password trapelate e dei dati personali dell’utente.
- L’integrazione in UnigestPro, dove Recapito compare come servizio con pagine native e il token dell’API non arriva mai al browser.
Scelte progettuali
Il database decide, il socket avvisa
Il tempo reale è un servizio Node.js separato, perché tenere aperte molte connessioni WebSocket è un lavoro diverso dal rispondere a richieste HTTP. Il socket però non è la fonte dei dati: dice al client che qualcosa è cambiato, e ogni schermata si può sempre ricostruire dall’API. Più istanze del servizio condividono Redis, senza bisogno di sessioni legate a un server.
Un evento non si perde
Il cambio di stato e l’evento da pubblicare vengono scritti nella stessa transazione; un processo separato li consegna poi al tempo reale e ai webhook. Messaggi, conferme di caricamento e consegne dei webhook sono idempotenti: arrivare due volte non produce effetti doppi.
Un monolite modulare
Il backend è un’unica applicazione Laravel divisa in moduli per dominio. Partire con molti microservizi avrebbe moltiplicato il lavoro operativo senza un vantaggio reale in questa fase. Le chiamate verso Meta passano da code dedicate e non rallentano l’interfaccia.
Misurare le conversioni
I moduli WhatsApp Flow costruiti in Recapito possono inviare le conversioni a GA4, a Google Tag Manager lato server e a Google Ads: una conversazione diventa un risultato misurabile.
Risultato e stato
Recapito è in sviluppo. Oggi gestisce WhatsApp Business e Telegram con casella condivisa, ruoli, template, campagne con consenso, automazioni e statistiche in tempo reale. Espone un’API documentata e webhook firmati, ed è integrato in UnigestPro come servizio.