Back to compare picker

Presence vs Mentions vs Notification center vs Activity log vs Comments vs Threaded discussion vs Settings management vs Permission denied state

Use presence for visible availability and co-attendance signals, mentions for targeted attention inside authored content, notification center for retained inbox triage, and activity log for durable event history.

Learn the decision

Match the interaction to the person's task

Use presence for visible availability and co-attendance signals, mentions for targeted attention inside authored content, notification center for retained inbox triage, and activity log for durable event history.

Presence

Use it when: Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.

Make this state clear: Manual status, automatic status, status duration, status message, working-hours state, paused-notification state, and calendar-derived state.

Observe the result: A file owner sees who has viewed the document within the same domain, respects hidden view-history settings, and uses the signal for follow-up rather than audit proof.

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 →

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 →

Activity log

Use it when: Users need to inspect recorded user, admin, system, security, or integration events.

Make this state clear: Default log state with event records, result count, visible timezone, retention window, and permission scope.

Observe the result: An admin filters to failed SSO events, expands one entry, copies the event ID, exports the filtered range, and sees that records older than 180 days require a different archive.

Study the full pattern →

Comments

Use it when: Feedback must preserve author, timestamp, reply, resolution, assignment, or moderation context.

Make this state clear: Empty comment list and first-comment composer.

Observe the result: A reviewer comments on a selected line, adds an action item for Dana, receives a reply, resolves the comment, and can reopen it from the resolved filter.

Study the full pattern →

Threaded discussion

Use it when: A topic or parent message can generate multiple reply branches that users need to follow over time.

Make this state clear: Parent topic or parent message with author, timestamp, title or body, category, and reply count.

Observe the result: A user opens a notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.

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 →

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: A person reaches a result and needs a clear route to continue. 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 PresenceMentionsNotification centerActivity logCommentsThreaded discussionSettings managementPermission denied state
UI or UX UI + UX - Person or group availability signal with status label, recency, source, privacy boundary, and action-aware affordancesUI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguardsUI + UX - Durable user-opened notification history and action drawerUI + UX - Searchable and exportable record of system, user, or administrative eventsUI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderationUI + UX - Topic-centered conversation with parent post, reply branches, unread participation state, and thread-level controlsUI + UX - Dedicated user or app configuration management surfaceUI + UX - Authorization and access-boundary state
UI guidance Show presence controls and explanations where users act on the signal: status menu, status duration, last updated time, working-hours note, privacy restriction, stale value, co-viewer list, and action changes such as call disabled, message allowed, or notify later.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.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 activity logs as evidence-oriented records with event time, actor, action, object, source system, scope, result, and technical context such as IP address or location when available.Render comments as anchored contributions with author identity, timestamp, body, optional attachment or selection context, edited state, reply target, and state labels such as open, resolved, hidden, deleted, or assigned.Render a threaded discussion around a visible parent topic or parent message, with reply rows that preserve author, timestamp, reply target, branch depth, unread or new state, and thread-scoped actions.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.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 presence when users need to decide whether to interrupt, wait, route work, join a session, assign follow-up, or understand who is currently viewing or recently active in a shared space.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 a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.Use activity log when users need to investigate, audit, verify, or troubleshoot actions across accounts, objects, systems, settings, or security boundaries.Preserve comment drafts, anchors, authorship, notifications, edit history, deletion outcomes, and resolved or hidden states so conversation context remains trustworthy across reloads, permissions, moderation, and return visits.Use threaded discussion when users need to follow, contribute to, or resolve a conversation that branches from one topic, question, channel message, or post and must keep replies understandable over time.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 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 reviewer row shows Priya as Busy in a meeting until 14:30, disables Call, keeps Message available, and offers Notify when available.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 bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.An organization audit log table shows timestamp, actor, action, target object, app, IP address, result, and a Details drawer with before and after fields.A document margin comment shows the selected paragraph, author, timestamp, body text, Reply, Resolve, Assign, and Copy link actions with the composer focused on that selection.A support topic shows the original question, three top-level replies, one expanded reply branch, an accepted answer badge, unread branch marker, and thread-level Follow and Mute controls.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 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 stale active badge remains after the user has gone offline and the call button still looks primary.Mention chips break when copied, pasted, edited, localized, or rendered in plain-text fallbacks.Users ignore the center because duplicate low-value messages inflate the badge.An export button downloads a different date range and timezone than the on-screen filtered log.A Notes textarea sits under a record and calls itself comments even though every user overwrites the same field.Nested replies are indented until they become unreadable on mobile and the answer is hidden below collapsed context.Users change the wrong scope because local, account, workspace, and organization settings look identical.A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX A file owner sees who has viewed the document within the same domain, respects hidden view-history settings, and uses the signal for follow-up rather than audit proof.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.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.An admin filters to failed SSO events, expands one entry, copies the event ID, exports the filtered range, and sees that records older than 180 days require a different archive.A reviewer comments on a selected line, adds an action item for Dana, receives a reply, resolves the comment, and can reopen it from the resolved filter.A user opens a notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.A user turns off weekly digest emails, sees the setting save immediately, keeps urgent security emails enabled, and understands the workspace-level override.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 manager treats Away as an attendance record even though it came from device inactivity and privacy-limited activity data.A mention notification opens the record homepage rather than the exact comment sentence, forcing the recipient to search for why they were pulled in.Users mark all notifications read and lose the only record of an export job they still need to download.A user marks a notification read and the corresponding activity evidence disappears from the only log.A user writes a long comment, loses network connection, and the draft disappears when the page reloads.A moderator marks an answer but the thread summary still shows unanswered because answer state is stored only on the visible reply card.A user changes a privacy setting thinking it affects only one project, but the value applies to the whole account.Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.Composed content needs to target people or groups inline.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Users need to inspect recorded user, admin, system, security, or integration events.Feedback must preserve author, timestamp, reply, resolution, assignment, or moderation context.A topic or parent message can generate multiple reply branches that users need to follow over time.Users need to inspect and change persistent app, account, workspace, privacy, notification, display, integration, device, or system behavior.A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when The product needs a durable audit trail or compliance record.The user is selecting a structured owner, assignee, approver, or recipient field outside written content.The product has only occasional current-action feedback that a toast or inline status can handle.The goal is only to show a readable milestone history for one case or process.The user is simply entering a long answer into a form field.The surface is a broad feed of independent posts or activity cards.The task is a one-time transaction, submission, setup wizard, or onboarding flow.The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state Manual status, automatic status, status duration, status message, working-hours state, paused-notification state, and calendar-derived state.Highlighted suggestion, keyboard-selected suggestion, mouse or touch-selected suggestion, and inserted mention token.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Default log state with event records, result count, visible timezone, retention window, and permission scope.Empty comment list and first-comment composer.Parent topic or parent message with author, timestamp, title or body, category, and reply count.Settings overview with categories and current valuesWhole-object access denied state.
Accessibility burden Announce meaningful presence changes only when they affect the current task or selected person.Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.Use table or structured list semantics so actor, action, object, timestamp, result, and scope are perceivable together.Label the comments region with the object or selection being discussed.Label the thread region with the parent topic or message title.Use headings, section labels, fieldsets, and persistent labels so settings groups and controls have clear programmatic names.Move focus to the permission message when it replaces page content or blocks a workflow.
Common misuse Treating presence as employee monitoring or audit evidence.Treating a mention suggestion list as a generic people picker and ignoring caret position, inline serialization, and notification side effects.Treating the badge count, unread count, and total notification count as one number.Using vague activity labels that omit actor, action, object, timestamp, or result.Using one shared Notes field as a comment system and overwriting prior contributors.Flattening every reply into a chronological stream and losing who replied to whom.Using settings as a dumping ground for unrelated navigation, billing, help, profile setup, onboarding, or destructive account actions.Treating authorization denial as a generic retryable error.

Presence

UI or UX
UI + UX - Person or group availability signal with status label, recency, source, privacy boundary, and action-aware affordances
UI guidance
Show presence controls and explanations where users act on the signal: status menu, status duration, last updated time, working-hours note, privacy restriction, stale value, co-viewer list, and action changes such as call disabled, message allowed, or notify later.
UX guidance
Use presence when users need to decide whether to interrupt, wait, route work, join a session, assign follow-up, or understand who is currently viewing or recently active in a shared space.
Good UI
A reviewer row shows Priya as Busy in a meeting until 14:30, disables Call, keeps Message available, and offers Notify when available.
Bad UI
A stale active badge remains after the user has gone offline and the call button still looks primary.
Good UX
A file owner sees who has viewed the document within the same domain, respects hidden view-history settings, and uses the signal for follow-up rather than audit proof.
Bad UX
A manager treats Away as an attendance record even though it came from device inactivity and privacy-limited activity data.
Best fit
Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.
Avoid when
The product needs a durable audit trail or compliance record.
Required state
Manual status, automatic status, status duration, status message, working-hours state, paused-notification state, and calendar-derived state.
Accessibility burden
Announce meaningful presence changes only when they affect the current task or selected person.
Common misuse
Treating presence as employee monitoring or audit evidence.

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.

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.

Activity log

UI or UX
UI + UX - Searchable and exportable record of system, user, or administrative events
UI guidance
Render activity logs as evidence-oriented records with event time, actor, action, object, source system, scope, result, and technical context such as IP address or location when available.
UX guidance
Use activity log when users need to investigate, audit, verify, or troubleshoot actions across accounts, objects, systems, settings, or security boundaries.
Good UI
An organization audit log table shows timestamp, actor, action, target object, app, IP address, result, and a Details drawer with before and after fields.
Bad UI
An export button downloads a different date range and timezone than the on-screen filtered log.
Good UX
An admin filters to failed SSO events, expands one entry, copies the event ID, exports the filtered range, and sees that records older than 180 days require a different archive.
Bad UX
A user marks a notification read and the corresponding activity evidence disappears from the only log.
Best fit
Users need to inspect recorded user, admin, system, security, or integration events.
Avoid when
The goal is only to show a readable milestone history for one case or process.
Required state
Default log state with event records, result count, visible timezone, retention window, and permission scope.
Accessibility burden
Use table or structured list semantics so actor, action, object, timestamp, result, and scope are perceivable together.
Common misuse
Using vague activity labels that omit actor, action, object, timestamp, or result.

Comments

UI or UX
UI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderation
UI guidance
Render comments as anchored contributions with author identity, timestamp, body, optional attachment or selection context, edited state, reply target, and state labels such as open, resolved, hidden, deleted, or assigned.
UX guidance
Preserve comment drafts, anchors, authorship, notifications, edit history, deletion outcomes, and resolved or hidden states so conversation context remains trustworthy across reloads, permissions, moderation, and return visits.
Good UI
A document margin comment shows the selected paragraph, author, timestamp, body text, Reply, Resolve, Assign, and Copy link actions with the composer focused on that selection.
Bad UI
A Notes textarea sits under a record and calls itself comments even though every user overwrites the same field.
Good UX
A reviewer comments on a selected line, adds an action item for Dana, receives a reply, resolves the comment, and can reopen it from the resolved filter.
Bad UX
A user writes a long comment, loses network connection, and the draft disappears when the page reloads.
Best fit
Feedback must preserve author, timestamp, reply, resolution, assignment, or moderation context.
Avoid when
The user is simply entering a long answer into a form field.
Required state
Empty comment list and first-comment composer.
Accessibility burden
Label the comments region with the object or selection being discussed.
Common misuse
Using one shared Notes field as a comment system and overwriting prior contributors.

Threaded discussion

UI or UX
UI + UX - Topic-centered conversation with parent post, reply branches, unread participation state, and thread-level controls
UI guidance
Render a threaded discussion around a visible parent topic or parent message, with reply rows that preserve author, timestamp, reply target, branch depth, unread or new state, and thread-scoped actions.
UX guidance
Use threaded discussion when users need to follow, contribute to, or resolve a conversation that branches from one topic, question, channel message, or post and must keep replies understandable over time.
Good UI
A support topic shows the original question, three top-level replies, one expanded reply branch, an accepted answer badge, unread branch marker, and thread-level Follow and Mute controls.
Bad UI
Nested replies are indented until they become unreadable on mobile and the answer is hidden below collapsed context.
Good UX
A user opens a notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.
Bad UX
A moderator marks an answer but the thread summary still shows unanswered because answer state is stored only on the visible reply card.
Best fit
A topic or parent message can generate multiple reply branches that users need to follow over time.
Avoid when
The surface is a broad feed of independent posts or activity cards.
Required state
Parent topic or parent message with author, timestamp, title or body, category, and reply count.
Accessibility burden
Label the thread region with the parent topic or message title.
Common misuse
Flattening every reply into a chronological stream and losing who replied to whom.

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.

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 presence when users need to judge whether another person is currently available, away, busy, offline, in a meeting, focusing, presenting, viewing the same object, or recently active before interrupting, routing, assigning, joining, or waiting.
  • Choose mentions when a composer needs to target a person or group inside a message, comment, issue, task, or document; mention delivery may use presence context, but the mention is an authored attention event rather than an availability signal.
  • Use notification center when users need a retained inbox of unread items, reminders, and preference controls; presence may explain why a recipient may not respond now, but it should not become the inbox itself.
  • Use activity log when the product must prove who viewed, changed, routed, or was notified about something; presence and view history can inform follow-up, but they are not sufficient compliance evidence unless explicitly captured as audit events.
  • Use comments or threaded discussion when the primary task is participating in a conversation; presence can show who is viewing, replying, or available, but it should not replace author, reply, resolve, branch, unread, or moderation state.
  • Use profile setup for durable identity details such as name, role, avatar, pronouns, and time zone; presence is a transient signal that can change automatically by activity, calendar, device, or manual override.
  • Use settings management when users configure availability defaults, working hours, privacy mode, external sharing, status duration, and automatic status rules; do not hide these controls inside every presence badge.
  • Use permission-denied state when a person cannot view presence or activity due to privacy, external access, domain, or object permission limits; show restricted or unknown states rather than inventing availability.
  • Use sync state when the problem is whether data has been sent, saved, or refreshed; presence recency should name freshness and source so stale availability is not mistaken for a live connection.
  • Use offline state for the current user's connectivity and recovery path; another person's offline or away presence should not imply this user's app is offline.
Inspect live examples
Failure modes
  • Presence is shown as a green dot with no label, source, timestamp, or privacy state, leaving users to guess whether it means online, available, viewing, or recently active.
  • An old presence value remains visible after a device disconnects and the UI does not show stale, unknown, or last-updated state.
  • A busy or do-not-disturb person receives intrusive calls or banners because action controls ignore presence and priority rules.
  • The interface exposes view activity or presence across domains, guests, private files, or external organizations without honoring privacy settings.
  • Presence is used as a performance or attendance record even though the underlying source is automatic, delayed, preference-limited, or explicitly not an audit record.
  • A co-viewing indicator says three people are here but gives no names, roles, access scope, screen-reader label, or way to follow up.

Saved items