Case study · Government & utilities
Two hundred calls, one incident, one answer
When gas goes down on a street, the utility does not get one report — it gets two hundred. We built an outage system on Dynamics 365 CRM that clusters those reports into a single incident, dispatches against it once, and gives every caller the same restoration estimate.
Engagement · Implementation & rollout
Public utility outage handling, where a delay is a safety issue.
- Industry
- Government & utilities
- Solution
- Outage management system
- Platform
- Dynamics 365 CRM
- Engagement model
- Dedicated product team
- Scope
- Implementation, dispatch, public status
- Users
- Call handlers, dispatchers, field crews
- Constraint
- Safety-critical response and reporting
- Peak load
- Hundreds of reports per incident
Outcomes
What an outage system is judged on
Time to dispatch, and whether residents were told the truth about when service returns.
-
4 min
From first report to crew dispatched
Clustering happens as reports arrive, so a dispatcher sees one incident with a location and a severity rather than a growing pile of individual calls to triage.
Measured from first report timestamp to dispatch, across incidents after rollout
-
96%
Of reports clustered automatically
Reports are matched to an existing incident by location and symptom as they arrive, so call handlers confirm rather than create.
Measured across reports over the first operating season
-
1
Restoration estimate per incident
Every caller, every channel and the public status page draw the same estimate from the incident record, so the utility does not contradict itself.
By design: single source for restoration time
Context
What made outage handling hard
The problem is not the engineering response. It is everything around it.
The organisation
A public gas utility responsible for distribution across a regional network, with a 24-hour call centre and field crews on rota.
The starting point
Reports were logged individually. Dispatchers worked out which ones were the same incident by reading them, which took time the response did not have.
The trigger
A gas outage is a safety event. Time spent working out that forty calls describe one street is time a crew is not moving, and residents receive different answers from different handlers in the meantime.
What they wanted
Reports clustered into incidents automatically, dispatch driven by severity, and one restoration estimate that every channel reads from.
Constraints
Load arrives in bursts, not evenly · a mis-clustered report can hide a second, separate incident · field crews work with intermittent connectivity · public communication is scrutinised after every event.
System
What it runs at today
The system as it runs during an event.
-
100s
Reports per incident
Clustered as they arrive
-
4 min
To dispatch
From the first report
-
1
Restoration estimate
Shared by every channel
-
24/7
Operation
With crews on rota
The engineering problem
Four problems in outage response
Each one costs minutes, and in a gas outage minutes are the whole product.
-
Two hundred reports of one problem
A street-level outage generates reports from every household. Handled individually, they consume the call centre and bury the dispatcher.
What we did
Automatic clustering by location and symptom as reports arrive. The dispatcher sees one incident with a growing report count, not two hundred records.
-
Clustering can hide a second incident
Aggressive clustering is worse than none: a genuinely separate outage swallowed into a neighbouring incident goes unattended.
What we did
Clustering tuned conservatively with an explicit split action, and an alert when reports inside an incident diverge in location or symptom.
-
Different callers, different answers
When the restoration estimate lives in each handler's head, residents ring back, compare answers and lose trust in the utility.
What we did
One estimate held on the incident, published to handlers, the status page and outbound messages simultaneously.
-
Crews work where connectivity does not
Underground and rural work happens without a usable connection, but the job data has to be there and the update has to arrive eventually.
What we did
Offline-capable crew view with queued updates that sync when connectivity returns, and dispatch that accounts for the last known position.
Architecture
How it fits together
Simplified — the shape of the system rather than every service in it.
-
Report intake
- Phone
- Web form
- Field reports
Every channel writes the same structured report: location, symptom, reporter, time.
-
Clustering
- Location matching
- Symptom matching
- Split & merge
Reports matched to open incidents as they arrive, with human override in both directions.
-
Incident & dispatch
- Severity
- Crew assignment
- Restoration estimate
One record per incident, carrying the estimate every channel reads.
-
Communication
- Handler view
- Public status
- Outbound messages
All drawing from the incident, so the utility says one thing.
Clustering is deliberately conservative. We would rather a dispatcher merge two incidents than discover a hidden one after an event.
Solutions
What we implemented
An outage system built for the burst, not the average.
-
Report intake
Structured reports from phone, web and field, written the same way.
-
Clustering engine
Location and symptom matching on arrival, with split and merge.
-
Severity model
Derived from report volume, geographic spread and symptom type.
-
Dispatch
Crew assignment against incidents, informed by position and severity.
-
Crew view
Offline-capable job detail with queued updates.
-
Public status
Incident state and estimate published automatically.
Key capabilities
What it does day to day
Six capabilities across the outage lifecycle.
| Capability | Runs | Refresh | What it does |
|---|---|---|---|
| Report intake | All channels | Continuous | Structured reports from phone, web and field staff |
| Clustering | Automatic | On arrival | Reports matched to open incidents by location and symptom |
| Severity | Automatic | Continuous | Derived from report volume, spread and symptom type |
| Dispatch | Dispatcher | Per incident | Crew assignment against the incident, informed by position and severity |
| Crew view | Field | Offline capable | Job detail available without connectivity, updates queued |
| Public status | Automatic | Continuous | Incident state and restoration estimate published as they change |
Integrations
How the moving parts plug in
From two hundred calls to one dispatch.
Reports arrive
- PhoneCall centre
- Web formPublic
- Field reportsCrews and staff
Clustering & severity
- Location match
- Symptom match
- Severity derivedFrom volume and spread
Incident
- Crew dispatched
- Restoration estimateOne, shared
- Public statusPublished automatically
The dispatcher's first view of a street outage is a single incident with a report count and a severity, which is the difference between a four-minute dispatch and a twenty-minute one.
Security & data
What protects the response
A safety-critical system has to fail visibly, not quietly.
-
Conservative clustering
The system prefers two incidents over one hidden outage, with divergence alerts inside an incident.
-
Full event record
Every report, cluster decision, dispatch and estimate change recorded for the post-event review that always follows.
-
Role separation
Handlers, dispatchers and crews have distinct rights, with merges and splits restricted to dispatch.
-
Degraded operation
If clustering is unavailable, reports still arrive and are workable manually rather than being lost.
The brief
The response was never the bottleneck
The utility's crews were fast. What slowed restoration was the time between the first report and somebody understanding that forty calls described one street.
We attacked that gap specifically: cluster on arrival, derive severity from the cluster, and put one estimate where everyone can read it.
- Reports clustered into incidents as they arrive
- Severity derived from volume, spread and symptom
- One restoration estimate across every channel
- Crew view that works without connectivity
What the system had to survive
- 01Hundreds of reports arriving in minutes
- 02A second incident that must not be swallowed by the first
- 03Field work without reliable connectivity
- 04Public scrutiny of every communication after the event
Process
We tuned clustering against real event data
Clustering rules that look sensible in a workshop behave differently against a real winter.
-
Event replay
Historical outage reports replayed through candidate clustering rules to see what they would have produced.
-
Tuning for safety
Rules deliberately biased towards splitting, because a merge is a dispatcher action and a hidden incident is an investigation.
-
Dispatch design
Built with dispatchers at the desk, so the incident view carries what they actually decide from.
-
Crew view offline
Tested in the conditions crews work in, not on office wifi.
-
Public communication
Status publishing reviewed with the communications team before go-live.
Technology
Dynamics 365 CRM as the incident backbone
Case management with an outage model on top of it.
CRM
- Dynamics 365 CRM
- Custom incident entities
- Case management
Clustering
- Location matching
- Symptom matching
- Severity derivation
Field
- Offline crew view
- Queued updates
- Position awareness
Communication
- Public status
- Outbound messaging
- Handler view
Business impact
What changed during an event
Three things the utility noticed in its first operating season.
-
Dispatch in minutes, not tens of minutes
Clustering removed the triage step that stood between a report and a crew.
-
The call centre stopped drowning
Handlers confirm a known incident instead of creating a record per caller.
-
One public answer
Residents, the status page and outbound messages carry the same estimate.
The result
One incident, one crew, one answer
Reports cluster as they arrive, severity comes from the cluster rather than a handler's judgement, and crews are moving within minutes of the first report.
Residents get the same restoration estimate whoever they ask, which is most of what public trust in a utility is made of.
- Four minutes from first report to dispatch
- 96% of reports clustered automatically
- One restoration estimate across all channels
- Crew view that works underground
What we hold to in emergency systems
- 01Design for the burst, because the burst is the whole job
- 02Bias clustering towards splitting — a hidden incident is the worst outcome
- 03Test the field experience in the field
- 04One estimate, one source, every channel
Verified reviews
What clients say about our Dynamics work
Verified reviews from clients of ours on similar work, published on Clutch. They are not from this project.
-
Custom Software Development
Web-Based Coupon App Development
The work produced by the team was of exceptional quality.
Verified review on Clutch (Jon Thies, opens in a new tab)
Jon Thies
CTO, Model Rocket Feb 2022 – Mar 2023
-
Custom Software Development
Mobile & Web Platform Development & Design
Silver Scintilla was responsive, respectful, and enjoyable to work with, quickly addressing any questions or requests.
Verified review on Clutch (DeShawn Brown, opens in a new tab)
DeShawn Brown
CEO & Founder, Lithios Jun 2021 – Nov 2022
-
Custom Software Development
Web-Based HRM System Development
Silver Scintilla provided the best solution with scalable functionality, personalized features, and robust security.
Verified review on Clutch (Suheb Khan, opens in a new tab)
Suheb Khan
Director, Collaborative Insight Technologies Jul 2020 – Jun 2022
Related
Services we used on this project
Free discovery call
Have an idea? Let's turn it into AI-powered software.
Book a free discovery call with our experts. Share your idea and we will help you shape the scope, timeline and budget, under NDA.
- Free consultation
- NDA before we talk
- Transparent estimate




