Skip to content
Industries

Every record you keep is disclosable.

A public-records request arrives naming an address and a date range. Someone now has to search the 311 queue, the permit file, a utility account and four inboxes, then redact what comes back. We build the constituent record that turns that search into a report — service requests, routing, response targets and notices in HubSpot, with permitting and records still holding the file.

RequestsRecordsNoticesGrants
The problem

Eight departments, one resident, no thread.

Code enforcement holds a case. Utilities holds an account. The permit desk holds an applicant, Parks holds a registration, and the 311 centre holds a call that belongs to all four. Each system is correct inside its own walls. The resident makes a fifth call, reads out the address again, and waits the sum of four queues that nobody measures together.

Constituents are not leads.

What we build

Where a request becomes a resolved case.

One record, many departments

A constituent object joined to the permit number in Accela or Tyler EnerGov and the case number in the 311 queue, so a resident's history reads across departments without either system giving up authority over its own file.

What you can produce, and what you purge

Every property carries a records schedule and a disposition date, agreed with the records officer before launch. Free-text notes are constrained, and producing a file for a public-records request is a defined report, not a weekend of screenshots.

Forms built for the 508 review

Public-facing forms rebuilt to WCAG 2.1 AA: label association, keyboard order, error text a screen reader announces, contrast checked against the state template. Spanish and Creole handled as language variants, not duplicate forms nobody maintains.

Pre-award work, on a calendar

Opportunities from Grants.gov and state portals modelled as a pre-award pipeline with submission deadline, period of performance and match requirement, so the application queue and the reporting calendar live in one system.

What Bonfire owns, and what comes back

Solicitations stay in Bonfire or OpenGov where they belong. The vendor list, pre-bid attendance and addendum acknowledgements come back as contact activity, so the agency can show outreach was open and evidenced.

Reporting for an agenda packet

Backlog by department, median days to close, requests per council district joined to the parcel layer in ArcGIS. Built once, so the clerk presents the number instead of rebuilding it the night before.

How it runs

Scoped to one budget cycle.

01

Needs assessment

We sit with the records officer, the 311 supervisor and the department that owns the permit file. We map where a request enters, where it stalls, and which system already holds the authoritative record.

02

Records schedule

We write the object model — constituent, case, property, department — and settle the retention schedule and the disclosure surface before a single field is built. Nothing enters the CRM that cannot be produced or purged.

03

Build and pilot

Routing, response targets by department, notice templates kept apart from subscription sends, and the dashboards the manager presents. Integrations run one direction wherever the system of record must stay authoritative.

04

Acceptance

Documentation written for staff turnover and for a public-records officer, admin training for each department, and a change log. The agency owns the portal, the data model and the runbook when we leave.

Where it usually breaks

The unsubscribe silences the emergency notice.

A resident opts out of the parks newsletter. Two winters later the same global suppression blocks the boil-water notice, the hearing notification and the utility shut-off warning, because all of it left the same portal as marketing email. Legally required notices and subscription communications have to split at the send layer — different subscription types, different consent basis, settled before the first send.

Operators we build with
ThalesImpervaCameoMozAPMEXRaySecurBolsterHuifyRegency Health CareNiche Academy

We start with the retention schedule.