Back to compare picker

Activity feed vs Feed vs Activity log vs Notification center vs Timeline vs Comments vs Mentions vs Threaded discussion vs Presence

Use activity feed for recent work and collaboration events users can catch up on, feed for broad stream reading, activity log for evidence and audit investigation, and notification center for durable notification triage.

Learn the decision

Match the interaction to the person's task

Use activity feed for recent work and collaboration events users can catch up on, feed for broad stream reading, activity log for evidence and audit investigation, and notification center for durable notification triage.

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 →

Feed

Use it when: Users consume a continuing stream of updates, posts, stories, comments, media, or collaboration activity.

Make this state clear: Default feed with heading, order label, rendered item count or range, and article-like items.

Observe the result: A user pauses live updates, reads three older posts, sees 2 new updates waiting, then chooses Jump to latest when ready.

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 →

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 →

Timeline

Use it when: Users need a chronological record of important events for one object, case, order, application, or process.

Make this state clear: Default timeline with heading, order label, date or phase groups, and event markers.

Observe the result: A caseworker filters the timeline to System events, sees two date groups hidden, restores all events, and the event order and current marker stay stable.

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 →

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 →

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 →

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 →

Practice the judgment: Imagine this situation: A product calls a full audit table an activity feed and hides filters, retention, export, actor IDs, and evidence fields users need for investigation. 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 Activity feedFeedActivity logNotification centerTimelineCommentsMentionsThreaded discussionPresence
UI or UX UI + UX - Catch-up stream of recent collaboration and work events with actor, verb, object, type, destination, and triage controlsUI + UX - Dynamic stream of article-like updates that may load or insert content at either endUI + UX - Searchable and exportable record of system, user, or administrative eventsUI + UX - Durable user-opened notification history and action drawerUI + UX - Bounded chronological record of past, current, or expected eventsUI + UX - Object-attached comment composer and comment list with authorship, replies, state, permissions, and moderationUI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguardsUI + UX - Topic-centered conversation with parent post, reply branches, unread participation state, and thread-level controlsUI + UX - Person or group availability signal with status label, recency, source, privacy boundary, and action-aware affordances
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.Render the feed as a labelled stream of item boundaries where each item has a source or author, timestamp, title or body summary, type, actions, and enough context to stand alone as an article-like update.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.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 the timeline as a labelled chronological sequence where each event has a visible date or time, event title, actor or system source when known, status or type, and a short summary.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.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.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.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 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.Use feed when users consume a continuing stream of posts, updates, stories, events, or collaboration activity and need to keep their reading position while new or older content appears.Use activity log when users need to investigate, audit, verify, or troubleshoot actions across accounts, objects, systems, settings, or security boundaries.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 timeline when users need to understand what happened, where they are now, and what may happen next in a case, claim, application, order, incident, or process.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 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 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 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 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.A project feed shows source avatar, actor, timestamp, object name, excerpt, item type, unread marker, reply and save actions, and a visible queued-new-items banner while the reader is midstream.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 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 benefits application timeline groups events by date and shows Application submitted, Evidence requested, Evidence received, Decision pending, and Next review, with actor, timestamp, and status marker.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 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 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 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 feed includes every presence heartbeat and typing event, making mentions and failed deployment events impossible to find.New posts appear above the current paragraph and shift the page while the user is reading.An export button downloads a different date range and timezone than the on-screen filtered log.Users ignore the center because duplicate low-value messages inflate the badge.A dense audit table is squeezed into timeline cards and hides changed fields, exact actor identity, and retention proof.A Notes textarea sits under a record and calls itself comments even though every user overwrites the same field.Mention chips break when copied, pasted, edited, localized, or rendered in plain-text fallbacks.Nested replies are indented until they become unreadable on mobile and the answer is hidden below collapsed context.A stale active badge remains after the user has gone offline and the call button still looks primary.
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.A user pauses live updates, reads three older posts, sees 2 new updates waiting, then chooses Jump to latest when ready.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.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.A caseworker filters the timeline to System events, sees two date groups hidden, restores all events, and the event order and current marker stay stable.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 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 notification to a specific unread reply, sees the parent post and branch context, replies, marks the answer, and mutes future replies after resolution.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 user clears a notification in Activity but the notification center badge stays out of sync and the same event reappears as unread.The feed jumps to the top whenever a new post arrives.A user marks a notification read and the corresponding activity evidence disappears from the only log.Users mark all notifications read and lose the only record of an export job they still need to download.A user sees a future appointment marker styled like completed history and assumes the appointment already happened.A user writes a long comment, loses network connection, and the draft disappears when the page reloads.A mention notification opens the record homepage rather than the exact comment sentence, forcing the recipient to search for why they were pulled in.A moderator marks an answer but the thread summary still shows unanswered because answer state is stored only on the visible reply card.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 catch up on recent collaboration, app, repository, channel, project, meeting, reminder, or task activity.Users consume a continuing stream of updates, posts, stories, comments, media, or collaboration activity.Users need to inspect recorded user, admin, system, security, or integration events.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Users need a chronological record of important events for one object, case, order, application, or process.Feedback must preserve author, timestamp, reply, resolution, assignment, or moderation context.Composed content needs to target people or groups inline.A topic or parent message can generate multiple reply branches that users need to follow over time.Users need to understand current or recent availability before messaging, calling, assigning, routing, or joining.
Avoid when The surface is primarily content consumption, media browsing, or article-like stream reading.The content is a finite set of objects that users need to filter, sort, select, compare, or manage.The goal is only to show a readable milestone history for one case or process.The product has only occasional current-action feedback that a toast or inline status can handle.The surface is a live stream whose content keeps arriving and must preserve reader position.The user is simply entering a long answer into a form field.The user is selecting a structured owner, assignee, approver, or recipient field outside written content.The surface is a broad feed of independent posts or activity cards.The product needs a durable audit trail or compliance record.
Required state Default feed state with actor, verb, object, timestamp, source, type icon, preview, scope, and destination for each activity item.Default feed with heading, order label, rendered item count or range, and article-like items.Default log state with event records, result count, visible timezone, retention window, and permission scope.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Default timeline with heading, order label, date or phase groups, and event markers.Empty comment list and first-comment composer.Highlighted suggestion, keyboard-selected suggestion, mouse or touch-selected suggestion, and inserted mention token.Parent topic or parent message with author, timestamp, title or body, category, and reply count.Manual status, automatic status, status duration, status message, working-hours state, paused-notification state, and calendar-derived state.
Accessibility burden Give the activity feed a heading and expose the current filter, layout, and unread or cleared state in text.Give the feed a heading or accessible label and expose the current order or filter in text.Use table or structured list semantics so actor, action, object, timestamp, result, and scope are perceivable together.Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.Use semantic list or ordered-list structure with date-group headings and text event labels.Label the comments region with the object or selection being discussed.Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.Label the thread region with the parent topic or message title.Announce meaningful presence changes only when they affect the current task or selected person.
Common misuse Dumping every low-level system event, presence update, typing event, or cursor movement into the feed.Calling any vertical card list a feed even when it is a bounded object collection.Using vague activity labels that omit actor, action, object, timestamp, or result.Treating the badge count, unread count, and total notification count as one number.Omitting dates, actors, or event summaries and expecting icons to communicate the sequence.Using one shared Notes field as a comment system and overwriting prior contributors.Treating a mention suggestion list as a generic people picker and ignoring caret position, inline serialization, and notification side effects.Flattening every reply into a chronological stream and losing who replied to whom.Treating presence as employee monitoring or audit evidence.

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.

Feed

UI or UX
UI + UX - Dynamic stream of article-like updates that may load or insert content at either end
UI guidance
Render the feed as a labelled stream of item boundaries where each item has a source or author, timestamp, title or body summary, type, actions, and enough context to stand alone as an article-like update.
UX guidance
Use feed when users consume a continuing stream of posts, updates, stories, events, or collaboration activity and need to keep their reading position while new or older content appears.
Good UI
A project feed shows source avatar, actor, timestamp, object name, excerpt, item type, unread marker, reply and save actions, and a visible queued-new-items banner while the reader is midstream.
Bad UI
New posts appear above the current paragraph and shift the page while the user is reading.
Good UX
A user pauses live updates, reads three older posts, sees 2 new updates waiting, then chooses Jump to latest when ready.
Bad UX
The feed jumps to the top whenever a new post arrives.
Best fit
Users consume a continuing stream of updates, posts, stories, comments, media, or collaboration activity.
Avoid when
The content is a finite set of objects that users need to filter, sort, select, compare, or manage.
Required state
Default feed with heading, order label, rendered item count or range, and article-like items.
Accessibility burden
Give the feed a heading or accessible label and expose the current order or filter in text.
Common misuse
Calling any vertical card list a feed even when it is a bounded object collection.

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.

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.

Timeline

UI or UX
UI + UX - Bounded chronological record of past, current, or expected events
UI guidance
Render the timeline as a labelled chronological sequence where each event has a visible date or time, event title, actor or system source when known, status or type, and a short summary.
UX guidance
Use timeline when users need to understand what happened, where they are now, and what may happen next in a case, claim, application, order, incident, or process.
Good UI
A benefits application timeline groups events by date and shows Application submitted, Evidence requested, Evidence received, Decision pending, and Next review, with actor, timestamp, and status marker.
Bad UI
A dense audit table is squeezed into timeline cards and hides changed fields, exact actor identity, and retention proof.
Good UX
A caseworker filters the timeline to System events, sees two date groups hidden, restores all events, and the event order and current marker stay stable.
Bad UX
A user sees a future appointment marker styled like completed history and assumes the appointment already happened.
Best fit
Users need a chronological record of important events for one object, case, order, application, or process.
Avoid when
The surface is a live stream whose content keeps arriving and must preserve reader position.
Required state
Default timeline with heading, order label, date or phase groups, and event markers.
Accessibility burden
Use semantic list or ordered-list structure with date-group headings and text event labels.
Common misuse
Omitting dates, actors, or event summaries and expecting icons to communicate the sequence.

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.

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.

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.

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.
Decision rules
  • Choose activity feed when users need to catch up on recent collaboration or product events such as mentions, replies, reactions, assignments, comments, shares, repository changes, meeting updates, or app events across a workspace, project, team, organization, or object.
  • Choose feed when the main experience is reading a broad stream of article-like posts, stories, media, updates, or recommendations where reading position, stream ordering, and content consumption matter more than work-event triage.
  • Choose activity log when users need inspectable evidence with actor, action, object, timestamp, IP address, source, retention, filters, export, and compliance semantics; an activity feed may summarize events, but it is not the audit record.
  • Choose notification center when items have durable notification lifecycle behavior such as unseen badge, unread state, mark-read controls, preferences, cleanup after related-object viewing, and retained inbox triage.
  • Choose timeline when one case, order, file, project, or process needs a bounded chronological story of milestones, not a mixed workspace catch-up stream.
  • Use comments or threaded discussion when the event is actually a conversation that needs replies, resolution, moderation, answer marking, or topic branch state; an activity feed can link to those conversations but should not replace them.
  • Use mentions when the core task is targeting a person or group inside authored content; an activity feed may surface the resulting mention as one event type.
  • Use presence when users need current availability, viewing, or live co-presence; activity feed should show meaningful past events rather than continuous status pings.
  • Activity feed items need actor, verb, object, time, source, destination, type, read or cleared state where supported, and enough preview context to decide whether to open the underlying work.
  • Do not collapse every event into an activity feed: low-value system churn, audit-only events, every cursor movement, repeated sync changes, and private no-disclosure events should be suppressed, grouped, or routed elsewhere.
Inspect live examples
Failure modes
  • A product calls a full audit table an activity feed and hides filters, retention, export, actor IDs, and evidence fields users need for investigation.
  • A workspace feed mixes mentions, comments, reactions, assignments, deployment events, and recommendations with no type filters or clear/read controls.
  • A notification center clears unread items but the activity feed still claims they are unseen, making badge and feed state contradict each other.
  • A live collaboration feed records every cursor movement and presence heartbeat, drowning out meaningful work events.
  • A timeline for one object is replaced with a workspace activity feed, so users cannot reconstruct the milestone history of the object.
  • An activity feed item opens the wrong destination because the actor, verb, object, source app, and deep link are not stored as stable event fields.

Saved items