Provide a clear assignment surface that identifies the accountable owner or assignees, constrains candidate choices by eligibility and policy, separates assignment from related roles, previews notification and access effects, supports self-assign, reassign, unassign, automatic default assignment, bulk preview, and records changes in activity.
A user must set, change, or clear who is accountable for a work item.
The assigned person or group receives responsibility, visibility in assigned-work lists, and a route to act on the item.
The product can enforce assignee eligibility and synchronize the assignment record across work views.
Avoid when
The user only needs to mention or notify someone in conversation.
The person is being asked to review, approve, or make a governed decision rather than own the work.
The change is primarily a permission grant or invitation.
The item has no durable responsibility record or assigned-work view.
The product cannot tell whether the chosen assignee can access or act on the item.
Problem it prevents
Work loses accountability when products blur assignee, owner, reviewer, approver, watcher, mention, collaborator, and permission roles, or when assignment changes hide eligibility, notification, workload, unassigned, bulk, and reassignment consequences.
Pattern anatomy
What a strong implementation has to make clear
User need
Assignment may appear on issues, pull requests, tasks, tickets, comments, documents, forms, cases, approvals, incidents, projects, or queue rows.
Pattern promise
Provide a clear assignment surface that identifies the accountable owner or assignees, constrains candidate choices by eligibility and policy, separates assignment from related roles, previews notification and access effects, supports self-assign, reassign, unassign, automatic default assignment, bulk preview, and records changes in activity.
Required state
Unassigned item state.
Recovery path
A teammate is notified but not assigned, so the item never appears in their assigned-work list.
Access contract
Label the assignment field with the current assignee, item name, and responsibility meaning.
Quality bar
The difference between expert and weak execution
Strong implementation
Specific, visible, recoverable
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 document comment action item shows the assigned person, due date, done state, reassign control, and unresolved comment context.
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 developer assigns a pull request to themselves for follow-up while keeping reviewers separate, then reassigns it to the release owner with the previous owner visible in activity.
Weak implementation
Vague, hidden, hard to recover from
A comment field says @Rahul please handle this but does not create an assignment record or appear in Rahul's assigned work.
A ticket bulk action says Assign without showing selected count, current owners, hidden filtered tickets, or users who cannot access the queue.
A user assigns a confidential issue to a teammate who cannot open the project, and the UI reports success without warning.
An automatic assignment silently routes every new component issue to a former maintainer and leaves the team with stale ownership.
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.
Expose assignment limits and context such as one owner versus multiple assignees, team or bot assignment, automatic default owner, due date or next-action expectation, current workload signal, permission eligibility, and handoff note when reassignment changes accountability.
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.
Make assignment changes traceable and reversible enough for teamwork: explain who owns the item now, who was notified, whether the assignee can act, what changed in assigned-to-me views, and what happens to existing watchers, reviewers, collaborators, or queues.
Implementation contract
What the implementation must handle
States
Unassigned item state.
Assigned to one person state.
Assigned to multiple people state where product policy allows it.
Assigned to team, role, bot, or automatic default owner state.
Interaction
Opening assignment shows the current assignee, candidate eligibility, and whether the item supports one assignee, multiple assignees, teams, bots, or automatic assignment.
Selecting an assignee updates the work item's assignment record and any assigned-to-me, queue, activity, and notification surfaces governed by the product.
Self-assign, reassign, clear, and bulk assign controls apply to the named item or previewed item set only.
The product refuses or warns before assignment to people who cannot access, cannot act, are outside policy, or are not valid candidates.
Accessibility
Label the assignment field with the current assignee, item name, and responsibility meaning.
Expose candidate names, teams, roles, availability, eligibility, and duplicate-name disambiguation in text.
Do not rely on avatars, initials, color, or presence dots alone to identify assignees.
Make open picker, search, assign, assign to me, remove, clear, reassign, bulk preview, and notification controls keyboard reachable.
Review
What responsibility does the assignee take on, and how is that different from a mention, reviewer, approver, watcher, or collaborator?
Who is eligible to be assigned, and what happens when a candidate lacks access or is outside policy?
Does the product support one owner, many assignees, teams, bots, or automatic defaults?
What notification, assigned-to-me, queue, workload, and activity changes happen after assignment?
Interactive lab
Inspect the states before you copy the pattern
Assign work without confusing responsibility with attention
Inspect current owner, unassigned, self-assign, eligible picker, multiple assignees, team, bot, automatic owner, reassign with handoff, bulk preview, permission warnings, assigned-to-me sync, and compare mention-only, no-access, mixed-roles, stale-auto, hidden-bulk, and lost-handoff failures.
Assignment
Interactive demo is ready
Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.
State To Inspect
Unassigned item state.
Keyboard / Access
Tab moves through current assignment, Assign to me, Change assignee, candidate search, candidate options, selected assignees, notification controls, handoff note, and save or cancel controls.
Google Docs documents assigning action items from comments, reassignment, and done state.
Full agent/debug reference
Problem Context
Assignment may appear on issues, pull requests, tasks, tickets, comments, documents, forms, cases, approvals, incidents, projects, or queue rows.
Assignable targets may include one person, several people, a team, a role, a bot, an automatic default owner, or an explicit unassigned state depending on product policy.
The assignee may be responsible for doing the work, taking the next action, shepherding completion, merging, responding, or coordinating a handoff.
The assignment change may notify the assignee, update assigned-to-me views, change queue membership, affect workload dashboards, or fail if permissions or membership are missing.
Assignment often sits near mentions, reviewers, approvers, watchers, collaborators, owners, and permission grants, so the difference must be visible.
Selection Rules
Choose assignment when the primary action is setting or changing who is accountable for a specific work item.
Use mentions when the user only needs attention in a comment or discussion and no responsibility record should be created.
Use review queue when assignment is one action inside a larger workload triage surface with queue counts, reasons, stale-row checks, and next-item behavior.
Use approval workflow when the person is asked to make an approve/reject decision under a route rule rather than own the work item.
Use task list when users are scanning fixed service tasks and statuses; an assignee may appear in each row but does not define the list.
Use object picker for the reusable search-and-select control, but add assignment-specific eligibility, responsibility, notification, and reassignment rules around it.
Use permission sharing when the change grants access; assignment should either require existing access or explicitly handle access-grant side effects.
Use activity feed and notification center to communicate assignment changes, but keep the source of truth on the assigned item.
Show current assignee and unassigned state before asking users to choose a new person.
Distinguish single-owner accountability from multi-assignee collaboration and state the product's limit or policy.
Preview bulk assignment scope, current owners, hidden selected items, ineligible items, and notification count before applying.
Prefer explicit automatic assignment labels when defaults come from component, team, project, or space settings rather than a user's direct choice.
Required States
Unassigned item state.
Assigned to one person state.
Assigned to multiple people state where product policy allows it.
Assigned to team, role, bot, or automatic default owner state.
Self-assign state.
Reassign state with previous assignee visible.
Clear or unassign state.
Eligible candidate search and no matching eligible assignee state.
Ineligible candidate due to permission, membership, workload, availability, or policy.
Bulk assignment preview with selected count and exceptions.
Notification sent, notification suppressed, and notification failed states.
Assigned-to-me view synchronization state.
Handoff note or reason-required state.
Assignment conflict or stale item changed since load state.
Mobile compact assignment row state.
Interaction Contract
Opening assignment shows the current assignee, candidate eligibility, and whether the item supports one assignee, multiple assignees, teams, bots, or automatic assignment.
Selecting an assignee updates the work item's assignment record and any assigned-to-me, queue, activity, and notification surfaces governed by the product.
Self-assign, reassign, clear, and bulk assign controls apply to the named item or previewed item set only.
The product refuses or warns before assignment to people who cannot access, cannot act, are outside policy, or are not valid candidates.
Reassignment preserves previous owner, time, actor, and optional handoff note in activity or history.
Assignment does not silently grant permissions, invite users, approve requests, request review, or mention people unless the UI says so.
A stale assignment save checks whether the item owner changed since the picker opened and offers refresh or override recovery.
Implementation Checklist
Define assignment semantics for each object type: single responsible owner, multiple assignees, team assignment, role assignment, bot assignment, automatic owner, or unassigned allowed.
Model assignment separately from creator, reporter, reviewer, approver, watcher, subscriber, mention, collaborator, and permission roles.
Build an eligibility query for candidates based on membership, permissions, role, team, availability, workload, project scope, blocked users, external guests, and automation accounts.
Add controls for self-assign, search/select, reassign, clear, automatic default, handoff note, notification toggle when allowed, and bulk assignment preview.
Synchronize assignment changes with assigned-to-me lists, review queues, activity feeds, notifications, object history, workload views, and API responses.
Handle no eligible candidates, stale assignment conflicts, partial bulk failure, permission loss, deleted users, suspended users, team removal, automatic default drift, and notification failure.
Test keyboard search and selection, screen-reader names, duplicate display names, long team names, multiple assignee wrapping, mobile layout, high zoom, bulk preview, and assignment updates from another user.
Common Generated-UI Mistakes
Treating a mention as an assignment.
Using assignment as an access grant without explaining permission changes.
Hiding whether the product supports one assignee or many.
Mixing assignee, reviewer, approver, owner, watcher, and collaborator in one unlabeled people list.
Allowing assignment to people who cannot open or act on the item.
Silently auto-assigning work without naming the default rule.
Bulk assigning hidden rows without count, current-owner, or exception preview.
Removing prior owner and handoff context during reassignment.
Critique Questions
What responsibility does the assignee take on, and how is that different from a mention, reviewer, approver, watcher, or collaborator?
Who is eligible to be assigned, and what happens when a candidate lacks access or is outside policy?
Does the product support one owner, many assignees, teams, bots, or automatic defaults?
What notification, assigned-to-me, queue, workload, and activity changes happen after assignment?
Can users see previous owner and handoff context after reassignment?
How are bulk assignment, stale owner changes, deleted users, no eligible candidates, and notification failures handled?
Accessibility
Label the assignment field with the current assignee, item name, and responsibility meaning.
Expose candidate names, teams, roles, availability, eligibility, and duplicate-name disambiguation in text.
Do not rely on avatars, initials, color, or presence dots alone to identify assignees.
Make open picker, search, assign, assign to me, remove, clear, reassign, bulk preview, and notification controls keyboard reachable.
Announce assignment saved, reassigned, cleared, failed, partial bulk success, and notification failure through status text.
Associate ineligible-candidate explanations and handoff-note requirements with the relevant controls.
Keep mobile and high-zoom layouts from detaching assignee name, role, and action buttons.
Keyboard Behavior
Tab moves through current assignment, Assign to me, Change assignee, candidate search, candidate options, selected assignees, notification controls, handoff note, and save or cancel controls.
Arrow keys may move within the candidate list when the picker implements combobox or listbox semantics.
Enter selects the focused candidate or commits the assignment action; Escape closes the picker and returns focus to the assignment control.
Removing an assignee moves focus to the next selected assignee or the candidate search.
Bulk assignment confirmation returns focus to the row, selection summary, or first exception after completion.
A stale assignment conflict keeps focus inside the recovery message until the user refreshes, cancels, or confirms override.