02 / ENTERPRISE MOBILE

Order from Noise

Designing a notification system for high-stakes physical security environments

Enter password to view case study

-

Role

Product Designer

-

Platform

iOS · Android

-

Timeframe

6 months

-

Team

3 Designers, 2 Product Managers, 1 Engineering Manager

-

Role

Product Designer

-

Timeframe

6 months

-

Platform

iOS · Android

-

Team

3 Designers, 2 Product Managers, 1 Engineering Manager

The real design problem wasn't how to display notifications. It was how to classify them first.

01 / HOW IT STARTED

Mobile had no space for the most critical information operators receive.

Security operators in the field rely on their phones as a backup line of defense. When something goes wrong — a door forced open, a camera offline, an unrecognized vehicle in a restricted space — they need to know immediately, understand what happened, and know what to do next.

The Johnson Controls app had none of this. Alerts existed on desktop, but mobile users had no dedicated place to store, filter, or triage them. In an environment where a missed alert means a security gap, this wasn't a product gap. It was a fundamental failure of the mobile experience.

We were brought in to build that space from the ground up.

Research

Define

Ideate

Wireframe

Refine

JUN

Personas, Empathy Maps, Competitor Research

High Fidelity, Feedback Reviews

Accessibility Check, Developer Handoff

Design Iterations, defining scope and direction

Low - Fidelity, Feedback and Iteration

JUL

SEPT

OCT

Nov

DeC

My Contribution

Usability Testing

Analysing Insights

Product Audit

Prototyping and Design

Tools

Figma

Miro

Jira

02 / THE USERS

But who needs these notifications?

Before touching a screen, I needed to understand who was receiving these notifications and what their world actually looked like. Research surfaced two primary users — with the same information needs but completely different relationships to urgency.

Designing one notification experience to serve both would mean designing it well for neither.

The Operator

In the field, monitoring live. When an alert fires, they need to triage it immediately — what happened, where, how serious — and act. They can't scroll a cluttered feed or decode ambiguous color coding. Every second of friction is a second the situation escalates.

Operator

Think

  • What Happened when I was out

  • Are there any events today?

  • What needs my attention?

Think

  • What Happened when I was out

  • Are there any events today?

  • What needs my attention?

Says

  • What happened in the event?

  • That looks suspicious..

  • Lets ensure everything is good.

Says

  • What happened in the event?

  • That looks suspicious..

  • Lets ensure everything is good.

Does

  • System checks

  • Communicates with staff

  • Finds blind spots of system.

Feel

  • Stressed

  • Responsible

  • "Chasing Information"

Feel

  • Stressed

  • Responsible

  • "Chasing Information"

Empathy Map : Operator

The Admin

Reviewing at the end of a shift or off-hours. Not reacting — auditing. They want to scan history, understand patterns, and confirm nothing was missed. Speed matters less than completeness and clarity.

Admin

Think

  • Do I need to give new permissions?

  • Is there anything broken within the security system?

Think

  • Do I need to give new permissions?

  • Is there anything broken within the security system?

Says

  • Is everything working fine?

  • Are there any blind spots in my system?

  • Do you need additional permissions?

Says

  • Is everything working fine?

  • Are there any blind spots in my system?

  • Do you need additional permissions?

Does

  • Acknowledge, clear any missed events

  • Gives permission to new staff

  • Create reports on usage.

Does

  • Acknowledge, clear any missed events

  • Gives permission to new staff

  • Create reports on usage.

Feel

  • In control

  • Responsible

  • Overwhelmed

Feel

  • In control

  • Responsible

  • Overwhelmed

Empathy Map : Administrator

The empathy mapping surfaced a key insight: these two users weren't just different personas. They were in fundamentally different mental states when they opened the app. Designing one notification experience to serve both would mean designing it well for neither.

03 / Findings

Twenty-three notification types. One feed. No hierarchy.

With user context established, we inventoried every notification the system needed to surface. What we found was more complex than anyone had initially scoped.

Notifications came from four distinct sources — each with different urgency levels, different ownership, and different expected actions.

Camera and analytics events
  • motion detected

  • person detected

  • vehicle identified

  • license plate recognized

  • video loss

Access control events
  • door forced open

  • Credential denied

  • Unauthorized entry attempt

Device health alerts
  • Camera offline

  • Recorder unreachable

  • NVR storage full

System Events
  • Firmware updates

  • App Updates

  • Shared Clips

  • Account Activity

On the surface, these are all "notifications." But they have almost nothing in common. Some demand an immediate physical response. Others can wait until morning. Some are tied to a specific device at a specific location. Others belong to the user's account regardless of where they are.

The real design problem wasn't how to display notifications. It was how to classify them first.
- Quote by Product Manager

04 / HOW MIGHT WE

Questions that shaped every decision that followed.

The inventory work crystallized the central design questions:

  • How might we help operators understand the severity of an alert before they've read a single word?

  • How might we design a feed that serves someone reacting in real time and someone auditing after the fact — without compromising either?

  • How might we surface enough context on a notification that an operator can decide whether to act, escalate, or ignore, without opening anything?

This became the filter for every structural and visual decision that followed.

The inventory work crystallized the central design questions:

  • How might we help operators understand the severity of an alert before they've read a single word?

  • How might we design a feed that serves someone reacting in real time and someone auditing after the fact — without compromising either?

  • How might we surface enough context on a notification that an operator can decide whether to act, escalate, or ignore, without opening anything?

This became the filter for every structural and visual decision that followed.

The inventory work crystallized the central design questions:

  • How might we help operators understand the severity of an alert before they've read a single word?

  • How might we design a feed that serves someone reacting in real time and someone auditing after the fact — without compromising either?

  • How might we surface enough context on a notification that an operator can decide whether to act, escalate, or ignore, without opening anything?

This became the filter for every structural and visual decision that followed.

05 / Competitive Research

How do other products organize their alerts?

Our operators weren't browsing. They were triaging. That reframe shaped what we looked for when studying how other products handle high-volume, mixed-priority feeds.

TikTok organizes notifications into groups by type

Pros :

  • Organizes notifications into groups by type, which you tap into to see individual items.

  • It reduces visual overwhelm

  • Lets users control over where to look first - User Agency.

Cons :

  • Navigation layer adds ambiguity before you tap a category.

  • You may lose time looking for what's relevant within the category.

OXS took one unified list with filters and a search bar.

Pros :

  • One unified list with filters and a search bar. - Universal Pattern.

  • Everything visible, immediately scannable.

  • Individual search possible.

Cons :

  • When Notifcation density is high, it may become a wall of information.

  • Two search buttons CTA's confusing

A third reference worth noting was a UI pattern labeled "where you're needed" - a framing that repositioned the notification feed as a catch-up surface rather than an alert queue.

It was a small conceptual shift, but it pointed at something important: the emotional register of a notification matters as much as its content. Our operators weren't browsing. They were triaging.

Neither model was right for us as-is. We needed the clarity of separation that grouped views provide, without the navigation overhead — and the density management of filtered lists, without mixing urgent and non-urgent signals in the same view.

06 / THE ARCHITECTURE

Three structures. Same dead end.

We prototyped three structural directions: alerts split across pages, a tab-based filter system within a single list, and one long unified feed. All three ran into the same wall.

Grouped by category

Unified filtered list

Layered filters + chips

Where did we land?

We landed on full separation. Events in their own dedicated space. System Messages in theirs. Two notification types with fundamentally different purposes needed two fundamentally different experiences.

This reflected how users already thought about their work. Operators don't mentally file a forced-door alert in the same category as a firmware reminder. The architecture should reflect that.

Urgent, priority based, time sensitive and actionable.

Examples:

  • Gunshot heard

  • Motion detected

  • Door forced Open.

  • Device offline

Non urgent, informational system-level messages.



Examples

  • App updates

  • firmware

  • Sharing clips, live video

The Event Feed

The Events feed needed to serve both mental states — the Operator reacting in real time and the Admin reviewing after the fact. A single undifferentiated list would flatten that distinction. This was the HMW answer made visible. Active vs. All is literally the UI-level solution to distinguishing what demands action now from what can wait.

We introduced a tabbed structure at the top of the feed: Active and All. Active surfaces only unresolved, live events — exactly what an Operator needs mid-shift. All is the complete record, where an Admin can audit, search, and filter without wading through noise.

The Search Engine

Search behaved like a Google-style query — free text against event type, location, device name, or timestamp. Filters layered on top: priority level, event category, date range, device group.

  • The combination meant an Admin could move from "show me everything from last night" to "show me all forced-door alerts at the south entrance after 11pm" in two taps.

06 / THE ARCHITECTURE

From alert to action.

The Event Card

Event cards were designed to answer three questions before an operator taps anything:

  • What happened?

  • Where?

  • How serious?

Event type and location anchored the top of the card. Priority color anchored the left edge. Timestamp and device name completed the summary.

The card was the minimum viable piece of information for a triage decision. Everything else lived one tap deeper.

The detail view

Tapping a card opens the screen where an operator actually works. The design had to answer three questions immediately:

  • What happened?

  • What does it look like?

  • What's connected to it?

At the top: event type, priority level, timestamp, and location — the same hierarchy as the card, now untruncated and fully readable. Below that, captured footage from the moment of the alert, pulled directly from the associated camera. Operators can scrub the clip without leaving the screen. The primary action — clearing the event — sits at the top, with the option to log a message before closing it out.

Escalate

Priority is assigned automatically, based on rules the admin configures upfront. But rules can't anticipate every situation — an operator on the ground sometimes knows more than the system does.

So we gave them a way to override it. Escalate re-opens a cleared event and raises its priority, notifying additional operators and allowing the event to be shared out by SMS. The system sets the default. The operator can always correct it.

07 / System Messages

Calm on purpose.

System Messages had one job: inform without alarming. These notifications were non-urgent and informational — firmware updates, account activity, shared clips. We designed a deliberately quieter experience.

No priority color coding. No urgency markers. Clean typography, generous spacing, a single action — dismiss or view. If system messages looked like events, operators would second-guess their read of the feed every time they opened the app. The visual restraint was the design.

09 / The Color System

When the fix broke something else.

With the card design settled, we turned to the priority color system — and ran straight into an unexpected problem.

The original severity hierarchy felt intuitive: Yellow for low, Orange for medium, Red for high. A natural warm-to-urgent progression. We built the event cards around it and moved into design review.

The accessibility review changed everything.

We ran the color system through a color blindness simulator across 5 conditions — Protanopia, Deuteranopia, Tritanopia, and Achromatopsia. What we found was that yellow and orange, rendered on our dark card backgrounds at mobile scale, were nearly indistinguishable under several conditions. An operator with red-green color blindness couldn't reliably tell a low-priority event from a medium one.

Original

Original

Protonapia

Protonapia

Deuteranopia

Deuteranopia

Tritanopia

Tritanopia

Achromatopsia

Achromatopsia

To fix the contrast issue, we introduced purple as a replacement for orange at medium priority. It passed accessibility checks and was visually distinct from both yellow and red. When we looked at it in context though, it seemed to break something else.

Original

Original

Protonapia

Protonapia

Deuteranopia

Deuteranopia

Tritanopia

Tritanopia

Achromatopsia

Achromatopsia

The purple problem

Purple solved the contrast problem. It also became the loudest color on the screen. In testing, operators were reacting to medium-priority events before high-priority ones — the exact inverse of what the system was designed to produce.

Try it yourself: Where do your eyes go first?

Chances are, purple, not red.

Color sequence carries semantic weight independent of hue. Colors have to communicate a gradient in the direction users expect, escalating from visually quiet to visually loud.

We restructured the hierarchy entirely:

Purple → low priority.
Orange → medium priority.
Red → high priority.

Purple receded. Orange held the middle. Red commanded the top. The sequence finally communicated what it was supposed to.

10 / Dev Handoff

Handing off without losing the why.

Design is only as good as what gets built. Going into handoff, I wanted to leave no room for ambiguity.

I delivered a full component library in Figma: every event card variant across all three priority levels, system message templates, empty states, error states, and interaction specs for swipe-to-dismiss and priority escalation. The color system came with contrast documentation and a severity-to-color mapping guide — no question about which hex value mapped to which priority level.

I led the dev review session directly, walking through edge cases and flagging decisions that had nuance behind them — particularly the reasoning for the final color hierarchy. Several implementation questions surfaced during that session that we resolved before engineering began building.

11 / LEARNINGS

Reflection

Here are some lessons from this project.

01

Systems Level Design

This project asked me to be a systems designer before a UI designer. The screens only worked because the classification was right first — and getting there required resisting the pressure to jump into visual design before the architecture was solid.

02

Accessibility Matters

The accessibility pivot was the most instructive moment. We didn't find a problem and fix it. We found a problem, applied a fix, discovered the fix created a new problem, and had to rethink the underlying logic. That sequence — fix, test, find new failure, rethink — is how real design problems actually get solved.

03

Defining a Notification

Physical security software sits at the intersection of IT, operations, and compliance, and each team had a different mental model of what a notification should be and do. Holding the line on the taxonomy decisions required making that reasoning legible to people who didn't share our design vocabulary.

Let's build something

worth using.

Open to senior UX roles at enterprise and complex-systems companies — especially where the problems are hard, the users are underrepresented, and the edge cases actually matter.

© All rights reserved – Sowmya Chandra

Let's build something
worth using

Open to senior UX roles at enterprise and complex-systems companies — especially where the problems are hard, the users are underrepresented, and the edge cases actually matter.

© All rights reserved – Sowmya Chandra

Let's build something

worth using.

Open to senior UX roles at enterprise and complex-systems companies — especially where the problems are hard, the users are underrepresented, and the edge cases actually matter.

© All rights reserved – Sowmya Chandra