Defining a taxonomy for notifications

JPMorganChase·January 2024
RoleLead designer
Team1 designer1 researcher
MethodsUX auditsCross-functional workshopsDecision tree design
ToolsFigmaLucidAdobe Analytics

Defining a taxonomy for notifications

JPMorganChase·January 2024
RoleLead designer
Team1 designer1 researcher
MethodsUX auditsCross-functional workshopsDecision tree design
ToolsFigmaLucidAdobe Analytics

Defining a taxonomy for notifications

JPMorganChase·January 2024
RoleLead designer
Team1 designer1 researcher
MethodsUX auditsCross-functional workshopsDecision tree design
ToolsFigmaLucidAdobe Analytics

Defining a taxonomy for notifications

JPMorganChase·January 2024
RoleLead designer
Team1 designer1 researcher
MethodsUX auditsCross-functional workshopsDecision tree design
ToolsFigmaLucidAdobe Analytics

Products integrating into the developer portal had no shared language for notifications.

Products integrating into the developer portal had no shared language for notifications.

Products integrating into the developer portal had no shared language for notifications.

JPMorganChase's internal developer portal serves thousands of engineers, with core capabilities — CI/CD pipelines, application health, observability, risk and compliance — contributed by 12 separate product teams as micro-frontends. The platform's value case is built on a single, coherent tech stack that surfaces errors, recommendations, and real-time progress during SDLC failures — an efficiency gain estimated at 25 hours per developer per year.


But that coherence depends on consistency. For years, the contributing teams had operated as standalone products, each developing their own notification strategies in isolation: different delivery mechanisms, different priority logic, different audience rules. Bringing them together under one portal made this divergence visible. Engineers were now receiving notifications from 12 teams through a single surface, but with no shared framework behind them — resulting in inconsistent priority classifications, variable content templates which impacted readability, and no reliable mechanism to manage what reached them.


Notifications are the primary channel through which the portal communicates errors, status changes, and recommended actions. Left inconsistent, they risked undermining the very efficiency gains the platform was built to deliver. The platform needed a unifying taxonomy — a shared classification system for how notifications were categorized, delivered, and experienced.

Discovery

The audit phase revealed the scale of the problem. Across 12 product teams, I found over 40 distinct notification implementations with no shared conventions. Teams were making reasonable but isolated decisions — one team used banners for all alerts, another relied on email, and a third had built a custom notification center. The same event could trigger different notification types depending on which product surface it originated from.

To bring structure to the audit, I gave each team two mapping exercises. The first was a delivery mechanism spectrum — ranging from discreet (notification center, inline alerts) to urgent (global alerts, modals) — where teams plotted the notifications they generate. The second asked teams to map their notifications against delivery personas: developers, application owners, architects, data usage SMEs, and executives. Together, these exercises surfaced not just how notifications were being delivered, but who was receiving them — revealing mismatches between audience and delivery mechanism that no single team had visibility into on their own.

Each team decomposed their notifications through a structured mapping exercise, answering questions about triggers, audience, feedback, and delivery form.

The taxonomy

The taxonomy

The taxonomy

Six dimensions to classify any notification

Six dimensions to classify any notification

Six dimensions to classify any notification

The taxonomy classifies every notification across six dimensions: Category (what triggered it — process, system, or organization), Delivery mechanism (how it reaches the user — snackbar, banner, email, or notification center), Persistence (how long it lives — temporary, persistent, or archived), Audience (who sees it — initiator, approver, assigned, team, or organization), Priority (how urgent it is — critical, high, medium, or low), and Purpose (what it expects from the user — actionable, informational, or acknowledgement). Each dimension answers a distinct question, and together they give any product team a complete, unambiguous way to describe how a notification should behave. The framework eliminated the guesswork that had led to inconsistency — instead of each team inventing their own logic, they could classify notifications using a shared vocabulary and arrive at consistent implementation decisions.

The taxonomy classifies every notification across six dimensions:

  • Category - what triggered it

  • Delivery mechanism - how it reaches the user

  • Persistence - how long it lives

  • Audience - who sees it — initiator, approver, assigned, team, or organization)

  • Priority - how urgent it is

  • Purpose - what it expects from the user

Each dimension answers a distinct question, and together they give any product team a complete, unambiguous way to describe how a notification should behave. The framework eliminated the guesswork that had led to inconsistency — instead of each team inventing their own logic, they could classify notifications using a shared vocabulary and arrive at consistent implementation decisions.

Outcomes

The taxonomy became the standard classification system across all 12 product teams. Its classification logic drove consistent content templates that improved readability and pattern recognition — reducing average time to act on key SDLC notifications to under 10 minutes.

From taxonomy to design system

With the taxonomy validated, I worked with the design system team to define a notification pattern for the portal. The pattern incorporated the decision tree as its entry point — guiding teams through classification before pointing them to the right component. Each delivery mechanism in the taxonomy mapped to a specific component: alerts, snackbars, modals, and notification center integrations, each with usage guidelines derived directly from the taxonomy's dimensions. This meant teams didn't need to interpret the taxonomy in the abstract — they could follow the decision tree, land on a component, and build with confidence that their implementation was consistent with every other team's.

Tradeoffs

Tradeoffs

Tradeoffs

The central tension was between comprehensiveness and adoptability. A taxonomy that captured every edge case would be academically thorough but too complex for teams to use in daily work. Conversely, oversimplifying it would leave gaps that teams would fill with their own conventions — recreating the original problem. I landed on six dimensions as the sweet spot: enough to classify any notification unambiguously, but few enough that a designer or engineer could internalize the framework without constant reference. Some dimensions, like Status (error, warning, success, info), were deliberately excluded from the taxonomy and placed in the design system instead — they drove visual treatment rather than notification behavior, and conflating the two would have muddied the framework's purpose.

Results

Results

Results

The taxonomy and its supporting decision frameworks became the standard for notification design across the developer portal.

12

Product teams adopted the framework

<10 min

Average time to act on key SDLC notifications

Lessons learned

Lessons learned

Lessons learned

Naming is design work.

Naming is design work.

Naming is design work.

The hardest part of this project wasn't identifying the dimensions — it was naming them precisely enough that teams would interpret them consistently. Early labels like "Action type" implied all notifications required action, which two of the three sub-types contradicted. Renaming it to "Purpose" changed how people understood the entire category. Every label in a taxonomy is a micro-design decision, and getting it wrong creates exactly the ambiguity a taxonomy is supposed to eliminate.

Audit before you architect.

Audit before you architect.

Audit before you architect.

It would have been tempting to design the taxonomy from first principles — starting with what dimensions "should" exist based on notification design theory. Instead, auditing what actually existed across 12 teams first revealed patterns and edge cases that a theoretical approach would have missed entirely. The audit grounded every taxonomy decision in real usage, which made it much easier to get buy-in from teams who could see their own notifications reflected in the framework.

Decision trees bridge the gap between taxonomy and practice.

Decision trees bridge the gap between taxonomy and practice.

Decision trees bridge the gap between taxonomy and practice.

A taxonomy tells teams what the dimensions are. A decision tree tells them what to do. Pairing the taxonomy with a flowchart that walked teams through classification decisions — "Is this triggered by a user action? → Yes → Is it confirming their action completed? → Yes → Purpose: Acknowledgement" — made the difference between a reference document that sat in Confluence and a tool teams actually used in sprint planning and design reviews.

Frameworks scale better than guidelines.

Frameworks scale better than guidelines.

Frameworks scale better than guidelines.

Writing notification guidelines for 12 teams would have meant either being so generic they weren't useful, or so specific they couldn't cover every team's context. The taxonomy as a classification framework gave teams a shared structure while leaving room for contextual judgment. Teams didn't need to be told "use a snackbar here" — they needed a systematic way to arrive at that decision themselves. The framework approach respected their expertise while ensuring consistency in the output.