Shared-Mailbox Auto-Filing: One Standing Rule Builds Per-Client Email Archives

The mail was all there. Nobody could use it, because using it meant filing it, one message at a time, forever.

Scheduled

What was getting in the way.

A shared mailbox receives client correspondence through per-client group addresses, but every message lands in one undifferentiated pile. The safe default, quarantine everything until a human labels it, means in practice nothing gets filed: hundreds of messages sit unrouted, and the team can't answer "what's the history with this client?" without a manual search each time. Per-message human labeling is the kind of chore that never gets done, so the archive everyone wants never exists.

Context

Universal: the pattern applies to any shared inbox with a naming convention: client mail, vendor invoices, support addresses, per-project aliases.

How the work runs.

  1. 01

    Get the rule in one sentence, not a mapping table

    The operator's instruction is the nomenclature itself: client mail arrives on addresses that follow a known naming pattern tied to the client registry. Nobody enumerates clients or builds a routing table by hand.

  2. 02

    Resolve each message from evidence, not guesswork

    The ingestion job reads multiple address headers on every message, not just the visible "to" line, to find the group address, then resolves it against the client registry to pick the destination folder.

  3. 03

    Backfill the entire history in the same pass

    The standing rule applies retroactively: the quarantined backlog is re-processed under the same logic, so the archives start complete instead of starting from today.

  4. 04

    Surface the ambiguous, never guess it

    Group names that don't resolve cleanly against the registry are not force-filed: they're listed for a human to rule on. In the first pass a small handful of names came back for review while the rest filed automatically.

  5. 05

    Keep a ledger and keep running

    Every filed message gets a ledger entry (what arrived, where it was filed, under which rule), the job runs on a schedule, and the test suite covering the routing logic runs green before the automation is trusted.

Evidence from the workflow.

Illustration: a quarantined mailbox pile of 506 messages beside per-client archive folders filled by one standing filing rule, with four unresolved names escalated to a human. Names and details are fictional.
One standing rule filed the whole backlog into per-client archives; the ambiguous names went to a human instead of a guess.

Each system has a role.

  • intake (the undifferentiated pile)

    Shared mailbox / group addresses

  • record of truth (what the address nomenclature resolves against)

    Client registry

  • action (reads headers, files messages, logs every decision)

    Ingestion job + ledger

  • record of truth (the history the team can finally use)

    Per-client archive folders

Why this is Operator.

Owns a workflow end to end, running the process inside the authority you set.

  1. 01

    The standing instruction comes from the operator, once, in writing. Unresolvable names are escalated, never guessed. Every filing decision is logged in a ledger, so any message's routing can be audited after the fact. Message content is read only for routing; the archives live inside the company's own systems.

Impact / Outcomes

A mailbox that was effectively 100% quarantined went to over 80% auto-filed in one session: hundreds of messages organized into dozens of per-client folders, full history included.

The handful of group names the rule couldn't resolve were surfaced for a human decision instead of being guessed: the archive's accuracy is protected by what the agent refused to file.

"What's the history with this client?" becomes a folder open instead of a mailbox excavation, and every future message files itself under the same standing rule.

← All use cases

Find where a workflow like this fits.

Start with the systems, work, constraints, and authority already present in your operation.