Forms Engine
The universal form builder and submission processor for the entire Civic platform — every module that needs citizen-facing intake, staff forms, or inspection checklists plugs into Forms Engine.
Uptime SLA
Submission Latency
Field Types
WCAG Compliance
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.
Online Form Submission
A resident submits a building permit application from the citizen portal.
How it works
The resident logs into My Civic Dashboard, navigates to Licences & Permits, selects 'Building Permit Application'. Their name, address, and contact information are pre-filled from their civic-identity profile. They fill in project details across a multi-page wizard, upload site plans via drag-and-drop, sign digitally, and submit. A confirmation number (BP-2026-001234) is generated instantly and emailed with a PDF copy.
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
15Delegated to
5Workflow triggered after form submission
Document storage of uploaded files
Payment processing during form submission
Notification after submission
Business rules / application processing
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 9 discrete capabilities — each with API surface, business rules, and data ownership.
Visual drag-and-drop canvas for municipal business analysts to design citizen-facing and internal forms without developer involvement.
No-Code Builder
Visual drag-and-drop canvas for municipal business analysts.
Field Types
Text (short/long), Number, Currency, Date/Time, Date Range, Dropdown, Radio, Checkbox, Multi-Select, File Upload, Image Capture, Address (Canada Post autocomplete), Phone, Email, URL, Signature, Rich Text, Table/Repeater, Calculated, Hidden, Section Heading, Paragraph, Divider, Rating/Scale, Map Point Picker.
Validation Rules
Required, min/max length, min/max value, regex pattern, custom expression, cross-field validation.
Show/hide fields, enable/disable sections, set required flags, skip pages, and auto-compute values based on other field inputs.
Conditional Logic
Show/hide field, enable/disable field, set required, set value, skip section — all based on other field values.
Calculated Fields
Auto-compute values from other fields (e.g., total fees = base fee × quantity + HST).
Repeating Sections
Allow submitter to add multiple rows (e.g., multiple owners, multiple vehicles, multiple dependents).
Reusable field groups shared across forms and pre-built templates for common municipal intake scenarios.
Field Groups
Reusable field groups (e.g., 'Address Block', 'Contact Info Block') shared across forms.
Form Templates
Pre-built templates for common municipal forms (dog license, building permit, complaint, FOI request, event permit, business license, driveway permit).
Real-World Scenarios
Who uses this, and how
4 persona-driven scenarios showing how Forms Engine works in practice — from resident registration to privacy compliance.
Homeowner
Multi-Page Building Permit Application
Sarah is applying for a building permit for a home renovation and needs to submit plans, contractor details, and a digital signature.
Steps
- 1Sarah navigates to Licences & Permits on the citizen portal and selects 'Building Permit Application'
- 2Her name, address, and contact info are pre-filled from her civic-identity profile
- 3She fills in project details across four wizard pages: property info, project scope, contractor details, and declarations
- 4She uploads architectural drawings and site plans via drag-and-drop (PDF, max 25 MB each)
- 5She adds her contractor as a co-signer; both sign digitally via touch signature
- 6She submits and receives confirmation number BP-2026-004521 via email with a PDF copy of the full application
Outcome
Complete application submitted with all attachments and dual digital signatures. The form.submitted event triggers workflow-automation to route to the building department for review.
View scenario
Municipal Inspector
Offline Field Inspection Checklist
Mark is a building inspector conducting site inspections in areas with poor connectivity and needs to complete inspection checklists on his tablet.
Steps
- 1Mark downloads today's inspection schedule and associated form checklists to his tablet via mobile-field
- 2At the first site (no cell signal), he opens the pre-loaded inspection checklist form
- 3He works through the checklist — checking items, noting deficiencies, capturing photos with camera capture
- 4He adds a digital signature confirming the inspection
- 5When he returns to connectivity, all completed inspections sync automatically
- 6Submissions trigger workflow events for deficiency notices and permit status updates
Outcome
Inspections completed in the field without connectivity concerns. Data syncs seamlessly, and workflow-automation processes deficiency follow-ups automatically.
View scenario
Engagement Coordinator
Bilingual Public Budget Consultation Survey
The municipality is running a bilingual public consultation on next year's budget priorities and needs a survey accessible to all residents.
Steps
- 1The engagement coordinator creates a survey using the no-code builder with rating scales, dropdowns, and open text fields
- 2She enables bilingual mode with English/French toggle and reviews both language versions
- 3The form is published with anonymous access enabled and reCAPTCHA anti-spam protection
- 4Citizens access the survey via QR codes on posters, social media links, and the municipality website
- 5Form analytics track completion rate (72%), average time (4 minutes), and drop-off points
- 6After the consultation period, submissions are exported for analysis with full bilingual response data
Outcome
2,400 responses collected over 3 weeks with 72% completion rate. Analytics identified a confusing question on page 3 (high drop-off), which was simplified mid-survey to improve completion.
View scenario
Municipal Clerk
Reusable Field Groups Across Departments
The clerk's office standardizes address and contact information collection across all departmental forms using shared field groups.
Steps
- 1The clerk creates a global 'Address Block' field group with street, city, province, postal code, and Canada Post autocomplete
- 2She creates a global 'Contact Info Block' with phone, email, and preferred contact method
- 3Department form builders drag these shared blocks into their forms — permits, licenses, complaints, registrations
- 4When Canada Post updates their API, the address block is updated once and all forms inherit the change
- 5Submission data is structured consistently across all departments for reporting and CRM integration
Outcome
40+ forms across 12 departments use consistent address and contact fields. Data quality improves and CRM can reliably match submissions to citizen profiles.
View scenario
Internal Architecture
How it's built
3 architectural layers comprising 19 components — from API gateway to data quality engine.
3 layers · 19 total components
Forms 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
3 entities with 5 relationships — the authoritative schema for this bounded context.
Entities
Select an entity to explore its fields and relationships
API Surface
Integration Endpoints
11 RESTful endpoints across 2 resource groups — plus 4 domain events for async integration.
/api/v1/forms/definitions
List all form definitions
/api/v1/forms/definitions
Create new form
/api/v1/forms/definitions/{id}
Update form (creates new version)
/api/v1/forms/definitions/{id}/publish
Publish form version
/api/v1/forms/definitions/{code}/render
Get form rendering schema (for portal)
Ecosystem
Products that depend on this module
19 Civic products consume Forms Engine — making it one of the most critical platform services in the ecosystem.
CRM / 311
Service request intake, complaint forms, feedback surveys
View product →
Licences & Permits
License application, permit application, renewal forms
View product →
Property Tax
Assessment appeal, tax deferral, vacancy rebate
View product →
Utility Billing
Service connection application, meter access forms
View product →
Recreation
Program registration, facility booking, membership application
View product →
Bylaw Enforcement
Complaint forms, property standards, noise complaint, parking complaint
View product →
Animal Services
Dog license, animal complaint, adoption application
View product →
Building Inspection
Building permit application, occupancy permit, demolition permit
View product →
Planning & Development
Site plan application, zoning amendment, official plan amendment, subdivision
View product →
HR & Payroll
Job application, leave request, expense claim, benefits enrollment
View product →
Citizen Engagement
Public survey, budget consultation, feedback form
View product →
Tourism & Events
Event permit, vendor application, special occasion permit
View product →
Grant Management
Grant application, milestone report, final report
View product →
Social Housing
Waitlist application, income declaration, maintenance request
View product →
Economic Development
Business inquiry, incentive application
View product →
Cemetery
Interment application, monument permit
View product →
FOI
Freedom of information request form
View product →
Elections
Voter registration correction, candidate nomination
View product →
Court / POA
Early resolution request, trial request
View product →
Technical Specifications
Performance, Compliance & Configuration
Availability
Submission Latency
Auto-Save Latency
Concurrent Forms
Accessibility
Mobile
Data Encryption
FAQ
Frequently Asked Questions
Ready to Integrate
Build on Forms Engine
Request an architecture brief, integration guide, or live demo environment for your team.