UI + UX Task And Workflow Patterns established

Review queue

Provide a focused review queue that filters and orders items by review criteria, exposes enough row context to triage safely, supports claim, assign, skip, escalate, inspect, decide, and bulk actions, refreshes counts and stale states, and hands reviewers into the right item detail or next item.

Decision first

Choose this pattern when the problem matches

Use when

  • A team or individual repeatedly reviews many independently queued items.
  • Queue membership changes based on status, request, moderation hold, SLA, ownership, priority, workflow state, or assignment.
  • Reviewers need scan, prioritize, claim, assign, inspect, decide, skip, escalate, and bulk action behavior.

Avoid when

  • The task is a single request moving through a governed approval route.
  • The user only needs a saved search or filter with no review actions.
  • The page is only a historical event log.
  • The system cannot represent current item state, ownership, or stale-row conflicts.
  • The action is so consequential that every item must be opened in full before decision.

Problem it prevents

Review work becomes slow and unsafe when products show items needing attention as an ordinary list, hide why each item is queued, lose ownership, allow stale decisions, make urgency invisible, or provide bulk actions without clear scope and exceptions.

Pattern anatomy

What a strong implementation has to make clear

User need

Many items can independently enter and leave the queue based on status, assignment, SLA, requested review, moderation hold, reported content, code ownership, customer tier, priority, or workflow state.

Pattern promise

Provide a focused review queue that filters and orders items by review criteria, exposes enough row context to triage safely, supports claim, assign, skip, escalate, inspect, decide, and bulk actions, refreshes counts and stale states, and hands reviewers into the right item detail or next item.

Required state

Queue loading and count state

Recovery path

A reviewer cannot tell why an item is in the queue.

Access contract

Use labelled queue name, count, filters, sort, group, row status, selection, preview, and action controls.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • 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 moderation queue has Held, Likely spam, Reported, and Escalated tabs, row evidence, policy reason, reviewer claim state, approve/remove/escalate actions, and bulk-action preview.
  • 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 moderator filters held comments by likely spam, bulk removes five visible comments after previewing the count, skips one uncertain row, and sees the queue count update immediately.
Weak implementation

Vague, hidden, hard to recover from

  • A review queue shows a flat list of titles with no reason, age, owner, status, priority, or action controls.
  • A bulk Approve button processes every hidden filtered row without showing count, stale rows, or mixed eligibility.
  • Two reviewers open the same unclaimed item, both act, and the second decision overwrites the first with no stale-row warning.
  • A reviewer marks a pull request reviewed from an old queue row after the author pushed new commits and re-requested 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.
  • Separate queue-level triage from item-level review: the queue helps reviewers find, claim, prioritize, bulk-process, skip, escalate, or open items, while detailed records carry full evidence and decision history.
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.
  • Keep the reviewer oriented across the whole workload by showing what changed, what is urgent, what is already claimed, which rows are stale, and what happens after each decision.
Implementation contract

What the implementation must handle

States

  • Queue loading and count state
  • Filtered or grouped queue state
  • Empty queue state
  • Row preview state

Interaction

  • Queue membership is derived from canonical item state and refreshes counts when items enter, leave, or change status.
  • Each row exposes why it is in the queue and enough context for safe triage before opening the full record.
  • Opening a row preserves queue position, filter, sort, selection, and return context.
  • Claim, assign, skip, snooze, escalate, approve, reject, remove, request changes, and mark reviewed actions update the canonical item and the queue row.

Accessibility

  • Use labelled queue name, count, filters, sort, group, row status, selection, preview, and action controls.
  • Announce count changes, row removals, stale-row warnings, bulk exceptions, and empty states through status text.
  • Do not rely on color, row position, badges, or timers alone to communicate priority, SLA risk, ownership, or review status.
  • Make row preview, claim, assign, skip, escalate, approve, reject, request changes, and bulk actions keyboard reachable.

Review

  • Why is each row in this queue, and can reviewers see that reason before opening it?
  • What tells reviewers which item should be handled next?
  • Can reviewers claim, assign, skip, escalate, or bulk-process without losing scope clarity?
  • How does the queue handle rows changed or completed by someone else?
Interactive lab

Inspect the states before you copy the pattern

Triage many items that need review

Inspect a shared review queue, switch queue scope, preview row reasons, claim and assign work, sort by SLA risk, handle stale and already-reviewed rows, bulk-review visible items with exceptions, skip, escalate, recover from empty filters, and compare title-only, hidden-bulk, double-work, stale-action, no-next, and unsafe-preview failures.

Review queue
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

Queue loading and count state

Keyboard / Access

Tab order follows queue tabs or saved views, filters, sort, bulk selection, rows, row preview, row actions, and pagination or next-item controls.

Avoid Generating

Using an ordinary table with no review reason, urgency, ownership, or decision actions.

Evidence trail

Source-backed claims behind this guidance

Jira Service Management queues

Atlassian Support - checked

Jira Service Management supports focused central queues for filtered work items, triage, assignment, priority groups, columns, and SLA clocks.

Zendesk ticket views for workflow

Zendesk Help - checked

Zendesk supports personal and shared ticket views for triage, unsolved work, pending work, service-level handling, escalation tiers, and workflow order.

Zendesk Views API

Zendesk Developer Docs - checked

Zendesk supports view conditions, access restrictions, active state, execution columns, grouping, sorting, preview counts, and listing tickets from a view.

GitHub requesting a pull request review

GitHub Docs - checked

GitHub supports requesting review from people or teams, reviewer notifications, suggested reviewers, team assignment, and re-requesting review after changes.

GitHub about pull request reviews

GitHub Docs - checked

GitHub supports pull requests awaiting review, comment, approve, request changes, code owner review, and review timeline behavior.

YouTube Studio held comments review

Google Help - checked

YouTube Studio supports Published and Held comment tabs, likely-spam holds, filters, topic search, and moderation actions.

Full agent/debug reference

Problem Context

  • Many items can independently enter and leave the queue based on status, assignment, SLA, requested review, moderation hold, reported content, code ownership, customer tier, priority, or workflow state.
  • Reviewers often need to choose the next item, scan workload, process visible rows, avoid duplicate work, and recover when the underlying item changes.
  • The queue may be personal, shared, team-scoped, role-restricted, saved, filtered, sorted, grouped, or ordered by SLA or priority.
  • Actions may be low-risk triage such as assign or skip, or consequential review decisions such as approve, request changes, remove, reject, merge-block, publish-block, or escalate.

Selection Rules

  • Choose review queue when the interface is primarily for processing multiple items that need review or triage over time.
  • Use approval workflow when the focus is one submitted request and its governed route of required approvers.
  • Use saved filter when the product only saves list criteria and does not provide review ownership, queue counts, row reasons, decision actions, or workload handling.
  • Use activity log when users need to inspect past events rather than decide which queued item to handle next.
  • Use notification center when reviewers need alerts, but route notifications into the queue or item rather than replacing queue state.
  • Use table or list view when users are browsing records without review-specific state, assignment, SLA, or actions.
  • Show queue membership reason, owner, age, priority, SLA or due state, review status, and source so reviewers can triage without opening every item.
  • Support claim or assignment for shared queues when duplicate work is costly.
  • Treat stale, already handled, reassigned, permission-limited, blocked, duplicate, and empty states as queue states with clear recovery.
  • Require bulk-action previews for selected count, hidden filtered rows, stale rows, mixed eligibility, and irreversible outcomes.

Required States

  • Queue loading and count state
  • Filtered or grouped queue state
  • Empty queue state
  • Row preview state
  • Claimed or assigned row state
  • Unassigned row state
  • SLA at risk or overdue row state
  • Stale row changed since load state
  • Selected rows and bulk-action preview state
  • Action succeeded and row removed or moved state
  • Skipped or snoozed row state
  • Escalated or blocked row state
  • Permission-limited row state
  • Already reviewed by someone else state

Interaction Contract

  • Queue membership is derived from canonical item state and refreshes counts when items enter, leave, or change status.
  • Each row exposes why it is in the queue and enough context for safe triage before opening the full record.
  • Opening a row preserves queue position, filter, sort, selection, and return context.
  • Claim, assign, skip, snooze, escalate, approve, reject, remove, request changes, and mark reviewed actions update the canonical item and the queue row.
  • Shared queues prevent or surface duplicate work through claim state, active reviewer state, stale-row warnings, or optimistic conflict checks.
  • Bulk actions apply only to the previewed scope and report per-row exceptions for stale, ineligible, hidden, permission-limited, or already processed items.
  • After a row action, focus moves to the updated row, next row, or queue status rather than resetting to the top without explanation.
  • Notifications, reminders, and direct links open the matching queue, filtered queue, or item detail with current state.

Implementation Checklist

  • Define queue sources, membership criteria, personal and shared scopes, row columns, sort order, grouping, count semantics, permissions, and stale-row detection.
  • Model queue row state separately from item detail so the list can show reason, status, owner, age, priority, SLA, source, preview, and action eligibility.
  • Implement filters, saved queue views, priority ordering, search within queue, selection, bulk preview, row preview, claim, assign, skip, snooze, escalate, and next-item navigation.
  • Add conflict checks before row and bulk decisions to detect rows handled by someone else, changed since load, reassigned, or no longer eligible.
  • Update counts, empty states, row positions, active filters, and focus after each decision.
  • Show per-row failure and retry for failed actions instead of silently removing rows.
  • Limit sensitive preview details by reviewer permission and provide safe disclosure when content cannot be shown in a shared queue.
  • Test stale rows, concurrent reviewers, hidden filtered selection, mobile row wrapping, long titles, high counts, empty queues, permission-limited rows, keyboard action order, screen reader status updates, and bulk exceptions.

Common Generated-UI Mistakes

  • Using an ordinary table with no review reason, urgency, ownership, or decision actions.
  • Treating review queue as approval workflow and hiding many-item workload controls.
  • Making queue counts stale after a row action.
  • Allowing hidden rows to be bulk-processed without preview.
  • Letting two reviewers unknowingly work the same row.
  • Hiding SLA, age, priority, or source context needed for triage.
  • Dropping reviewers back at the top after every item.
  • Sending notification links to a generic dashboard instead of the queue or item.

Critique Questions

  • Why is each row in this queue, and can reviewers see that reason before opening it?
  • What tells reviewers which item should be handled next?
  • Can reviewers claim, assign, skip, escalate, or bulk-process without losing scope clarity?
  • How does the queue handle rows changed or completed by someone else?
  • Do counts, filters, empty states, and focus update immediately after actions?
  • Are notifications and saved views aligned with the canonical queue state?
Accessibility
  • Use labelled queue name, count, filters, sort, group, row status, selection, preview, and action controls.
  • Announce count changes, row removals, stale-row warnings, bulk exceptions, and empty states through status text.
  • Do not rely on color, row position, badges, or timers alone to communicate priority, SLA risk, ownership, or review status.
  • Make row preview, claim, assign, skip, escalate, approve, reject, request changes, and bulk actions keyboard reachable.
  • Associate bulk-action warnings and exception counts with the confirmation controls.
  • Preserve focus after row actions and avoid resetting keyboard users to the start of the queue.
  • Expose row action names with item-specific labels, such as Approve comment from Maya or Claim ticket TCK-118.
Keyboard Behavior
  • Tab order follows queue tabs or saved views, filters, sort, bulk selection, rows, row preview, row actions, and pagination or next-item controls.
  • Arrow keys may move within a data-grid queue only when the grid implements expected grid semantics.
  • Opening and returning from an item detail restores queue filter, scroll position, row focus, and selection state.
  • After approving, rejecting, assigning, or skipping a row, focus moves to the next actionable row or the queue status message.
  • Bulk action dialogs return focus to the selection summary or first exception row after completion.
  • Stale-row recovery is reachable without pointer hover.
Variants
  • Personal review queue
  • Shared team queue
  • Moderation queue
  • Support triage queue
  • Pull request review queue
  • Content review queue
  • SLA priority queue
  • Escalation queue
  • Unassigned work queue
  • Held for review queue
  • Bulk review queue

Verification

Last verified: