Bulk Update Submissions is a WordPress ability from Fluent Forms — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.

Install Free Plugin →

Bulk Update Submissions

Destructive
Fluent Forms Forms fluentform/bulk-update-submissions

Apply one action — read, unread, trashed, favorite, unfavorite, or permanent delete — to up to 200 entries at once.

Needs the Fluent Forms MCP server switched on in FluentForm → Settings → MCP, and WordPress 6.9+ so wp_register_ability() exists (abilities are only registered when the function is present). Reaching the server also requires a logged-in WordPress user holding at least one FluentForm capability. Each ability additionally checks a specific FluentForm capability (e.g. fluentform_dashboard_access, fluentform_forms_manager, fluentform_entries_viewer, fluentform_manage_entries, fluentform_view_payments, fluentform_settings_manager) via the plugin's own Acl system, and every write ability requires a two-step dry_run → confirm_token round-trip through WriteGuard before anything is persisted. Note (from source comments): a WordPress role granted FluentForm access via the Role Manager passes every per-ability capability check, including delete-submission and bulk delete_permanently — the real boundary for such a user is 'has FluentForm access, restricted to their form scope', not per-tool separation; only individually-assigned 'specific forms' managers are gated the way each ability's declared capability implies.

What it does

Applies a single action to a batch of up to 200 entry ids at once: read, unread, trashed, favorite, unfavorite, or delete_permanently (spam is intentionally excluded — use update-submission-status per entry for that). Entries outside the caller's form access are silently skipped and reported separately rather than causing the whole call to fail. The confirm_token binds not just which ids are in the batch but each entry's current status and favorite state, so a preview cannot be replayed after the underlying entries have changed. Non-destructive actions run as one atomic transaction across every affected form; delete_permanently instead processes each form independently and reports per-form completed/failed outcomes, since filesystem side effects can't be rolled back. Requires dry_run:true first to preview the in-scope count and skipped ids and obtain a confirm_token, then a repeat call with the same entry_ids plus confirm_token to execute.

See it in action

You ask your AI assistant

"Mark all of these 15 entries as read: 201, 202, 203... and so on."

Inputs

Name Type Required Description
entry_ids array Yes Entry ids to act on (max 200).
action string Yes read, unread, trashed, favorite, unfavorite, or delete_permanently.
dry_run boolean No Preview the change without writing; returns a confirm_token.
confirm_token string No The token from the dry_run preview, required to execute.
idempotency_key string No Optional; a retry with the same key will not act twice.

Returns

On dry_run: the action, the in-scope entry count and ids, any skipped (out-of-scope) ids, and a per-form count breakdown, plus a confirm_token. On execute: the action and an updated (or deleted) count and the skipped ids; delete_permanently additionally returns per-form completed and failed breakdowns.

Permission

Requires the fluentform_manage_entries capability.

Newsletter

The AI + WordPress space moves fast. Keep up.

New tools, workflow ideas, and product updates — be the first to know what's next.

No spam, unsubscribe anytime.