---
title: Bulk actions
description: Select many rows and act on all of them in one go, with a clear confirmation first.
domain: listview
status: shipped
visibility: public
last_verified: 2026-07-12
order: 30
---
Some jobs touch dozens of rows: archiving churned customers, nudging every overdue invoice, pausing subscriptions for a seasonal account. Bulk actions let you select rows on a list and apply one action to all of them, with a confirmation that states exactly how many rows it will touch.

## Selecting rows

Tick the checkbox on each row, or stay on the keyboard: `j` and `k` move down and up, `x` selects the row you are on. As soon as something is selected, an action bar appears showing the count and the actions available.

The checkbox in the table header selects every row on the current page. If more rows match your filter beyond this page, you can then extend the selection to **all matching rows** across every page, up to 1,000 at a time.

## What each list offers

| List | Actions | Where they appear |
|---|---|---|
| Customers | Archive, Unarchive | Unarchive on the Archived tab, Archive elsewhere |
| Catalog | Archive, Unarchive | Unarchive on the Archived view, Archive elsewhere |
| Invoices | Send payment reminder | Every tab except Draft and Paid |
| Subscriptions | Pause, Resume | Pause on the Active tab, Resume on the Paused tab |

Two details are deliberate:

- **Reminders skip what should be skipped.** On a mixed selection, an invoice that is not awaiting payment (already paid, still a draft, void, or with nothing owed) is skipped and counted, not treated as an error. An invoice whose payment failed is still awaiting payment, so it does get a reminder.
- **Pause and Resume only appear where they apply.** The All, Trialing, and Cancelled tabs offer no bulk action, so one click can never pause a mixed bag of states.

## Confirmation and results

Before anything runs, a dialog spells out the scope: "the 12 selected on this page" or "all 480 matching the current filter, across every page". Nothing happens until you confirm.

Afterwards, a message sums up the run: how many rows succeeded, how many were skipped, and how many could not be changed. If the selection was capped, the message says only the first rows were processed, so you know to narrow the filter and run it again.

## Edge cases

- **Every row is processed on its own.** Each one goes through the same rules as acting on it alone, with its own validation and its own entry in the audit trail. A row that cannot make the change is skipped or counted as failed; the rest still go through.
- **Select all matching caps at 1,000 rows.** A hand-picked selection caps at 200. The result message tells you when a cap was hit.
- **Permissions apply.** A list only shows bulk actions your [role](/guide/team/roles-and-permissions) is allowed to perform. If you cannot write those records, there is no bulk menu.
