Notification Engine
The single outbound communication layer for the entire Civic platform — every module that sends a message to a citizen routes through Notification Engine.
Uptime SLA
Emergency Latency
Bulk Throughput
Email Delivery
Purpose-Built for Canadian Municipalities
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.
Tax Reminder Delivery
A resident receives their property tax instalment reminder via their preferred channel.
How it works
Property Tax module triggers a 'tax.instalment.reminder' notification. Notification Engine resolves the citizen's preferred channel (SMS), merges the template with their name, address, amount, and due date, and dispatches the SMS via Twilio. The resident receives a bilingual text message with a link to pay online.
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
10Delegated to
4Citizen preferences storage
Content authoring (CMS pages, engagement content)
Audit log storage
Form rendering
These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.
Core Capabilities
What it does
4 capability groups comprising 8 discrete capabilities — each with API surface, business rules, and data ownership.
Deliver notifications via email, SMS, push notification, in-app, and print mail — all from a single send request.
SMTP with DKIM/SPF/DMARC authentication. Configurable provider (SendGrid, SES, SMTP relay). HTML with inline CSS + plain-text fallback.
SMS
Configurable gateway (Twilio, Sinch). Canadian carrier support. 160-char limit with smart splitting for longer messages.
Push Notification
Firebase Cloud Messaging (Android) + Apple Push Notification Service (iOS). Rich notifications with action buttons.
Print Mail
Generate print-ready PDF letters using municipality letterhead. Batch for Canada Post mailing. AODA large-print variant auto-generated.
Preference-based routing with automatic failover — if the primary channel fails, the next preferred channel is tried. In-app is always the final guaranteed fallback.
Preference-Based Routing
Each notification routed through the citizen's preferred channel for that notification category (sourced from civic-identity).
Automatic Failover
If primary channel fails (SMS undelivered, email bounced), retry via next preferred channel. In-app is always the final guaranteed fallback.
Multi-Channel Delivery
Some notification types delivered to ALL channels simultaneously (e.g., emergency alerts, payment confirmations).
Retry Logic
Hard bounces flag address as invalid + notify agent. Soft bounces retry up to 3× with exponential backoff.
Real-World Scenarios
Who uses this, and how
3 persona-driven scenarios showing how Notification Engine works in practice — from resident registration to privacy compliance.
Finance Department
Bulk Tax Billing Day
It's property tax billing day and 45,000 residents need to receive their tax bill notifications simultaneously.
Steps
- 1Property Tax module triggers bulk notification with template 'tax.bill.generated' for all 45,000 accounts
- 2Notification Engine queues all notifications in the async message queue with 'normal' priority
- 3Each notification resolves the citizen's preferred channel and language from civic-identity
- 4Templates are merged with personalized data (name, roll number, amount, due date, e-billing PDF link)
- 5Notifications dispatch at 50,000/hour via configured email and SMS providers
- 6Delivery dashboard shows real-time progress, bounce rates, and engagement metrics
Outcome
45,000 notifications delivered within 1 hour. 95%+ email delivery rate. Bounced addresses flagged for staff follow-up. All deliveries fully audited.
View scenario
Emergency Management
Flood Alert — Geographic Targeting
Rising river levels require an immediate evacuation notice to residents within the flood plain.
Steps
- 1Emergency management officer opens the rapid composition interface
- 2Selects alert type 'flood' with severity 'critical' and draws the flood-zone polygon on the map
- 3Composes bilingual alert message with evacuation instructions and shelter locations
- 4System identifies 2,300 residents within the polygon and bypasses all preferences
- 5Emergency alerts dispatch simultaneously via email, SMS, push, and in-app to all 2,300 residents
- 6Alert Ready integration broadcasts to the national emergency system
Outcome
2,300 residents alerted within 60 seconds. All channels saturated. Complete post-incident log generated for emergency debrief.
View scenario
Communications Team
CASL Consent Expiry Re-Engagement
Implied consent for 500 residents is approaching the 2-year CASL expiry. The system must prompt re-consent before commercial messages are blocked.
Steps
- 1System detects 500 implied consent records expiring within 30 days
- 2Generates re-consent outreach notifications using the approved re-consent template
- 3Notifications include clear opt-in mechanism and description of commercial communications
- 4Residents who opt in receive updated express consent (no expiry); others are flagged
- 5After expiry date, commercial messages are automatically blocked for non-renewed residents
- 6Transactional notifications continue unaffected for all residents
Outcome
CASL compliance maintained. 60% re-consent rate. Zero commercial messages sent without valid consent. Full audit trail of every consent decision.
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
Notification Engine
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
5 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
17 RESTful endpoints across 4 resource groups — plus 7 domain events for async integration.
/api/v1/notifications/send
Send a notification (template + citizen + merge data)
/api/v1/notifications/send-bulk
Bulk send to multiple citizens
/api/v1/notifications/emergency
Issue emergency alert (bypasses preferences)
/api/v1/notifications/{id}
Get notification status and delivery details
/api/v1/notifications/citizen/{citizenId}
Delivery history for a citizen (staff use)
Ecosystem
Products that depend on this module
14 Civic products consume Notification Engine — making it one of the most critical platform services in the ecosystem.
Property Tax
Tax bill generated, instalment reminder, arrears notice, tax sale notice, PAP confirmation
View product →
Utility Billing
Bill generated, consumption alert, leak alert, boil-water advisory, disconnection warning
View product →
Recreation
Registration confirmation, waitlist movement, program reminder, facility booking confirmation
View product →
CRM
Case status update, case resolution, satisfaction survey
View product →
Licences & Permits
Application status, inspection scheduled, approval/denial, renewal reminder
View product →
Work Orders & 311
Request acknowledged, work scheduled, request resolved
View product →
Bylaw Enforcement
Compliance notice, order served, hearing notification
View product →
Parking
Ticket issued, payment confirmation, permit expiry
View product →
Court / POA
Court date notification, fine due reminder, licence suspension notice
View product →
Animal Services
Licence renewal, vaccination reminder, adoption follow-up
View product →
Elections
Voter card, polling station info, election reminders
View product →
Social Housing
Waitlist position update, income review reminder, lease renewal
View product →
Transit
Service alert, detour notification, fare change
View product →
Digital Identity Portal
Notification centre in My Civic Dashboard, preference management
View product →
Technical Specifications
Performance, Compliance & Configuration
Availability
Throughput
Latency
Delivery Rate
Storage
Encryption
FAQ
Frequently Asked Questions
Ready to Integrate
Build on Notification Engine
Request an architecture brief, integration guide, or live demo environment for your team.