
Residents get one place to report and follow up
Residents get a privacy notice, consent controls and a case reference they can check later. Reports from voice, SMS and WhatsApp land in the same unified inbox.
Loading identity configuration…
SSO is disabled until an administrator configures an identity provider. Service accounts continue to use scoped bearer tokens.

CivicOps is an accountable operations platform for South African municipalities. Voice, chat, SMS and WhatsApp reports become one tracked case, AI agents help with triage, and dispatchers, agencies and auditors share one hash-chained timeline.
Public demo · synthetic data only. Every municipality, person, case, crew position and camera event here is fictional, and voice, ticketing and messaging providers are simulated. Please don't enter real personal details.
Burst pipe, downed line or flooding, by web, voice, SMS or WhatsApp, in English, Afrikaans or isiZulu.
Bounded agents pull out the location, hazards and department, then recommend a qualified crew. Each step shows its reasoning.
A dispatcher approves, edits or rejects. Nothing gets dispatched without a named human.
Crews get the job with safety checks. Every action is added to an append-only, verifiable audit chain.

Residents get a privacy notice, consent controls and a case reference they can check later. Reports from voice, SMS and WhatsApp land in the same unified inbox.

The case queue, workflow outcomes, crew qualifications and certifications all sit in one workspace. AI suggests. Your staff decide.

Wards, cases, hazards, assets and crews on a self-hosted map, with an incident heatmap and a fully keyboard-accessible feature list.

Metro Police, Fire, EMS, Disaster Management, Traffic and four utilities share incidents and mutual-aid requests, each with their own roles. Sensitive police incidents stay restricted to that agency.

The simulated camera feed reports scene events like flooding, debris or a blocked lane. It never identifies faces or number plates, and a person confirms every event before anything happens.



AI here is a bounded assistant, not the decision-maker.
Every dispatch, mutual-aid request and camera event needs a named person to approve it.
SOS alerts the municipal control room only. For life-threatening danger, call 10111, 10177 or 112.
Purpose-limited consent, masked contact details and access, correction and anonymisation requests.
Each event links to the previous one with SHA-256, and staff can verify the whole chain.
A strict Content Security Policy, self-hosted assets, tenant isolation and role-based access.
Simulated providers and synthetic data are labelled clearly throughout the demo.
Report an issue as a resident below, or open Staff access and pick a demo role like dispatcher, supervisor or auditor to explore the control room, map, agencies and audit trail.
Tell us what happened. CivicOps brings voice, service tickets and accountable AI into one desk. A dispatcher approves every crew assignment.
CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.
Your location is requested only after you confirm SOS, and only while this alert is active (default 30 minutes or until resolved). You can cancel during the brief confirmation window.
No SOS alert active.
A private ElevenLabs session starts when you choose a channel. Voice uses your microphone; session credentials stay in memory.
Simulated resident agent · deterministic and offline capable while the server is available. Reports use the same backend tools as the live voice agent.
Hello. Describe the issue and area, or paste a case reference to check its status. A human approves every dispatch.
Voice/chat is unavailable in this browser. Use the report form and keep your case reference.
Recommendations are visible. Decisions belong to people.
See agent reasoning, human decisions, ticket delivery and the full timeline.
CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.
Audible and visual priority alert. A named authorised human acknowledges, assesses, dispatches or hands over; CivicOps never calls or messages emergency services.
Hand over to SAPS/EMS via 10111/10177 is a logged operator note. CivicOps did not place the call.
Sign in with an operations role to load SOS alerts.
Named supervisors issue one-use, 10-minute pairing codes for a worker in this municipality. Paired tokens are scoped, expiring and revocable. Every decision is audited.
Incident locations and response-unit details are restricted to your municipality and staff role.
One municipal picture. Every dispatch reviewed.
Municipal map data requires authorized staff access.
Utilities, Metro Police, Traffic, Fire, EMS and Disaster Management share one incident, one commander and one timeline. Humans decide every command, mutual-aid and camera outcome.
Sign in as municipal operations staff to view the agency board.
Append-only events link to the previous SHA-256 hash within this municipality. Integrity is verified against the durable chain.
| Sequence | Case | Action / actor | Time | Hash |
|---|
Local integrity is verified. External audit anchoring and deployment verification remain owner work. Closed-case snapshot retention is configurable; the audit chain and integration artifacts are retained.
Voice, SMS and WhatsApp enter the same reviewed municipal workflow.
Only authorised municipal staff can view conversations. Contacts stay masked; access and human decisions are audited.
A report, its case reference and its reviewed replies stay together.
Provider configuration, simulated receipts and retained channel activity for this municipality.
Readiness and channel activity are limited to authorised municipal staff.
Counts describe retained messages and case receipts. They do not measure provider delivery, resident adoption or queue-time savings.
| Channel | Inbound | Cases created | Human replies | Opted out | Human queue |
|---|
Approve notices, translations, processing agreements, retention, staffing, account costs and webhook ingress before a resident pilot. Live provider behaviour remains owner-pending. SMS and WhatsApp panic keywords record a control-room SOS alert. Voice SOS stays emergency-number information. CivicOps does not call 10111, 10177 or 112.
Return to the unified inboxManage staff, integrations and qualified teams within your municipality.
Your server-verified admin role is required to view and change municipal configuration.
Copy this token now. The server stores only its hash. It disappears when you dismiss it, leave administration, change identity or reload this page.
A first-contact notice and four service templates in English, Afrikaans and isiZulu. A dispatcher reviews the case and approves each reply; saving a template sends no message.
SSO roles come from configured claims and groups. These local assignments support staff bootstrap access.
Each account is bound to this municipality. Expiry, rotation and revocation are recorded in its audit chain.
Record the request, verify identity outside this app without uploading identity documents, then export, correct or anonymise local case data. Legacy audit, backups and provider records require separate Information Officer review.