---
title: "Frontend bulk actions in GravityView"
date: 2026-06-18
author: "Mono Kit"
link: "https://www.gravitykit.com/docs/gravityview/getting-started-gravityview/frontend-bulk-actions/"
---

GravityView turns your Gravity Forms entries into searchable, sortable front-end displays called Views. As of [GravityView 3.0](https://www.gravitykit.com/gravityview-3-0/), you can also act on those entries in bulk without leaving the front end. The new **Bulk Actions** widget adds a selection checkbox to each row of a Table View, so logged-in users can select several entries at once and approve, edit, delete, export, and more, all from the page itself instead of the WordPress dashboard.

This article explains how to add the **Bulk Actions** widget, which actions are available, how to configure each one, and how the feature works for the people using your View.

## Before you start

Make sure you have the following in place:

- **GravityView 3.0 or later.** Frontend bulk actions are a 3.0 feature, and the widget ships in GravityView core (no extension required).
- **A Table layout View.** Bulk actions work only with the [Table layout](https://www.gravitykit.com/docs/gravityview/getting-started-gravityview/what-are-the-differences-between-the-view-types/). The **Bulk Actions** widget appears in the widget picker for Table Views only, so you won't see it on List, Maps, or other layouts.
- **Logged-in users.** The toolbar is never shown to logged-out visitors. Each action is also gated by the user's capability (permission), so users only see the actions they're allowed to run. See the **Who can use bulk actions** section below.

## Add the Bulk Actions widget

Bulk actions are off until you add the widget to a View. The **Bulk Actions** widget is one of GravityView's [View widgets](https://www.gravitykit.com/docs/gravityview/getting-started-gravityview/what-are-view-widgets-useful-for/), the controls that sit above and below your entries. To turn it on:

- Open the Table View you want to edit in the WordPress editor.
- In a widget area above or below the entries table, click **+ Add Widget** and choose **Bulk Actions**. The widget can be added only once per View.
- Open the widget's settings and, under **Actions**, choose which actions to offer. No actions are selected by default, so this step is required for anything to appear on the front end.
- (Optional) Click **Configure** next to an action to set its options (see the next section).
- Click **Update** to save the View.

When the widget is present, GravityView adds a **Selection Checkbox** row to the **Visible Table Columns** list. This is a visual placeholder that shows where the checkbox column will appear; it can't be dragged or removed like a normal field, and clicking it reopens the **Bulk Actions** widget settings.

![The Bulk Actions widget settings in the GravityView View editor, showing the Actions field with all bulk actions selected and a Configure button beside each action](https://www.gravitykit.com/wp-content/uploads/2026/06/bulk-actions-widget-editor-666x1024.png)

## Available bulk actions

GravityView 3.0 ships with eight built-in actions. You decide which ones appear by selecting them in the widget's **Actions** setting. On the front end, the **Bulk Actions** dropdown lists them alphabetically and only shows actions the current user has permission to run.

| Action | What it does | Who can use it | Notes |

|---|---|---|---|
| **Approve** | Sets the selected entries to Approved. | Users who can moderate entries (`gravityview_moderate_entries`). | Works even if the approval field isn't shown in the View. |
| **Disapprove** | Sets the selected entries to Disapproved. | Same as Approve. |  |
| **Reset Approval** | Clears the approval status back to unapproved. | Same as Approve. |  |
| **Delete Entries** | Deletes or trashes the selected entries, following the View's [delete mode](https://www.gravitykit.com/docs/gravityview/edit-entry/configuring-delete-entry/). | Users with a delete capability (Gravity Forms or GravityView delete permissions), or the View's “users can delete” option plus `gravityview_delete_entries`. | Shows a confirmation prompt. Permission is re-checked for each entry as it runs. |
| **Edit Entries** | Updates field values across the selected entries at once. | Users who can edit entries. | Appears only when the View has editable fields. Choose which fields are editable in **Configure**. |
| **Resend Notifications** | Resends selected form notifications for the chosen entries. | Users who can edit entries (`gravityview_edit_entries`). | You must pick which notifications are allowed in **Configure**. |
| **Download Attachments** | Bundles uploaded files from the selected entries into a single ZIP download. | Users who can edit entries (`gravityview_edit_entries`). | Choose which file fields are downloadable in **Configure**. |
| **Export Entries** | Exports the selected entries to a CSV or TSV file. | Respects the View's **Allow Export** setting. | Can produce a single file or one file per entry inside a ZIP. Returns a secure, time-limited download link. |

## Configuring an action's options

Some actions have extra options. When you select one of these in the **Actions** list, it appears with a **Configure** button that opens a settings panel inside the widget.

- **Edit Entries** – Choose which fields users can edit: **Inherit from Edit Entry layout**, **Pick specific fields**, or **All supported fields and entry properties**. The inherit option follows the same fields you set up when [configuring the Edit Entry screen](https://www.gravitykit.com/docs/gravityview/edit-entry/configuring-the-edit-entry-screen/).
- **Resend Notifications** – Select which notifications can be sent from the front end. You can also allow users to send to a single override email address instead of the notification's normal recipients.
- **Download Attachments** – Pick which **File Upload** and **Post Image** fields can be downloaded, and optionally set filename exclusions and size or file-count limits.
- **Export Entries** – Set the **File type** (CSV or TSV), the **Output** (a single file, or separate files in a ZIP), and whether file headers use field labels or field IDs.

![The Bulk Actions widget settings dialog in the GravityView View editor with the Export Entries fly-out open, showing file type, output, label, and background-processing options](https://www.gravitykit.com/wp-content/uploads/2026/06/bulk-actions-configure-export-646x1024.png)

## Bulk Actions widget settings

Beyond the action list, the widget controls how selection looks and behaves:

| Setting | What it controls |
|---|---|
| **Actions** | Which actions appear in the front-end **Bulk Actions** dropdown. |
| **Selection checkbox position** | Whether the checkbox column appears as the **First column** (default) or the **Last column**. |
| **Bulk selection behavior** | **Across pages** (default) keeps selections as users page through results, which enables the **Select all ** workflow. **Current page only** clears the selection when the page reloads, sorts, filters, or changes. |
| **Selection summary position** | Where the selected count and select-all links appear: **Below table header** (default), **Next to Bulk Actions menu**, or **Hidden**. |
| **Show selected entries link** | On by default. Lets users switch the View to show only the entries they have selected, with **Show selected** and **Show all** controls. |

Actions that can run in the background also gain their own settings inside the **Configure** panel, including **Run in background**, **Queue when selection is at least **, **Update progress automatically**, **When background processing finishes**, and **Keep result message until dismissed**. See the section on running large jobs in the background below.

## Using bulk actions on the front end

Once the widget is set up, here's what users see and do on the published View:

- A checkbox column appears at the start or end of each row, depending on your **Selection checkbox position** setting.
- Select entries by ticking individual rows, holding Shift and clicking to select a range on the current page, or using the header checkbox to select the whole page.
- With **Across pages** behavior, a **Select all ** control selects every entry in the current filtered result set. After selecting all, users can still deselect individual entries.
- The selection summary shows how many entries are selected, along with **Show selected**, **Show all**, and **Clear** controls.
- Choose an action from the **Bulk Actions** dropdown and click **Apply**.
- Destructive actions, such as **Delete Entries**, show a confirmation dialog before anything happens.
- When the action finishes, a result message appears. **Export Entries** and **Download Attachments** include a secure download link in that message.

![A GravityView front-end Table View with the Bulk Actions dropdown and Apply button, a selection checkbox column, and the All 58 selected summary with Show selected and Clear links above checked entry rows](https://www.gravitykit.com/wp-content/uploads/2026/06/bulk-actions-selection-summary-1024x420.png)

## Running large jobs in the background

Acting on hundreds or thousands of entries can take a while, so larger jobs can run in the background instead of holding up the page. When an action queues, users see a progress notice that updates as it runs, then a completion message (with a download link for exports and attachment downloads).

Background processing relies on GravityKit's [background processing](https://www.gravitykit.com/docs/general-help/background-processing/) being enabled in your **GravityKit** settings. If it isn't available, actions still run during the page request instead, subject to a limit on how many entries one request will process at a time. You can tune when each action queues, and how it behaves when it finishes, in that action's **Configure** panel.

![A GravityView bulk action result notice reading 3 entries exported as CSV with a Download CSV link](https://www.gravitykit.com/wp-content/uploads/2026/06/bulk-actions-result-notice-1024x78.png)

## Who can use bulk actions

Bulk actions are built around existing GravityView permissions:

- **Logged-in users only.** The toolbar, its assets, and its processing are all unavailable to logged-out visitors.
- **Each action has its own capability.** Approval actions need moderation rights, delete needs a delete capability, and edit, resend, and download need entry-edit rights. Users only see the actions they're allowed to run.
- **Permissions are re-checked per entry.** Even after an action starts, GravityView confirms the user can act on each individual entry before changing it.

For the full list of GravityView roles and capabilities, see [GravityView Capabilities](https://www.gravitykit.com/docs/gravityview/roles-and-capabilities/gravityview-capabilities/).

## Tips and notes

- The **Bulk Actions** widget is Table-layout only, and can be added once per View.
- Choose actions deliberately. Each one you add appears for any user who has its capability, so only enable what that View's audience should be able to do.
- Approval actions don't require the approval field to be visible in the View; they update the entry's status directly.
- Use the **Across pages** behavior when you want users to select large result sets at once, and **Current page only** when you'd rather keep each page's selection separate.

**Note:** Frontend bulk actions are a GravityView 3.0 feature. If you don't see the **Bulk Actions** widget, confirm you're editing a Table View and update GravityView to the latest version.