MCMMCM DocsEngineering (Internal)
User StoriesMCM-13 — Notification System
v1.2 is unreleased — see v1.1 for the current stable release.

MCM-18 — Notification Preferences

Users control which events they're notified about and through which channels.

MCM-18 — Notification Preferences

← Back to Notification System overview

As a platform user (any persona),
I want to control which events I am notified about and through which channels,
so that I only receive alerts relevant to my role and am not overwhelmed by noise.

Acceptance Criteria

  • A "Notification Preferences" section exists in the user's Profile Settings page.
  • Preferences are configurable per category (see Notification Categories) and per channel (In-App, Web Push, Email).
  • Preferences default to the values in Default Preferences below.
  • Changes take effect immediately without a page reload.
  • An admin can set organisation-wide defaults; individual users can override them for their own account only.
  • The preferences UI shows a three-column toggle matrix: category rows × channel columns.

Default Preferences

CategoryIn-AppWeb PushEmail
Budget & CostEnabledEnabledHigh only
RecommendationsEnabledDisabledDisabled
DiscoveryEnabledHigh onlyHigh only
GovernanceEnabledEnabledHigh only
SecOpsEnabledEnabledEnabled
OrchestrationEnabledEnabledHigh only
Module Usage PlansEnabledEnabledEnabled
BillingEnabledEnabledEnabled
User ManagementEnabledDisabledDisabled
SystemEnabledDisabledHigh only

Technical Design

Preferences are stored as an optional organisation-wide default plus per-user overrides that always take precedence when present, covering every category × channel (In-App, Web Push, Email) combination, matching the values in Default Preferences above. The frontend reads and writes the current user's effective preferences via GET/PUT /api/notification-preferences, with PUT /api/admin/notification-preferences/defaults reserved for admin-set organisation-wide defaults; changes apply immediately, with no reload. Every delivery path (MCM-14 — Real-Time In-App Notification Bell, MCM-16 — Web Push Notification, MCM-17 — Email Notification) checks this preference set before sending, so a disabled category/channel combination is a no-op at send time, not just a UI-level filter.


UI / Frontend Changes

  • New "Notification Preferences" section in the user's Profile Settings page.
  • Three-column toggle matrix: category rows x In-App / Web Push / Email columns, reflecting the Default Preferences table.
  • Admin-only view for setting organisation-wide defaults, separate from the per-user override view.
  • Toggle changes apply immediately (optimistic UI update) with no page reload or save button.

On this page