A sixty-person services company runs almost everything through WhatsApp groups. Client requests, approvals, complaints, the lot. Nobody could answer a simple question: which client has gone quiet, and who was supposed to reply.
This is the crew in Mumbai that builds what you see on this site. No stock team, no AI-generated faces.
This is not a company with a process problem. The work gets done. But the record of it lives in ninety-three group chats on a few people's phones, and a group chat has no memory that anyone can query.
Nobody notices for three weeks, because nobody is watching for an absence.
Everyone assumes somebody else replied. In a busy group, often nobody did.
"What did we promise them in June" means scrolling somebody's phone.
Because their clients are in those groups. The value of the system is precisely that it sees everything, which is exactly why the company that owns it does not want its name attached to a public page about it. We agreed, and this page says nothing about how the capture works.
Nobody wants to read six thousand messages. They want to know five things, and they want the system to raise its hand rather than wait to be asked.
A client that was talking every week and now is not. Silence is the signal, and silence is the one thing a chat app will never surface.
Ranked by how long it has sat there and how badly it reads. The high-severity end of that list is the morning's work.
Tone across a client's groups over time, with a digest every Monday so it gets read instead of discovered.
Commitments made in passing, pulled out and held somewhere they can be checked against what actually shipped.
Across every group at once, scoped to what the person searching is allowed to see.
Aggregate response behaviour for the people team, with no access to client conversations and no phone numbers, ever.

Client and staff names blurred for this page. The counts are real.
Nobody changes how they work. The company just stops finding things out by accident.
Five signals, not a transcript.
Client requests, approvals and complaints, exactly where they were.
A client who talked every week and now does not gets raised.
Questions nobody replied to, ordered by how long and how badly.
Tone across every client, in a digest instead of a discovery.
Your own groups only. A rule in the database, not a filter.
Aggregate response behaviour. No client chats, no phone numbers.
Three roles, each seeing strictly less than the one above. And the access rules are not a claim in a document. Every denial is proved by running the query as that role and showing it comes back empty.
Everything. The only role that can see across every client and every internal group.
Only the groups they are actually a member of. Not a filter in the page, a rule in the database.
Internal groups and team aggregates. Never a client conversation, never a phone number.
We ran the full denial matrix as a logged-out caller and found one hole in the staff roster. It was closed before the role went live.
Before adding anything to version two, we audited version one against its own database. Five things were quietly broken and not one of them showed on the dashboard. A green dashboard is not evidence that a system is working.
Every group added over one week was silently classified as internal, so it was invisible to the client-facing signals. Fixed, and the client group count went from 50 to 74.
Stuck reporting "running" while doing nothing, because it was killed before it could record that it had stopped.
1,300 media messages, zero attachment records, 104 silent errors, all from one missing constraint.
Found by running the denial matrix as an anonymous caller rather than trusting the policy.