Back to Blog
Product Updates

Under the Hood: How CaseMate Actually Fixes a Councillor's Email

Julie
Under the Hood: How CaseMate Actually Fixes a Councillor's Email

If you've ever spent a Sunday evening hunting for "that email from the resident about the pothole" across two Outlook folders and a phone, you already know the problem. CaseMate's email isn't a thinner. It's a rebuild of the parts that councillors actually use — and the interesting stuff is under the bonnet. Here's a genuinely technical look at what we built and why.

Email that finds your casework itself

The feature our users rave about most isn't clever AI — it's a well-designed convention. Every CaseMate case carries a reference tag, formatted like [Case #123]. When mail arrives, a background worker (casemate:auto-match-emails, run on schedule) parses every subject line through a dedicated CaseReferenceTagService:

Invalid or ambiguous tags are logged and skipped rather than guessed at. There's even a --dry-run mode, because nobody should trust an auto-matcher they haven't seen work first. The result: correspondence lands in the case timeline before you've opened it, and "show me everything about this case" has a one-click answer.

Your inbox, plural — as one

CaseMate speaks IMAP, properly — but you start with zero configuration: every CaseMate user gets a @casemate.uk mailbox as standard, provisioned for you and ready the moment your account is, welcome details included. Then you can attach your existing mailboxes on top of it — the council Outlook, a Gmail for the campaign, whatever you have. Credentials are encrypted at rest, per-tenant keys, the whole hygiene. Incoming mail from every account unifies into a single inbox while keeping a clear account badge on every message, so you always know which "you" is replying.

The send-side niceties that add up

The details matter when you're firing off twenty replies between surgeries:

Filing without filing

You can flag anything for follow-up, snooze it to resurface at a chosen time (8am meetings auto-unsnooze via the scheduler), archive resolved threads out of sight but never out of reach, and soft-delete to a trash bin with one-click restore. Custom folders and rules — sender, subject or recipient conditions with match-any/match-all logic, applied in priority order — sort the predictable post for you. Planning queries in one folder, school run emails in another, and the inbox keeps only what needs a human.

Trust, measured

For anything that genuinely matters — a case decision, a school admission follow-up — you can request a read receipt. When the recipient's client reports back, the timestamp is recorded against the message. Not as a gotcha, but as the answer to "did they get this?" without another email.

Built the boring way (on purpose)

Laravel 12, PostgreSQL, database-per-tenant, everything sensitive encrypted with that tenant's own key. The email features follow the same service-layer discipline as the rest of the platform, and the auto-matcher ships with tests for the tag parser before it shipped to anyone's inbox. Boring architecture is the point: your correspondence deserves predictability, not vibes.

See it on your inbox

All of this is live in CaseMate today. The best way to check it works is to forward this week's casework mail at it — start a trial and watch it organise itself.

Share this post

Back to all posts