Every district office runs on the same unit of work: one constituent, one issue, one case. Numa treats a case as a thing with a lifecycle — it arrives, gets a clock, gets worked, and gets closed with a record — and most of the quiet failures in constituent services come from offices where that lifecycle lives in somebody’s inbox instead.

It starts in triage, not a personal folder

Mail to the office address lands in Numa’s triage inbox, where the whole staff can see it. Each message gets one of two verbs: promote it to a case with a category and an assignee, or reject it with a reason that stays on the record. Nothing sits unread in a folder that empties out when a staffer leaves.

Kennedy, the office AI, pre-suggests a category on each message and flags lookalikes — three emails about Palisade Ave flooding are probably one case with three reporters, so promote the first and attach the rest. Triage once or twice a day and the inbox stays a doorway, not a backlog.

The clock starts when the case does

Categories in Numa carry the office’s promises: each one has a default SLA in hours, a default assignee, and the hint Kennedy uses to auto-categorize inbound mail. The moment a message becomes a Benefits case, it inherits the Benefits clock.

A background worker watches every due date. When a case runs out of time, it’s flagged on the queue and the dashboard and the assignee gets an email — the office finds out from the system, not from the constituent’s second phone call. The queue sorts itself the way a morning should run: breaches first, urgent second, oldest third, with the top five breaches surfaced on Home before anyone opens a filter.

One piece of advice we give every office at onboarding: set SLAs you can keep. A 48-hour promise on cases that depend on a state agency will breach weekly and teach staff to ignore the color red. An honest 5-day SLA that holds is worth more than an aspirational 2-day one that doesn’t.

The case is the memory

Open a case and everything about it is in one place: status, priority, assignee, the SLA due date, and the constituent — linked to their record, with every case they’ve ever filed a click away. Below that runs the thread: internal notes, external emails, call logs, in reverse chronological order. History tracks every status change and reassignment automatically.

Cases rarely involve just the office and the constituent — there’s usually an agency sitting on a claim in the middle. The Involved parties panel attaches the agencies, offices, and organizations a case has to move through, drawn from a directory the whole office builds, and every call to them is logged on the case it was for. The third time a case runs through the same department, the contact is already on file.

If it happened, it goes in the thread. A case that lives in the record survives staff turnover, FOIA requests, and the next transition.

The constituent checks it themselves

Every case can carry a private status link — a token URL the constituent opens to see progress and office messages, with sensitive notes excluded and no login required. Send it in the first reply, every time. It’s the cheapest goodwill an office has, and it turns the “any update?” call into a page the constituent already refreshed.

If a link leaks, regenerate the token: the old one dies instantly and the case history is untouched.


The full detail lives in the docs: Casework covers the queue, categories and SLAs, and status links, and For constituents shows the other side of the portal. If you’d rather see it running, request a demo — we’ll walk a case from inbox to closed.