Bulk actions — pause, resume, edit budget

Last updated: May 19, 2026

Bulk actions — pause, resume, edit budget

Select multiple campaigns / ad sets / ads → toolbar appears with bulk actions: Pause, Resume, Archive, Edit Budget, Edit Bid, Delete. Async execution via SQS workers (verified apps/backend/src/sqs/workers/{bulk,toggle,edit}/). Per-row status updates as workers process. Confirm modal before destructive actions.

Who is this for

Mediabuyers managing many campaigns who need to pause underperformers in one click, scale winners in another. Anyone doing weekly maintenance on a portfolio of 50+ campaigns.

How to use bulk actions

Step 1: Filter to the right subset

Before bulk action, filter to ensure your selection is what you want:

  • Active campaigns with ROAS < 1.5 (to bulk pause)

  • Paused campaigns from last week (to bulk archive)

  • Top 5 spend campaigns (to bulk scale budget +20%)

Filter first; act second.

Step 2: Select rows

  • Click checkbox per row to select individual

  • Select all in column header to select everything visible

  • Shift+click to range-select

Selection persists across pagination (if 30 rows on page 1, page to 2, your page-1 selections stay selected).

Step 3: Bulk toolbar appears

When 1+ rows selected, the bulk toolbar appears above the table:

[N selected]    [Pause] [Resume] [Edit Budget] [Edit Bid] [Duplicate] [Archive] [Delete]    [Deselect all]

Step 4: Click action

Pick an action. Some actions open a modal for parameters:

  • Edit Budget: enter new budget (absolute or % change)

  • Edit Bid: enter new bid amount

  • Duplicate: confirm target ad account

  • Delete: confirm with typing campaign name (safety)

Step 5: Confirm

For destructive actions (delete, archive), confirmation modal asks you to type a confirmation phrase (DELETE or campaign name) before proceeding.

Step 6: Execution + per-row status

Workers process per row asynchronously. UI shows per-row status:

  • Queued: in worker queue

  • In progress: worker executing

  • Success: action applied

  • Failed: action failed; error visible

Most actions complete within 1-3 minutes. Bulk of 100+ rows: 5-10 min.

Available bulk actions

Pause

Async via SQS toggle worker. Pauses selected rows on the platform.

  • Effect within 1-2 min on platform

  • Spend stops within 30 min (in-flight impressions complete)

  • Status flips to Paused

Resume

Reverse of pause. Restarts campaign delivery.

Caveat: paused > 7 days = Meta's learning resets when resumed → start with smaller initial budget, ramp up gradually.

Archive

Hide from default view. Data preserved for historical reports. Different from Delete (Delete may remove from platform).

Edit Budget

Enter new budget OR % change:

  • Absolute: "Set budget to $100"

  • Percent change: "Increase budget by 20%" or "Decrease by 10%"

Async via SQS edit worker. Effect within 5-10 min on platform.

CAVEAT: > 20% daily budget change can trigger Meta learning reset.

Edit Bid

For ABO with bid strategy:

  • Enter new bid amount

  • Affects auction participation

Async via SQS edit worker.

Duplicate

Creates draft mirrors of selected rows. Opens in Bulk Launch grid for customization before publish.

See am-107 bulk duplicate.

Delete

Soft delete on Wevion side. May trigger platform-side delete depending on platform.

Hard to reverse: Delete carefully. Archive is usually safer.

Confirmation modal requires typed phrase to avoid accidents.

Worker architecture

Verified apps/backend/src/sqs/workers/:

  • bulk/: Bulk Launch workers (campaign creation in bulk)

  • toggle/: status change workers (pause/resume/archive)

  • edit/: field update workers (budget, bid, targeting, creative)

Each worker handles one row at a time. Bulk of 100 rows = 100 worker jobs in parallel (subject to SQS concurrency limits).

Per-row failure isolated: one row fails, others continue.

Limits

  • Max selection: 100 rows per bulk action (UI limit to avoid timeouts)

  • For larger: split into multiple bulk operations

  • Concurrent workers: SQS handles parallelism; platform-side rate limits may throttle (Wevion auto-throttles to avoid hitting platform caps)

For 500+ row bulk operations: contact support for guidance.

Cross-level bulk actions

You can bulk-select across hierarchy levels:

  • Select 5 campaigns + 3 specific ad sets + 2 specific ads

  • Bulk Pause: pauses all 10 selected items

Useful for: surgical pause of multiple things at once without paunderschein cascades.

RBAC + bulk

Action

Min role

Pause / Resume

mediabuyer

Edit Budget / Bid

mediabuyer

Duplicate

mediabuyer

Archive

manager

Delete

manager (admin recommended)

Roles per team-101. Workspace admins should restrict Delete to higher roles.

Audit log

Every bulk action logged:

  • action: bulk_pause / bulk_resume / bulk_edit_budget / etc.

  • metadata: count of rows + IDs affected + values changed

  • Per-row sub-entries for visibility

Filter audit log by bulk action types to see "what bulk operations were done last week". See team-113 audit log.

What you'll see

During bulk action:

  • Toolbar shows "N selected"

  • Action click → confirmation modal (if destructive)

  • Per-row status badge updates in real time

  • Toast: "Bulk action started — processing N rows"

  • Completion toast: "M of N succeeded"

After completion:

  • Refresh shows updated states

  • Audit log records all changes

Common issues

  • "Bulk action stuck > 5 min": SQS worker backed up. Check status bar at top of Ads Manager. Wait or contact support.

  • "Some rows failed": per-row issue — most common: stale token (reconnect platform), permission denied (account access removed), or platform-side rate limit. Retry just failed rows.

  • "Cannot select 100+ rows": hard UI limit. Filter to narrower scope OR split into batches.

  • "Bulk delete blocked": requires confirmation phrase + role check. Provide phrase + ensure correct role.

  • "Budget edit didn't apply": Wevion edited, but platform may have rejected (e.g. budget below platform minimum). Check per-row error.

Best practices

Always filter before bulk

Don't bulk-action 50 random campaigns. Filter to verified candidates first.

Pause-before-delete

For uncertain campaigns: pause first, wait 1-2 days, confirm no impact, THEN delete or archive.

Document bulk operations

For major bulk operations (mass pause / mass scale): note WHY in your team's runbook + tag in audit log if supported.

Test bulk on 1-2 rows first

Before pausing 50 campaigns: pause 2 first, verify behavior, then proceed with the rest.

Related