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.
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 changedPer-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
Filtering and sorting — narrow before bulk
Pause / resume — single-campaign deep dive
Edit ad set budget — single-row deep dive