EnterprisePatternsBulk actions

Bulk actions

Selection-aware actions designed for high-volume operations with clear outcomes and reversible workflows.

WorkflowGovernanceOperations

Overview

Bulk actions should reduce repeated work while making mass changes transparent.

A safe bulk layer communicates what will change before execution and supports recovery paths.

Act on selected records

Live preview

Select eligible rows, review the exact scope, use a visible or overflow action, and clear the selection.

OPERATIONS QUEUE

Access requests

One locked record cannot be selected
Access requests available for bulk actions
Work itemOwnerStatus
Vendor access reviewWK-2051Asha MehtaReady
Quarterly policy updateWK-2050Noah WilliamsReady
Invoice exceptionWK-2049Maya ChenBlocked
Workspace migrationWK-2048Liam GarciaReady
Retention requestWK-2047Aarav ShahIn review

Select one or more eligible rows to reveal bulk actions.

Anatomy

Use each piece in this order to keep interpretation and automation consistent.

2 selectedExportAssign•••×
12345
  1. 1
    Selection model

    Maintains which records are included in the current scope.

  2. 2
    Scope summary

    States the selected count and collection boundary in plain language.

  3. 3
    Available actions

    Shows safe, frequent operations allowed across the full selection.

  4. 4
    Overflow and review

    Contains lower-frequency actions and routes high-risk changes to confirmation.

  5. 5
    Clear and result path

    Leaves bulk mode predictably and reports complete or partial outcomes.

The ordering here is not visual-only; it reflects interaction priority and expected user cognition. Keep this order unless policy demands a specific domain exception.

When to use

Use this pattern when the user needs guided consistency, state, and reuse at scale.

Recommended

  • Repetitive updates

    When many records need the same operational adjustment.

  • Administrative moderation

    For review queues and support interventions at scale.

  • Compliance corrections

    For controlled batch updates with audit obligations.

When not to use

Avoid forcing this pattern where simpler, direct interactions are sufficient.

Avoid

  • One-off edits

    Use direct item actions for single-row operations.

  • Irreversible destructive actions

    Avoid inline mass deletion without explicit review.

  • Unclear scope

    Do not expose bulk controls before selection boundaries are clear.

Variants

A small number of variants helps teams choose correctly without adding complexity.

Toolbar batch

Floating toolbar with contextual action set.

Modal batch

Review all pending items before execution.

Wizard batch

Guided multi-step bulk update in regulated contexts.

States

States communicate readiness, risk, and expected user behavior.

StateTriggerVisual responseInteraction
IdleNo rows selectedBulk control hidden or disabledPrompt to select rows first.
ReadySelection existsCount label and action menu appearsBulk action candidates become available by permission.
RunningUser confirms executionIn-progress progress and disabled controlsPrevent duplicate submissions and partial edits.
Mixed resultPartial successSuccess and error countsAllow retries for failed records only.

Behavior

Behavior should remain predictable across devices, permissions, and async edges.

Permission gates

Filter actions by action policy and row-level permissions.

Idempotent handlers

Repeated submit should not create duplicate updates.

Undo surface

Offer fallback action whenever possible.

Accessibility

Keep interaction clarity high and ensure assistive technologies get the same meaning.

KeyAction
Ctrl/CmdASelect all currently matched rows when support policy allows.
ShiftEnable range selection inside list views for fast setup.
EscCancel bulk mode and clear selection.
  • Expose selection count in plain language, not color only.
  • Disable actions by default when selection includes non-actionable records.
  • Announce bulk operation starts and completion in status messaging.

Content guidelines

Consistency is achieved by language standards, not by design only.

Action verbs

Use verbs that describe end outcome.

ExampleArchive selected tickets

Scope transparency

Call out how many records will change.

ExampleApplying to 12 projects

Risk framing

Label irreversible actions with warning text.

ExampleThis will close all selected cases

Examples

Reference implementation style, payloads, and practical behavior.

Connect selection to actions

  • Keep selected row identifiers in controlled application state.
  • Supply only actions permitted across the entire current selection.
  • Clear selection after a successful operation and show a durable result summary.
BulkWorkItems.tsx
tsx
const [selectedIds, setSelectedIds] = useState<readonly Key[]>([])
 
<DataTable
data={workItems}
columns={columns}
getRowId={(row) => row.id}
caption="Work items"
selectable
selectedRowIds={selectedIds}
onSelectionChange={setSelectedIds}
/>
 
<BulkActionBar
selectedCount={selectedIds.length}
totalCount={workItems.length}
onClearSelection={() => setSelectedIds([])}
actions={<Button onClick={() => assign(selectedIds)}>Assign reviewer</Button>}
/>
Open linked component reference for implementation patterns

Props / API

Use these API entries as a baseline contract and validate them against your domain layer.

These names are implementation-oriented and should map to your local contracts.

Props

PropTypeDefaultDescription
selectedIdsreadonly string[][]Current selection used for operation payload.
actionsBulkAction[][]Configured actions filtered by policy and context.
onExecute(actionId: string, ids: string[]) => Promise<BulkResult>requiredRuns each operation and returns status.
showUndobooleantrueEnable rollback-oriented feedback when possible.