“I want to see the team’s conversations” sounds like one feature. A few questions later, it becomes an access architecture. Which conversations? Which numbers belong to the company? What happens to personal contacts? Who can open an attachment? What remains after data is corrected?

In a separate WhatsApp CRM project, I am working through a system for one manager and several work phone accounts. This is a prepared pilot, not a story of confirmed widespread use. Connecting real channels and checking delivery are separate stages.

Below is the team messaging interface with fictional messages. You can explore how a conversation relates to a work contact without connecting real phone accounts.

Work conversations

Archived interface · demo data

Work conversations
Saved project screen · no interactive controls

First decide what may be stored at all

The foundation is a limited set of work contacts. Membership is checked before saving a message or uploading media. Filtering personal content after it has reached storage is an entirely different level of protection.

A fictional client’s profile sits beside the conversation. Available edits stay inside the demo; sending messages through an external provider is disabled.

Client profile

Archived interface · demo data

Client profile
Saved project screen · no interactive controls

Original messages are stored separately from later work on them. PostgreSQL includes restrictions on modifying source records. A manager’s note, classification or future AI summary must not rewrite what someone actually sent.

Media is kept in private object storage and served only after an access check. Knowing a file’s URL is not enough. This matters especially when convenient previews appear: convenience must not accidentally become a public link to a work document.

This called for a different stack

The interface uses React, the server Fastify, data is in PostgreSQL and attachments use S3-compatible storage. The project includes WhatsApp connection adapters, including Baileys and 360dialog. An adapter in the code does not mean a real account is connected or every event variant has been checked.

Channels do not enable themselves by default. A system like this requires deliberate connection, checks on data boundaries and acceptance against authorised work scenarios. I do not promise immunity from bans, a complete old history or perfect delivery.

Where AI fits in

First of all, in development. Useful future features may include summaries and finding work agreements, but a reliable foundation comes first. If messages are mixed up, lost or available to the wrong people, a clever summary only makes the mistake more convincing.

The case currently shows a prepared pilot: team messaging and a client profile. Connecting real channels and checking delivery remain separate work. AI helped in development; conversation summaries are a possible next step, not an enabled feature.

Related stories: Broker CRM · The early WhatsApp tool.