Back to compare picker

Notification preferences vs Settings management vs Notification center vs Follow / subscribe vs Activity feed vs Toast notification vs Mentions vs Permission denied state

Use notification preferences when users configure which notification types, channels, frequency, quiet times, and previews they want; use settings management for broader configuration, notification center for retained inbox triage, and follow / subscribe for per-object future update opt-in.

Learn the decision

Match the interaction to the person's task

Use notification preferences when users configure which notification types, channels, frequency, quiet times, and previews they want; use settings management for broader configuration, notification center for retained inbox triage, and follow / subscribe for per-object future update opt-in.

Notification preferences

Use it when: Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.

Make this state clear: Default notification preferences state.

Observe the result: A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.

Study the full pattern →

Settings management

Use it when: Users need to inspect and change persistent app, account, workspace, privacy, notification, display, integration, device, or system behavior.

Make this state clear: Settings overview with categories and current values

Observe the result: A user turns off weekly digest emails, sees the setting save immediately, keeps urgent security emails enabled, and understands the workspace-level override.

Study the full pattern →

Notification center

Use it when: Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.

Make this state clear: Closed entry-point state with zero, new-unseen, and unread-but-seen counts.

Observe the result: Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.

Study the full pattern →

Follow / subscribe

Use it when: Users need future updates from a specific object, thread, channel, space, repository, topic, saved view, or query.

Make this state clear: Following state.

Observe the result: A user follows a support thread before leaving for a meeting, receives only new replies in the promised destination, then unfollows when the incident closes.

Study the full pattern →

Activity feed

Use it when: Users need to catch up on recent collaboration, app, repository, channel, project, meeting, reminder, or task activity.

Make this state clear: Default feed state with actor, verb, object, timestamp, source, type icon, preview, scope, and destination for each activity item.

Observe the result: A user filters Activity to mentions and replies, answers one thread inline, clears low-value reactions, saves a custom view for VIPs, and opens a deployment failure in the source app.

Study the full pattern →

Toast notification

Use it when: Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.

Make this state clear: Stacked state with newest and older messages ordered predictably and capped.

Observe the result: A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.

Study the full pattern →

Mentions

Use it when: Composed content needs to target people or groups inline.

Make this state clear: Highlighted suggestion, keyboard-selected suggestion, mouse or touch-selected suggestion, and inserted mention token.

Observe the result: A user mentions @Dana in a private incident note, sees that Dana lacks access, chooses Invite and mention, and the resulting notification opens the exact note.

Study the full pattern →

Permission denied state

Use it when: A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.

Make this state clear: Whole-object access denied state.

Observe the result: A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.

Study the full pattern →

Practice the judgment: Imagine this situation: Users turn off email but continue receiving push and in-app banners because channels are hidden in separate places. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Notification preferencesSettings managementNotification centerFollow / subscribeActivity feedToast notificationMentionsPermission denied state
UI or UX UI + UX - User-controlled rules for notification type, channel, frequency, timing, privacy, and exceptionsUI + UX - Dedicated user or app configuration management surfaceUI + UX - Durable user-opened notification history and action drawerUI + UX - Per-object opt-in control for future updates from a thread, page, channel, space, repository, saved view, or topicUI + UX - Catch-up stream of recent collaboration and work events with actor, verb, object, type, destination, and triage controlsUI + UX - Transient non-modal status messageUI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguardsUI + UX - Authorization and access-boundary state
UI guidance Render notification preferences as a structured matrix or grouped settings surface that shows notification type, source, delivery channel, device, frequency, quiet-time rule, preview privacy, override, and current saved state.Render settings management as a durable configuration surface with a clear Settings or Preferences entry point, grouped categories, current values, setting descriptions, ownership or scope labels, dependencies, save or immediate-apply behavior, status feedback, search or section navigation for larger sets, and reset or restore defaults where appropriate.Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.Render follow or subscribe as a stateful control attached to the specific object being watched, with current state, target scope, delivery destination, event types, auto-follow reason when present, and an unfollow path.Render activity feed as a typed event stream where each item names the actor or source app, action, object, workspace or channel, timestamp, preview, event type, read or cleared state when supported, and a stable destination for follow-up.Render toast notifications in a consistent non-modal region with short status text, clear severity, an optional close control, and at most one concise action.Show mention suggestions at the caret with names, handles, avatars, teams, channels, availability or scope hints, permission warnings, and keyboard-highlight state; distinguish exact matches, ambiguous display names, unavailable recipients, and broad-audience mentions.Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.
UX guidance Make consequences explicit: what stops, what still arrives, which devices and channels are affected, when changes apply, and which admin, OS, or workspace policies override the user's choice.Use settings management when users need to review and change persistent app, account, workspace, notification, privacy, display, integration, or system behavior outside the immediate task flow.Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.Make subscriptions reversible, scoped, and explainable so users understand why updates arrive, where they arrive, which events are included, and how to stop or narrow noisy delivery.Protect attention by grouping low-value repetition, preserving meaningful actors and destinations, distinguishing mention/reply/reaction/app/reminder/project-change types, and routing audit evidence, long-form content, and live status elsewhere.Escalate to inline, section, dialog, notification center, undo, or error-state treatment when the message requires repair, proof, long reading time, several actions, or reliable recovery.Use mentions when a user needs to call attention to a person, team, channel, role, or group from inside a message, comment, task, document, issue, or thread while keeping the reference embedded in the authored content.Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.
Good UI A notification preferences page groups Mentions, Assigned work, Followed threads, Security, Digest, and Marketing, with columns for In-app, Email, Push, Banner, and Digest frequency.A notification settings page groups channels, quiet hours, digest frequency, and workspace scope; each row shows current value, effect, dependency, and whether changes save immediately.A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.A thread header shows Following, explains replies will appear in the followed-threads list and Activity feed, and offers Unfollow replies from the same menu.A team activity feed shows Priya mentioned you in #refunds, Build bot marked release-128 failed, Maya reacted to your handoff note, and Rahul merged PR #742, each with icon, timestamp, preview, type filter, and Open action.Export started appears in the top notification region with a timestamp, close control, and View jobs action that remains available in activity history.A comment composer opens a suggestion list after @, shows people and teams with avatars, handles, access labels, and keyboard focus, then inserts a mention chip for Priya Rao.A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.
Bad UI A preference changes email only but the label implies all notifications stopped.Users change the wrong scope because local, account, workspace, and organization settings look identical.Users ignore the center because duplicate low-value messages inflate the badge.A repository is watched automatically after one comment, but the user only finds the unsubscribe action three screens deep in global settings.A feed includes every presence heartbeat and typing event, making mentions and failed deployment events impossible to find.Five unrelated toasts pile up over the Save and Continue controls.Mention chips break when copied, pasted, edited, localized, or rendered in plain-text fallbacks.A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.A user turns off weekly digest emails, sees the setting save immediately, keeps urgent security emails enabled, and understands the workspace-level override.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.A user follows a support thread before leaving for a meeting, receives only new replies in the promised destination, then unfollows when the incident closes.A user filters Activity to mentions and replies, answers one thread inline, clears low-value reactions, saves a custom view for VIPs, and opens a deployment failure in the source app.A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.A user mentions @Dana in a private incident note, sees that Dana lacks access, chooses Invite and mention, and the resulting notification opens the exact note.A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.
Bad UX A user disables email for a noisy project and still receives duplicate push and desktop banners because those channels live in separate hidden settings.A user changes a privacy setting thinking it affects only one project, but the value applies to the whole account.Users mark all notifications read and lose the only record of an export job they still need to download.A followed saved view keeps sending links after the user loses access to the underlying project.A user clears a notification in Activity but the notification center badge stays out of sync and the same event reappears as unread.Every autosave tick triggers a toast, training users to ignore real status changes.A mention notification opens the record homepage rather than the exact comment sentence, forcing the recipient to search for why they were pulled in.Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.Users need to inspect and change persistent app, account, workspace, privacy, notification, display, integration, device, or system behavior.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Users need future updates from a specific object, thread, channel, space, repository, topic, saved view, or query.Users need to catch up on recent collaboration, app, repository, channel, project, meeting, reminder, or task activity.Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.Composed content needs to target people or groups inline.A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when The product has only a few low-volume notifications that can be handled by defaults and inline controls.The task is a one-time transaction, submission, setup wizard, or onboarding flow.The product has only occasional current-action feedback that a toast or inline status can handle.Another person needs to notify the user immediately inside authored content.The surface is primarily content consumption, media browsing, or article-like stream reading.The message is the only recovery path for a blocking or high-consequence failure.The user is selecting a structured owner, assignee, approver, or recipient field outside written content.The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state Default notification preferences state.Settings overview with categories and current valuesClosed entry-point state with zero, new-unseen, and unread-but-seen counts.Following state.Default feed state with actor, verb, object, timestamp, source, type icon, preview, scope, and destination for each activity item.Stacked state with newest and older messages ordered predictably and capped.Highlighted suggestion, keyboard-selected suggestion, mouse or touch-selected suggestion, and inserted mention token.Whole-object access denied state.
Accessibility burden Group preferences with headings and fieldsets for event type, delivery channel, device, and frequency.Use headings, section labels, fieldsets, and persistent labels so settings groups and controls have clear programmatic names.Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.Give the control an accessible name that includes target type, target name, current follow state, and destination when space allows.Give the activity feed a heading and expose the current filter, layout, and unread or cleared state in text.Keep close and action controls keyboard reachable, clearly named, and stable while focused.Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.Move focus to the permission message when it replaces page content or blocks a workflow.
Common misuse Offering one master notification switch for a complex collaboration product.Using settings as a dumping ground for unrelated navigation, billing, help, profile setup, onboarding, or destructive account actions.Treating the badge count, unread count, and total notification count as one number.Hiding Unfollow in global notification settings only.Dumping every low-level system event, presence update, typing event, or cursor movement into the feed.Using a toast as the only feedback for payment, save, permission, upload, or security failures.Treating a mention suggestion list as a generic people picker and ignoring caret position, inline serialization, and notification side effects.Treating authorization denial as a generic retryable error.

Notification preferences

UI or UX
UI + UX - User-controlled rules for notification type, channel, frequency, timing, privacy, and exceptions
UI guidance
Render notification preferences as a structured matrix or grouped settings surface that shows notification type, source, delivery channel, device, frequency, quiet-time rule, preview privacy, override, and current saved state.
UX guidance
Make consequences explicit: what stops, what still arrives, which devices and channels are affected, when changes apply, and which admin, OS, or workspace policies override the user's choice.
Good UI
A notification preferences page groups Mentions, Assigned work, Followed threads, Security, Digest, and Marketing, with columns for In-app, Email, Push, Banner, and Digest frequency.
Bad UI
A preference changes email only but the label implies all notifications stopped.
Good UX
A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.
Bad UX
A user disables email for a noisy project and still receives duplicate push and desktop banners because those channels live in separate hidden settings.
Best fit
Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.
Avoid when
The product has only a few low-volume notifications that can be handled by defaults and inline controls.
Required state
Default notification preferences state.
Accessibility burden
Group preferences with headings and fieldsets for event type, delivery channel, device, and frequency.
Common misuse
Offering one master notification switch for a complex collaboration product.

Settings management

UI or UX
UI + UX - Dedicated user or app configuration management surface
UI guidance
Render settings management as a durable configuration surface with a clear Settings or Preferences entry point, grouped categories, current values, setting descriptions, ownership or scope labels, dependencies, save or immediate-apply behavior, status feedback, search or section navigation for larger sets, and reset or restore defaults where appropriate.
UX guidance
Use settings management when users need to review and change persistent app, account, workspace, notification, privacy, display, integration, or system behavior outside the immediate task flow.
Good UI
A notification settings page groups channels, quiet hours, digest frequency, and workspace scope; each row shows current value, effect, dependency, and whether changes save immediately.
Bad UI
Users change the wrong scope because local, account, workspace, and organization settings look identical.
Good UX
A user turns off weekly digest emails, sees the setting save immediately, keeps urgent security emails enabled, and understands the workspace-level override.
Bad UX
A user changes a privacy setting thinking it affects only one project, but the value applies to the whole account.
Best fit
Users need to inspect and change persistent app, account, workspace, privacy, notification, display, integration, device, or system behavior.
Avoid when
The task is a one-time transaction, submission, setup wizard, or onboarding flow.
Required state
Settings overview with categories and current values
Accessibility burden
Use headings, section labels, fieldsets, and persistent labels so settings groups and controls have clear programmatic names.
Common misuse
Using settings as a dumping ground for unrelated navigation, billing, help, profile setup, onboarding, or destructive account actions.

Notification center

UI or UX
UI + UX - Durable user-opened notification history and action drawer
UI guidance
Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.
UX guidance
Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.
Good UI
A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.
Bad UI
Users ignore the center because duplicate low-value messages inflate the badge.
Good UX
Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.
Bad UX
Users mark all notifications read and lose the only record of an export job they still need to download.
Best fit
Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.
Avoid when
The product has only occasional current-action feedback that a toast or inline status can handle.
Required state
Closed entry-point state with zero, new-unseen, and unread-but-seen counts.
Accessibility burden
Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.
Common misuse
Treating the badge count, unread count, and total notification count as one number.

Follow / subscribe

UI or UX
UI + UX - Per-object opt-in control for future updates from a thread, page, channel, space, repository, saved view, or topic
UI guidance
Render follow or subscribe as a stateful control attached to the specific object being watched, with current state, target scope, delivery destination, event types, auto-follow reason when present, and an unfollow path.
UX guidance
Make subscriptions reversible, scoped, and explainable so users understand why updates arrive, where they arrive, which events are included, and how to stop or narrow noisy delivery.
Good UI
A thread header shows Following, explains replies will appear in the followed-threads list and Activity feed, and offers Unfollow replies from the same menu.
Bad UI
A repository is watched automatically after one comment, but the user only finds the unsubscribe action three screens deep in global settings.
Good UX
A user follows a support thread before leaving for a meeting, receives only new replies in the promised destination, then unfollows when the incident closes.
Bad UX
A followed saved view keeps sending links after the user loses access to the underlying project.
Best fit
Users need future updates from a specific object, thread, channel, space, repository, topic, saved view, or query.
Avoid when
Another person needs to notify the user immediately inside authored content.
Required state
Following state.
Accessibility burden
Give the control an accessible name that includes target type, target name, current follow state, and destination when space allows.
Common misuse
Hiding Unfollow in global notification settings only.

Activity feed

UI or UX
UI + UX - Catch-up stream of recent collaboration and work events with actor, verb, object, type, destination, and triage controls
UI guidance
Render activity feed as a typed event stream where each item names the actor or source app, action, object, workspace or channel, timestamp, preview, event type, read or cleared state when supported, and a stable destination for follow-up.
UX guidance
Protect attention by grouping low-value repetition, preserving meaningful actors and destinations, distinguishing mention/reply/reaction/app/reminder/project-change types, and routing audit evidence, long-form content, and live status elsewhere.
Good UI
A team activity feed shows Priya mentioned you in #refunds, Build bot marked release-128 failed, Maya reacted to your handoff note, and Rahul merged PR #742, each with icon, timestamp, preview, type filter, and Open action.
Bad UI
A feed includes every presence heartbeat and typing event, making mentions and failed deployment events impossible to find.
Good UX
A user filters Activity to mentions and replies, answers one thread inline, clears low-value reactions, saves a custom view for VIPs, and opens a deployment failure in the source app.
Bad UX
A user clears a notification in Activity but the notification center badge stays out of sync and the same event reappears as unread.
Best fit
Users need to catch up on recent collaboration, app, repository, channel, project, meeting, reminder, or task activity.
Avoid when
The surface is primarily content consumption, media browsing, or article-like stream reading.
Required state
Default feed state with actor, verb, object, timestamp, source, type icon, preview, scope, and destination for each activity item.
Accessibility burden
Give the activity feed a heading and expose the current filter, layout, and unread or cleared state in text.
Common misuse
Dumping every low-level system event, presence update, typing event, or cursor movement into the feed.

Toast notification

UI or UX
UI + UX - Transient non-modal status message
UI guidance
Render toast notifications in a consistent non-modal region with short status text, clear severity, an optional close control, and at most one concise action.
UX guidance
Escalate to inline, section, dialog, notification center, undo, or error-state treatment when the message requires repair, proof, long reading time, several actions, or reliable recovery.
Good UI
Export started appears in the top notification region with a timestamp, close control, and View jobs action that remains available in activity history.
Bad UI
Five unrelated toasts pile up over the Save and Continue controls.
Good UX
A completed archive action shows a short toast and a specific Undo action because the prior state can be restored.
Bad UX
Every autosave tick triggers a toast, training users to ignore real status changes.
Best fit
Use for short non-blocking confirmation after explicit actions such as save, copy, send, archive, invite, or queue export.
Avoid when
The message is the only recovery path for a blocking or high-consequence failure.
Required state
Stacked state with newest and older messages ordered predictably and capped.
Accessibility burden
Keep close and action controls keyboard reachable, clearly named, and stable while focused.
Common misuse
Using a toast as the only feedback for payment, save, permission, upload, or security failures.

Mentions

UI or UX
UI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguards
UI guidance
Show mention suggestions at the caret with names, handles, avatars, teams, channels, availability or scope hints, permission warnings, and keyboard-highlight state; distinguish exact matches, ambiguous display names, unavailable recipients, and broad-audience mentions.
UX guidance
Use mentions when a user needs to call attention to a person, team, channel, role, or group from inside a message, comment, task, document, issue, or thread while keeping the reference embedded in the authored content.
Good UI
A comment composer opens a suggestion list after @, shows people and teams with avatars, handles, access labels, and keyboard focus, then inserts a mention chip for Priya Rao.
Bad UI
Mention chips break when copied, pasted, edited, localized, or rendered in plain-text fallbacks.
Good UX
A user mentions @Dana in a private incident note, sees that Dana lacks access, chooses Invite and mention, and the resulting notification opens the exact note.
Bad UX
A mention notification opens the record homepage rather than the exact comment sentence, forcing the recipient to search for why they were pulled in.
Best fit
Composed content needs to target people or groups inline.
Avoid when
The user is selecting a structured owner, assignee, approver, or recipient field outside written content.
Required state
Highlighted suggestion, keyboard-selected suggestion, mouse or touch-selected suggestion, and inserted mention token.
Accessibility burden
Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.
Common misuse
Treating a mention suggestion list as a generic people picker and ignoring caret position, inline serialization, and notification side effects.

Permission denied state

UI or UX
UI + UX - Authorization and access-boundary state
UI guidance
Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.
UX guidance
Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.
Good UI
A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.
Bad UI
A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX
A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.
Bad UX
Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state
Whole-object access denied state.
Accessibility burden
Move focus to the permission message when it replaces page content or blocks a workflow.
Common misuse
Treating authorization denial as a generic retryable error.
Decision rules
  • Choose notification preferences when the user is configuring delivery rules across notification types, delivery channels, devices, urgency, quiet times, previews, sounds, keywords, digests, or source categories.
  • Choose settings management when notifications are only one section inside a broader persistent configuration surface that also covers privacy, display, integrations, account, workspace, or system behavior.
  • Choose notification center when the problem is where delivered notifications are retained, filtered, marked read, grouped, or acted on after arrival.
  • Choose follow / subscribe when a user opts into future updates from a specific thread, page, channel, repository, space, saved view, or topic; notification preferences decide how those updates are delivered.
  • Choose activity feed when users need a chronological catch-up stream; notification preferences may determine which activity types enter badges, banners, or feed highlights.
  • Choose toast notification for immediate transient feedback; notification preferences may suppress or alter toasts but should not turn critical in-context blockers into silent preferences.
  • Choose mentions when another person directs attention to a recipient in authored content; notification preferences decide whether mentions create email, push, banner, badge, or quiet delivery.
  • Use permission-denied state when notification choices are unavailable because an admin, workspace owner, device permission, or operating system setting controls delivery.
  • A notification preference surface must expose current values, type-by-channel matrix, delivery timing, quiet hours, digest rules, muted sources, overrides, preview privacy, and save or immediate-apply behavior.
  • Avoid one master off switch that hides critical, security, billing, or current-task notifications without naming what still breaks through.
Inspect live examples
Failure modes
  • Users turn off email but continue receiving push and in-app banners because channels are hidden in separate places.
  • A preference says Important only but never defines which events count as important.
  • Quiet hours suppress urgent security or incident notifications with no exception model.
  • A device permission blocks push notifications, but the app shows the preference as enabled.
  • A team or admin policy overrides notification settings without explanation.
  • Digest settings batch time-sensitive mentions and make collaborators think they were ignored.

Saved items