Request a Demo
Platform Infrastructure

Case Management

The universal case lifecycle engine for the Civic platform — every citizen interaction, investigation, application, or service request from intake to resolution runs on Case Management.

99.95%

Uptime SLA

<1s

Case Creation

<2s

Search (1M cases)

500

Concurrent Users

Purpose-Built for Canadian Municipalities

Ontario Compliant
MFIPPA Ready
AODA Accessible
Bilingual Support
Canadian Hosted
SOC 2 Aligned

How It Works

The identity journey, step by step

From first registration to golden record resolution — how a resident's identity evolves across the platform.

01

Citizen Files a Report

A resident reports a noise complaint through the citizen portal.

How it works

The resident logs into the citizen portal, selects 'Report a Problem', fills out the intake form with address, description, and photos, and submits. The system auto-classifies the complaint as Bylaw → Noise → Construction, assigns a reference number (BYL-2026-001234), and routes it to the bylaw triage queue.

Step 1 of 5

Purpose & Scope

What this module owns

Clear ownership boundaries prevent duplication and ensure every capability has exactly one authoritative home.

Owns

12

Delegated to

5

Workflow orchestration

workflow-automation

Form intake design

forms-engine

Notification delivery

notification-engine

Document storage

document-records

Domain-specific business rules (e.g., bylaw penalties, permit fees)

consuming modules

These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.

Core Capabilities

What it does

5 capability groups comprising 9 discrete capabilities — each with API surface, business rules, and data ownership.

Admin UI to create new case types with custom fields, statuses, and workflows — no code changes required.

No-Code Type Definition

Admin UI to create new case types with custom fields, statuses, and workflows.

Custom Fields

Add custom fields per case type: text, number, date, dropdown (configurable options), lookup, currency, checkbox, file, multi-select.

Status Configuration

Define valid statuses and transitions per case type (plugged into workflow-automation state machine).

SLA Configuration

Define response and resolution SLA targets per case type × priority (plugged into workflow-automation SLA engine).

Hierarchical categorization with configurable priority levels and per-status required fields for each case type.

Category/Sub-Category

Hierarchical categorization (e.g., Infrastructure → Road → Pothole; Bylaw → Noise → Construction).

Priority Levels

Configurable priority levels per type (default: Critical, High, Medium, Low).

Required Fields Per Status

Define which fields become required at which status transition.

Templates

Pre-configured case types for common municipal use cases.

Real-World Scenarios

Who uses this, and how

4 persona-driven scenarios showing how Case Management works in practice — from resident registration to privacy compliance.

311 Call Centre Agent

311 Service Request Intake

A resident calls 311 to report a pothole on their street. The agent creates a case and it is routed to the roads department.

Steps

  1. 1Agent searches by caller's address and confirms the location
  2. 2Agent selects case type 'Infrastructure → Road → Pothole' from the hierarchical category picker
  3. 3Agent fills in the intake form with location details, severity, and caller description
  4. 4System generates reference number (INF-2026-004567) and sends SMS confirmation to the caller
  5. 5Auto-routing assigns the case to the Roads Maintenance queue based on ward rules
  6. 6Duplicate detection flags a similar pothole report at the same address from last week — agent links the cases as related

Outcome

Case created in under 60 seconds. The roads crew sees it in their queue with full context, linked to the duplicate report. The caller receives a reference number for tracking.

View scenario

Bylaw Enforcement Officer

Multi-Property Bylaw Investigation

A noise complaint about a construction site affects multiple adjacent properties. The officer needs to inspect each and track findings independently.

Steps

  1. 1Officer receives the parent case for the noise complaint
  2. 2Officer creates three sub-cases — one for each property requiring inspection
  3. 3Each sub-case is assigned independently with its own SLA timeline
  4. 4Officer completes inspections on different days, documenting findings per sub-case
  5. 5Two properties are compliant (sub-cases resolved); one requires a notice (sub-case escalated)
  6. 6Parent case dashboard shows 2/3 resolved; parent remains open until all children are complete

Outcome

Parallel investigations tracked independently while the parent case provides a single view of overall progress. SLA compliance is measured per sub-case.

View scenario

CRM Supervisor

Duplicate Case Merge

Multiple residents report the same water main break. The supervisor identifies duplicates and merges them into a single case.

Steps

  1. 1Supervisor notices duplicate detection flags on three cases about a water main break at the same intersection
  2. 2Supervisor opens the merge workflow and selects the earliest case as primary
  3. 3System merges notes, attachments, and citizen links from all three cases into the primary
  4. 4Duplicate cases are closed with a 'Merged' resolution code and bidirectional links
  5. 5All three reporting citizens now receive status updates from the primary case
  6. 6Resolution is applied once and all citizens are notified simultaneously

Outcome

Three duplicate cases consolidated into one. All reporting citizens stay informed. The work crew has a single case with comprehensive context from all reports.

View scenario

Records Clerk

FOI Request Processing

A citizen submits a Freedom of Information request. The clerk processes it as a specialized case type with statutory SLA deadlines.

Steps

  1. 1Citizen submits FOI request via the portal; system creates a case of type 'FOI Request'
  2. 230-day statutory clock starts automatically per case type SLA configuration
  3. 3Clerk reviews the request and adds internal notes about the scope of records search
  4. 4Clerk links relevant document records from document-records module to the case
  5. 5As the SLA approaches, the system fires sla_warning events; if an extension is needed, clerk updates the SLA
  6. 6Response prepared and attached; case resolved with resolution code 'Full Disclosure' or 'Partial Disclosure'

Outcome

Statutory deadlines tracked automatically. Full audit trail of the request lifecycle. Citizen can track status online without calling the clerk.

View scenario

Internal Architecture

How it's built

4 architectural layers comprising 24 components — from API gateway to data quality engine.

4 layers · 24 total components

Case Management

Every module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product — that's the architecture that scales.

Krutik Parikh

Creator of Civic

Data Model

Entity Architecture

4 entities with 6 relationships — the authoritative schema for this bounded context.

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

13 RESTful endpoints across 2 resource groups — plus 12 domain events for async integration.

|
POST

/api/v1/cases

Create a new case

GET

/api/v1/cases/{id}

Get case detail

PUT

/api/v1/cases/{id}

Update case fields

PATCH

/api/v1/cases/{id}/status

Transition case status

GET

/api/v1/cases

Search/filter cases

POST

/api/v1/cases/{id}/notes

Add case note

GET

/api/v1/cases/{id}/timeline

Get activity timeline

POST

/api/v1/cases/{id}/assign

Assign case to user/queue

POST

/api/v1/cases/{id}/merge

Merge duplicate case into this case

POST

/api/v1/cases/bulk

Bulk operations on multiple cases

Technical Specifications

Performance, Compliance & Configuration

Availability

Target99.95% uptime

Case Creation Latency

Target< 1 second

Search Latency

Target< 2 seconds for filtered search across 1M cases

Map View

Target< 3 seconds to render 10,000 case points

Concurrent Users

Target500 simultaneous case workers

Data Retention

TargetCases retained minimum 7 years after closure; configurable per type

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Case Management

Request an architecture brief, integration guide, or live demo environment for your team.