Case study Services · Anonymous client · Operations intelligence

The company already knew.
It just knew it in ninety-three group chats.

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.

chat Runs on WhatsApp
Client anonymised · by their request
Operations dashboard
Messages read
6,321
Groups watched
93
93
groups, one view
6,321
messages turned into signal
100%
internal messages attributed to a person
3
roles, each seeing less than the last
Manan Mehta with the AI Crew team in the Mumbai office
From our office
Real people. Real office.

This is the crew in Mumbai that builds what you see on this site. No stock team, no AI-generated faces.

01 · The situation

Everything important happened. Nothing important was visible.

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.

notifications_off
A client goes quiet

Nobody notices for three weeks, because nobody is watching for an absence.

help
A question goes unanswered

Everyone assumes somebody else replied. In a busy group, often nobody did.

search_off
Nothing is searchable

"What did we promise them in June" means scrolling somebody's phone.

Why they asked to stay anonymous

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.

02 · What we built

Five signals. Not a transcript.

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.

Signal 01
Who has gone quiet

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.

Signal 02
What was asked and never answered

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.

Signal 03
How a client sounds

Tone across a client's groups over time, with a digest every Monday so it gets read instead of discovered.

Signal 04
What was promised

Commitments made in passing, pulled out and held somewhere they can be checked against what actually shipped.

Signal 05
Search that works

Across every group at once, scoped to what the person searching is allowed to see.

And a people view
Team, not surveillance

Aggregate response behaviour for the people team, with no access to client conversations and no phone numbers, ever.

The group view

Client and staff names blurred for this page. The counts are real.

account_treeHow it works

Ninety-three group chats in. Five signals out.

Nobody changes how they work. The company just stops finding things out by accident.

Comes in
93 WhatsApp groupsRequests, approvals, complaints
badgeThree rolesOwner, team, people team
insights

Operations intelligence

Five signals, not a transcript.

  • check_circleWho has gone quiet
  • check_circleWhat was asked and never answered
  • check_circleTone, promises and search
Goes out
notifications_activeQuiet-client listRefreshed without asking
format_list_numberedUnanswered ladderBy severity and age
mailMonday digestHow every client sounds
searchRole-scoped searchOnly what you may see
Team
01Work stays in the groups

Client requests, approvals and complaints, exactly where they were.

System
notifications_off02Silence becomes a signal

A client who talked every week and now does not gets raised.

System
help03Unanswered, ranked

Questions nobody replied to, ordered by how long and how badly.

Owner
mail04Read it on Monday

Tone across every client, in a digest instead of a discovery.

Team member
search05Search what you can see

Your own groups only. A rule in the database, not a filter.

People team
groups06Team, not surveillance

Aggregate response behaviour. No client chats, no phone numbers.

Built withPostgres with row level securityscheduleScheduled jobsmailMonday digestsearchRole-scoped search
03 · The part that decides whether it survives

A tool that reads everything has to be trusted by everyone.

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.

Owner

Everything. The only role that can see across every client and every internal group.

Full
Team member

Only the groups they are actually a member of. Not a filter in the page, a rule in the database.

Scoped
People and HR

Internal groups and team aggregates. Never a client conversation, never a phone number.

Aggregate only
Proved, not asserted

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.

Tested
04 · The honest bit

The audit found more than the features did.

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.

Postgres with row level securityScheduled jobsMonday digestRole-scoped search
A third of the groups were typed wrong

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.

A scheduled job had been dead for three days

Stuck reporting "running" while doing nothing, because it was killed before it could record that it had stopped.

A table had never held a single row

1,300 media messages, zero attachment records, 104 silent errors, all from one missing constraint.

Anyone logged out could read the staff list

Found by running the denial matrix as an anonymous caller rather than trusting the policy.

Case studies · built by the crew

More case studies. All live.

All case studies
05 · What changed

Silence became something you can see.

Before
  • closeNinety-three group chats, no shared memory
  • closeA quiet client noticed weeks later, by accident
  • closeUnanswered questions invisible by definition
  • closeSearching meant scrolling somebody else's phone
After
  • check6,321 messages across 93 groups in one queryable place
  • checkA quiet-client list, refreshed without anyone asking
  • checkAn unanswered ladder ranked by severity and age
  • checkEvery internal message attributed to a named person