Back to compare picker

Assignment vs Task list vs Review queue vs Approval workflow vs Mentions vs Object picker vs Notification center vs Activity feed vs Permission sharing

Choose assignment when the user must set, change, clear, or inspect the responsible person, team, bot, or role for one work item, issue, pull request, document comment, task, or ticket.

Decision dimensions

Dimension AssignmentTask listReview queueApproval workflowMentionsObject pickerNotification centerActivity feedPermission sharing
UI or UX UI + UX - Responsibility control for assigning a work item to eligible people, teams, roles, bots, or no ownerUI + UX - Component-level list of linked task rows with names, hints, and statusesUI + UX - Actionable queue for triaging many items that need human reviewUI + UX - Routed decision workflow for requests that require authorized approvalUI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguardsUI + UX - Existing-entity lookup and selected-object confirmationUI + UX - Durable user-opened notification history and action drawerUI + UX - Catch-up stream of recent collaboration and work events with actor, verb, object, type, destination, and triage controlsUI + UX - Durable permission administration for users, groups, roles, inherited access, effective access, and revocation
UI guidance Render assignment as a responsibility field on a specific work item with current assignee, unassigned state, eligibility-filtered candidate picker, self-assign affordance, reassign and clear controls, notification outcome, and visible responsibility wording.Render a task list as a set of row-level tasks where each row has a short task name, optional single-sentence hint, link target when startable, and status text that indicates whether the task is completed, incomplete, in progress, not started, unavailable, optional, or ready.Render review queue as an actionable worklist with queue scope, counts, filters, sort order, row reason, owner, priority, age or SLA, status, preview context, selection, and row actions.Render approval workflow as a routed request record with requester, object, requested action, approver eligibility, required rule, current gate, due date, decision controls, comment history, and outcome consequences.Render mentions as inline tokens or highlighted text that preserve a stable recipient identity, display name, avatar or team marker, recipient type, and selected state without breaking surrounding editable text.Render a labelled lookup field with search text, scoped result list, active result, selected object chip or preview, object type, stable ID or equivalent key, secondary metadata, clear action, no-result state, loading state, and validation text.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 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 permission sharing as an access-management surface with the protected resource, current direct grants, inherited grants, groups, guests, anonymous or link access, role or permission level, effective access, pending changes, and revoke or save actions.
UX guidance Use assignment when users need to decide who is accountable for doing or owning a work item, not merely who should be notified, mentioned, approved, invited, or granted access.Use task list when users need to scan a known set of service tasks, understand what each task is, choose a task to start or resume, and see each task's current status.Use review queue when a team repeatedly processes a changing set of tickets, comments, pull requests, content items, cases, requests, or records that require human inspection and action.Use approval workflow when a submitted request cannot proceed until an authorized person, group, threshold, sequence, or external policy gate explicitly approves or rejects it.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 an object picker when the user must choose an existing entity whose identity matters beyond the displayed label, such as a record, person, group, account, file, team, project, or workspace.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 feed when users need to catch up on recent work or collaboration activity across channels, projects, repositories, tasks, apps, or people without opening every underlying object.Use permission sharing when authorized owners or admins need to grant, change, audit, or revoke durable access to a space, site, repository, folder, project, board, dataset, environment, or sensitive object.
Good UI An issue sidebar shows Assignee: Maya Chen, Assign to me, Change assignee, Clear, eligible teammate search, reviewer separate from assignee, and a note that the new assignee will be notified.A task list row for Upload evidence shows the task name, a short hint, a linked row, and a Needs attention status with the unavailable reason in the row text.A support queue shows New triage, SLA at risk, owner, customer, status, priority, age, preview text, assignment, and next actions without opening every ticket.A production deployment request shows requester, service, environment, change summary, required reviewer group, self-review restriction, wait timer, Approve and Reject with reason controls, and a timeline of route changes.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 Related account field shows two Acme Retail records with account ID, region, status, and owner, then displays a selected-object preview card before saving.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 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 repository access page lists teams, outside collaborators, deploy keys, and direct users with Read, Triage, Write, Maintain, and Admin roles, showing that only Admin can manage access.
Bad UI A comment field says @Rahul please handle this but does not create an assignment record or appear in Rahul's assigned work.A task list uses uppercase button-like status pills and users click the status instead of the row.A review queue shows a flat list of titles with no reason, age, owner, status, priority, or action controls.A request page says Waiting without naming the approver, required count, due date, or escalation path.The editor highlights every @word as a mention even when it is plain text and has no recipient identity.A text field accepts Acme Retail as free text even though the backend needs a record ID.A red badge says 42 forever because opening the drawer, reading items, and viewing related work never update the count.A page titled Activity shows Update happened cards with no actor, object, type, timestamp, or destination.A permissions page shows only individual names and Remove buttons even though group membership and parent folder inheritance still grant access.
Good UX A triager changes a support ticket from unassigned to Priya, adds a handoff note, sees that Priya has access and capacity warning, and the ticket appears in Priya's assigned-to-me queue.A user scans five task rows, sees that Financial history is incomplete, selects anywhere on that row, completes the section, and returns to find the row status changed to Completed.A reviewer claims the oldest SLA-at-risk ticket, opens a preview, assigns it to Billing, returns to the queue with the row removed, and lands on the next oldest item.A requester submits a deployment, sees it is waiting for Release managers, cannot self-approve, receives a change request with a required comment, edits the change summary, and resubmits to the same route.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 searches Acme, compares two same-named records by region and status, selects the active EMEA account, and reviews the selected account ID before saving.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.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 site owner adds the Finance Reviewers group as Visitors, sees that Members can contribute content, confirms no anonymous access is enabled, and saves with an audit note.
Bad UX A user assigns a confidential issue to a teammate who cannot open the project, and the UI reports success without warning.A user returns to a list of internal section codes and cannot tell which task relates to evidence upload.Two reviewers open the same unclaimed item, both act, and the second decision overwrites the first with no stale-row warning.The first approver clicks Approve and the system marks the whole request approved even though policy required everyone to approve.A user mentions someone in a private channel, the person is not notified, and the sender receives no warning or recovery path.A user types a person name and presses Save, but no actual user account was selected.A payment failure that blocks the current checkout is only stored in the notification center and never appears in the task.A user clears a notification in Activity but the notification center badge stays out of sync and the same event reappears as unread.An owner downgrades a user to Viewer, but the user keeps edit rights through a connected team and the UI never explains effective access.
Best fit A user must set, change, or clear who is accountable for a work item.A page needs to display a known set of tasks with status and links to start or resume them.A team or individual repeatedly reviews many independently queued items.A submitted request needs authorized approval before a deployment, purchase, access grant, publication, content change, policy exception, financial action, or workflow step can proceed.Composed content needs to target people or groups inline.Users assign, link, reference, invite, route, or attach an existing entity.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Users need to catch up on recent collaboration, app, repository, channel, project, meeting, reminder, or task activity.Owners or admins need to manage durable access to spaces, sites, repositories, projects, folders, datasets, boards, environments, or sensitive objects.
Avoid when The user only needs to mention or notify someone in conversation.Users are browsing arbitrary records rather than completing a fixed set of service tasks.The task is a single request moving through a governed approval route.The user only needs to check their own answers before submission.The user is selecting a structured owner, assignee, approver, or recipient field outside written content.Any arbitrary text is valid.The product has only occasional current-action feedback that a toast or inline status can handle.The surface is primarily content consumption, media browsing, or article-like stream reading.The task is quick one-object sharing with a link or a few recipients and no broader permission model.
Required state Unassigned item state.Linked startable task row.Queue loading and count stateDraft or submit-ready request handoff stateEmpty composer, @ trigger, loading suggestions, no results, and filtered suggestions.Empty object lookup field with label, helper text, and current search scope.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Default feed state with actor, verb, object, timestamp, source, type icon, preview, scope, and destination for each activity item.Default access list state with users, groups, guests, anonymous access, roles, and effective access.
Accessibility burden Label the assignment field with the current assignee, item name, and responsibility meaning.Use list semantics for the collection of task rows and clear heading structure for grouped task lists.Use labelled queue name, count, filters, sort, group, row status, selection, preview, and action controls.Use labelled request summary, approver, status, due date, decision, comment, and history regions.Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.Give the lookup field a persistent label and helper text that explains the expected object type.Give the entry-point control an accessible name that includes new or unread count without relying only on a red dot.Give the activity feed a heading and expose the current filter, layout, and unread or cleared state in text.Use labelled tables or grids with column headers for principal, source, role, capability, status, and actions.
Common misuse Treating a mention as an assignment.Using task list as the whole service architecture without defining saved progress, dependencies, or final readiness elsewhere.Using an ordinary table with no review reason, urgency, ownership, or decision actions.Showing a generic pending message without the approver, gate, rule, or due date.Parsing @words after submit without requiring the sender to choose a real recipient.Treating the picker as a free text field when the system requires an existing object ID.Treating the badge count, unread count, and total notification count as one number.Using activity feed as an audit log without evidence fields, export, or retention guarantees.Showing only direct users while group or inherited access remains active.

Assignment

UI or UX
UI + UX - Responsibility control for assigning a work item to eligible people, teams, roles, bots, or no owner
UI guidance
Render assignment as a responsibility field on a specific work item with current assignee, unassigned state, eligibility-filtered candidate picker, self-assign affordance, reassign and clear controls, notification outcome, and visible responsibility wording.
UX guidance
Use assignment when users need to decide who is accountable for doing or owning a work item, not merely who should be notified, mentioned, approved, invited, or granted access.
Good UI
An issue sidebar shows Assignee: Maya Chen, Assign to me, Change assignee, Clear, eligible teammate search, reviewer separate from assignee, and a note that the new assignee will be notified.
Bad UI
A comment field says @Rahul please handle this but does not create an assignment record or appear in Rahul's assigned work.
Good UX
A triager changes a support ticket from unassigned to Priya, adds a handoff note, sees that Priya has access and capacity warning, and the ticket appears in Priya's assigned-to-me queue.
Bad UX
A user assigns a confidential issue to a teammate who cannot open the project, and the UI reports success without warning.
Best fit
A user must set, change, or clear who is accountable for a work item.
Avoid when
The user only needs to mention or notify someone in conversation.
Required state
Unassigned item state.
Accessibility burden
Label the assignment field with the current assignee, item name, and responsibility meaning.
Common misuse
Treating a mention as an assignment.

Task list

UI or UX
UI + UX - Component-level list of linked task rows with names, hints, and statuses
UI guidance
Render a task list as a set of row-level tasks where each row has a short task name, optional single-sentence hint, link target when startable, and status text that indicates whether the task is completed, incomplete, in progress, not started, unavailable, optional, or ready.
UX guidance
Use task list when users need to scan a known set of service tasks, understand what each task is, choose a task to start or resume, and see each task's current status.
Good UI
A task list row for Upload evidence shows the task name, a short hint, a linked row, and a Needs attention status with the unavailable reason in the row text.
Bad UI
A task list uses uppercase button-like status pills and users click the status instead of the row.
Good UX
A user scans five task rows, sees that Financial history is incomplete, selects anywhere on that row, completes the section, and returns to find the row status changed to Completed.
Bad UX
A user returns to a list of internal section codes and cannot tell which task relates to evidence upload.
Best fit
A page needs to display a known set of tasks with status and links to start or resume them.
Avoid when
Users are browsing arbitrary records rather than completing a fixed set of service tasks.
Required state
Linked startable task row.
Accessibility burden
Use list semantics for the collection of task rows and clear heading structure for grouped task lists.
Common misuse
Using task list as the whole service architecture without defining saved progress, dependencies, or final readiness elsewhere.

Review queue

UI or UX
UI + UX - Actionable queue for triaging many items that need human review
UI guidance
Render review queue as an actionable worklist with queue scope, counts, filters, sort order, row reason, owner, priority, age or SLA, status, preview context, selection, and row actions.
UX guidance
Use review queue when a team repeatedly processes a changing set of tickets, comments, pull requests, content items, cases, requests, or records that require human inspection and action.
Good UI
A support queue shows New triage, SLA at risk, owner, customer, status, priority, age, preview text, assignment, and next actions without opening every ticket.
Bad UI
A review queue shows a flat list of titles with no reason, age, owner, status, priority, or action controls.
Good UX
A reviewer claims the oldest SLA-at-risk ticket, opens a preview, assigns it to Billing, returns to the queue with the row removed, and lands on the next oldest item.
Bad UX
Two reviewers open the same unclaimed item, both act, and the second decision overwrites the first with no stale-row warning.
Best fit
A team or individual repeatedly reviews many independently queued items.
Avoid when
The task is a single request moving through a governed approval route.
Required state
Queue loading and count state
Accessibility burden
Use labelled queue name, count, filters, sort, group, row status, selection, preview, and action controls.
Common misuse
Using an ordinary table with no review reason, urgency, ownership, or decision actions.

Approval workflow

UI or UX
UI + UX - Routed decision workflow for requests that require authorized approval
UI guidance
Render approval workflow as a routed request record with requester, object, requested action, approver eligibility, required rule, current gate, due date, decision controls, comment history, and outcome consequences.
UX guidance
Use approval workflow when a submitted request cannot proceed until an authorized person, group, threshold, sequence, or external policy gate explicitly approves or rejects it.
Good UI
A production deployment request shows requester, service, environment, change summary, required reviewer group, self-review restriction, wait timer, Approve and Reject with reason controls, and a timeline of route changes.
Bad UI
A request page says Waiting without naming the approver, required count, due date, or escalation path.
Good UX
A requester submits a deployment, sees it is waiting for Release managers, cannot self-approve, receives a change request with a required comment, edits the change summary, and resubmits to the same route.
Bad UX
The first approver clicks Approve and the system marks the whole request approved even though policy required everyone to approve.
Best fit
A submitted request needs authorized approval before a deployment, purchase, access grant, publication, content change, policy exception, financial action, or workflow step can proceed.
Avoid when
The user only needs to check their own answers before submission.
Required state
Draft or submit-ready request handoff state
Accessibility burden
Use labelled request summary, approver, status, due date, decision, comment, and history regions.
Common misuse
Showing a generic pending message without the approver, gate, rule, or due date.

Mentions

UI or UX
UI + UX - Inline recipient reference with autocomplete, stable recipient identity, notification routing, access checks, and broad-audience safeguards
UI guidance
Render mentions as inline tokens or highlighted text that preserve a stable recipient identity, display name, avatar or team marker, recipient type, and selected state without breaking surrounding editable text.
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
The editor highlights every @word as a mention even when it is plain text and has no recipient identity.
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 user mentions someone in a private channel, the person is not notified, and the sender receives no warning or recovery path.
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
Empty composer, @ trigger, loading suggestions, no results, and filtered suggestions.
Accessibility burden
Expose the suggestion list as a labelled popup tied to the editor and announce the number of available mention targets.
Common misuse
Parsing @words after submit without requiring the sender to choose a real recipient.

Object picker

UI or UX
UI + UX - Existing-entity lookup and selected-object confirmation
UI guidance
Render a labelled lookup field with search text, scoped result list, active result, selected object chip or preview, object type, stable ID or equivalent key, secondary metadata, clear action, no-result state, loading state, and validation text.
UX guidance
Use an object picker when the user must choose an existing entity whose identity matters beyond the displayed label, such as a record, person, group, account, file, team, project, or workspace.
Good UI
A Related account field shows two Acme Retail records with account ID, region, status, and owner, then displays a selected-object preview card before saving.
Bad UI
A text field accepts Acme Retail as free text even though the backend needs a record ID.
Good UX
A user searches Acme, compares two same-named records by region and status, selects the active EMEA account, and reviews the selected account ID before saving.
Bad UX
A user types a person name and presses Save, but no actual user account was selected.
Best fit
Users assign, link, reference, invite, route, or attach an existing entity.
Avoid when
Any arbitrary text is valid.
Required state
Empty object lookup field with label, helper text, and current search scope.
Accessibility burden
Give the lookup field a persistent label and helper text that explains the expected object type.
Common misuse
Treating the picker as a free text field when the system requires an existing object ID.

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
A red badge says 42 forever because opening the drawer, reading items, and viewing related work never update the count.
Good UX
Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.
Bad UX
A payment failure that blocks the current checkout is only stored in the notification center and never appears in the task.
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
Give the entry-point control an accessible name that includes new or unread count without relying only on a red dot.
Common misuse
Treating the badge count, unread count, and total notification count as one number.

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
Use activity feed when users need to catch up on recent work or collaboration activity across channels, projects, repositories, tasks, apps, or people without opening every underlying object.
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 page titled Activity shows Update happened cards with no actor, object, type, timestamp, or destination.
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
Using activity feed as an audit log without evidence fields, export, or retention guarantees.

Permission sharing

UI or UX
UI + UX - Durable permission administration for users, groups, roles, inherited access, effective access, and revocation
UI guidance
Render permission sharing as an access-management surface with the protected resource, current direct grants, inherited grants, groups, guests, anonymous or link access, role or permission level, effective access, pending changes, and revoke or save actions.
UX guidance
Use permission sharing when authorized owners or admins need to grant, change, audit, or revoke durable access to a space, site, repository, folder, project, board, dataset, environment, or sensitive object.
Good UI
A repository access page lists teams, outside collaborators, deploy keys, and direct users with Read, Triage, Write, Maintain, and Admin roles, showing that only Admin can manage access.
Bad UI
A permissions page shows only individual names and Remove buttons even though group membership and parent folder inheritance still grant access.
Good UX
A site owner adds the Finance Reviewers group as Visitors, sees that Members can contribute content, confirms no anonymous access is enabled, and saves with an audit note.
Bad UX
An owner downgrades a user to Viewer, but the user keeps edit rights through a connected team and the UI never explains effective access.
Best fit
Owners or admins need to manage durable access to spaces, sites, repositories, projects, folders, datasets, boards, environments, or sensitive objects.
Avoid when
The task is quick one-object sharing with a link or a few recipients and no broader permission model.
Required state
Default access list state with users, groups, guests, anonymous access, roles, and effective access.
Accessibility burden
Use labelled tables or grids with column headers for principal, source, role, capability, status, and actions.
Common misuse
Showing only direct users while group or inherited access remains active.
Decision rules
  • Choose assignment when the user must set, change, clear, or inspect the responsible person, team, bot, or role for one work item, issue, pull request, document comment, task, or ticket.
  • Choose task list when the surface is a known set of rows with task names, hints, and completion statuses; assignment may be a field inside a row but does not define the task-list component.
  • Choose review queue when reviewers need to process many queued items with claim, assignment, SLA, preview, stale-row checks, and bulk actions; assignment is only one queue action.
  • Choose approval workflow when the assigned person is making an authorized approve/reject decision on a submitted request rather than becoming the accountable owner for doing the work.
  • Use mentions when the user is drawing someone's attention in a conversation; a mention becomes assignment only when it creates or changes a clear responsibility record.
  • Use object picker for the reusable person or team selection control, but assignment additionally needs eligibility, current owner, notification, due date, workload, reassignment, unassignment, and audit behavior.
  • Use notification center or activity feed to announce assignment changes, but keep the source of truth on the work item or assignment record.
  • Use permission sharing when the change grants access or role capability; assignment should not imply the assignee gained the required permission unless the product explicitly grants it and warns about that side effect.
  • Assignment controls must show current assignee, eligible candidates, responsibility semantics, multi-assignee limits, self-assign, automatic assignment, unassigned state, reassignment reason, and notification outcome.
  • Reassignment must preserve work context, expose handoff notes or reason when needed, prevent assigning ineligible or overloaded users when policy requires it, and synchronize assigned-to-me views and activity notifications.
Inspect live examples
Failure modes
  • A user mentions a teammate and assumes work was assigned, but no assignment record, notification, or assigned-to-me entry is created.
  • An issue is assigned to a person without the permission or role needed to act on it.
  • A bulk assignment changes hidden selected items without previewing count, current owners, or exceptions.
  • Automatic assignment silently chooses a default owner that no longer matches the component, team, or workload.
  • Reassignment erases the previous owner, reason, or handoff context, making accountability unclear.
  • A review queue treats claim, owner, reviewer, approver, and assignee as one field and routes work to the wrong person.