The problem
Many small and medium-sized businesses talk to their customers on WhatsApp, often from a single phone. As conversations grow, they need several people on the same number, clear rules on who replies, a shared history and a way to connect conversations to their other business tools.
Recapito grew out of the chat that used to live inside UnigestPro: we turned it into a standalone product, with a stable API so it can also be integrated into third-party systems.
Context and team
Recapito is a product of the company I work for, still being built, and I’m its Head of Product. On the technical side, the core (channels, shared inbox, campaigns, automations) was built by other members of the team. I worked on the foundations Recapito shares with the other products, and on its integration into UnigestPro.
My contribution
- Adopting the shared file standard: direct uploads to S3 and previews generated by the common worker.
- Separate queues and storage per environment.
- The common design system and the shared frontend utilities.
- The common password rule: at least 12 characters, rejecting leaked passwords and the user’s personal data.
- The integration into UnigestPro, where Recapito appears as a service with native pages and the API token never reaches the browser.
Design choices
The database decides, the socket notifies
Real time is a separate Node.js service, because holding many WebSocket connections open is a different job from answering HTTP requests. But the socket is not the source of data: it tells the client that something has changed, and every screen can always be rebuilt from the API. Multiple instances of the service share Redis, with no need for sessions tied to one server.
No event gets lost
The state change and the event to publish are written in the same transaction; a separate process then delivers them to the real-time service and the webhooks. Messages, upload confirmations and webhook deliveries are idempotent: arriving twice doesn’t produce double effects.
A modular monolith
The backend is a single Laravel application split into modules by domain. Starting with many microservices would have multiplied the operational work without a real benefit at this stage. Calls to Meta go through dedicated queues and don’t slow down the interface.
Measuring conversions
WhatsApp Flow forms built in Recapito can send conversions to GA4, server-side Google Tag Manager and Google Ads: a conversation becomes a measurable result.
Outcome and status
Recapito is in development. Today it handles WhatsApp Business and Telegram with a shared inbox, roles, templates, consent-based campaigns, automations and real-time statistics. It exposes a documented API and signed webhooks, and it is integrated into UnigestPro as a service.