- close or otherwise disposition many potential matches at once
- archive stale, test, or accidental-upload profiles while preserving audit history
- turn ongoing monitoring on or off for many profiles
- add the same operational comment to a large set of profiles
- review, audit, or revert a prior bulk action
Bulk Actions is designed for large asynchronous jobs, including jobs that
affect up to 1,000,000 objects in a single run.
How Bulk Actions Works
Every bulk action follows the same high-level sequence:- define the scope with the query builder and review the live preview
- continue from the scope step so Minerva locks a durable execution snapshot
- configure the primary action stage
- optionally review the follow-up profiles preview and configure a follow-up profile stage when the primary stage targets potential matches
- add a clear job name and rationale, then queue the job
- track progress, review the audit workbook, and revert the job later if needed
Key Concepts
Scope and Snapshot Locking
Bulk actions start with a live preview so you can confirm the right objects are included before anything changes. When you continue from the scope step, Minerva creates a durable execution snapshot. This matters because:- the worker processes the same set of records you reviewed
- the audit workbook reflects that same snapshot
- any follow-up stage derives its target set from that same locked snapshot
Primary and Follow-up Stages
The primary stage is where the main update happens.- If you target potential matches, the primary stage updates match review status.
- If you target profiles, the primary stage can update profile status, monitoring state, archive state, or add comments.
- you close many matches first
- some profiles become fully cleared as a result
- you want Minerva to continue directly onto those profiles and update their profile status or add a comment
Follow-up Profiles Preview
Before a follow-up profile stage is queued, Minerva shows a profiles preview table for the derived follow-up set. This preview reflects:- the locked snapshot from the scope step
- the result of the primary match-status action
- the rule that keeps only profiles that remain eligible for follow-up
- any additional profile query you apply in the follow-up step
- confirm how many profiles would actually receive the follow-up actions
- inspect which profiles are still included after the primary stage is applied
- narrow the derived set further before changing profile status or adding comments
- decide to skip the follow-up stage when no profiles remain eligible
Audit and History
Every bulk action records:- stage progress
- per-object before-and-after snapshots
- the user who requested the action
- the job rationale
- a downloadable XLSX audit workbook
- confirm whether a job completed
- inspect skipped or failed objects
- review exactly what changed on each object
- download evidence for internal review or audit support
Example Use Cases
1. Bulk Disposition With Automatic Profile Follow-up
Use this pattern when you need to close a large group of sanctions-related potential matches and automatically continue onto the affected profiles once those profiles no longer have unresolved matches. This example shows:- the follow-up step after a sanctions scope query has already been locked
- the derived follow-up profiles preview table that appears before profile actions are selected
- an additional profile query that narrows the derived profile set
- follow-up profile actions that update the related profiles to Accepted
- a shared profile comment that records the rationale for each accepted profile
2. Bulk Disposition Of PEP Matches From One Source
Use this pattern when a single PEP data source is generating a large cohort of potential matches that all need the same review outcome. This example shows:- a match-scoped query for unresolved PEP hits
- a PEP sources filter set to OpenSanctions Wikidata
- an optional date range to focus the job on a recent intake window
- the live preview that confirms which matches the scoped job would affect
3. Bulk Archive Of Old Rejected Profiles
Use this pattern when you want to move a stale cohort out of the active working set without erasing the audit trail. Common archive cases include:- removing test profiles after implementation or UAT and before go-live
- periodically cleaning up rejected profiles created on or before April 18, 2024, which is more than two years old as of April 19, 2026
- containing an accidental mass upload by filtering to a tight created-at window or a shared upload attribute
- a profile query for active Rejected profiles
- a created-at range capped to profiles created on or before April 18, 2024
- the live preview that confirms which profiles the archive job would target
Archiving changes the profile’s working-set state, but the archived profiles
still remain available in history and audit surfaces. In the current workflow,
archived profiles also leave ongoing monitoring downstream.
4. Bulk Profile Monitoring Update
Use this pattern when a large number of profiles should come off ongoing monitoring because they share the same profile characteristics or workflow state. This example shows:- a profile query for monitored profiles
- additional filters on profile status and kind
- the live preview that confirms which profiles the update would remove from monitoring
5. Bulk Profile Comment
Use this pattern when many profiles need the same analyst note, case-handling instruction, or operational reminder. This example shows:- a profile query for active escalated profiles
- the live preview that confirms which escalated profiles the shared note would reach
- the scoped cohort before adding a shared comment template that can include the queued job reason
Reverting A Bulk Action
Most current bulk actions are reversible, including:- match status updates
- profile status updates
- profile monitoring updates
- profile archive updates
- bulk-added profile comments
- Fail on conflict: stop that object from being reverted until it is reviewed
- Leave current state: skip that object and keep the current live value
- Restore previous state: overwrite the current value with the stored prior value
- a match was reopened after the bulk action completed
- a profile status changed after the original job ran
- monitoring was changed by another workflow
- a bulk-added comment was edited or deleted before the reversion ran
- open the completed source job from Bulk Actions history
- preview the reversion to confirm how many items can be restored cleanly
- if conflicts exist, choose a default strategy and optionally override the sampled rows before queueing
Reversion Entry Point
Start from the completed source job in Bulk Actions history. The job drawer shows the stored item snapshots, the audit workbook, and the Preview reversion action for reversible jobs.Reversion Preview Without Conflicts
When nothing drifted after the original job completed, the preview confirms that the stored previous state can be replayed directly. In that case, add a clear reason and queue the reversion.Reversion Preview With Conflicts
If Minerva detects drift, it samples the conflicting rows so you can see which field changed and decide how to handle it. The sample is representative rather than exhaustive, so treat the preview counts as the full scope and the table as the review aid for choosing a strategy.Reversion is launched from Bulk Actions history after you
open a completed job. Preview the reversion first so you can review any
conflicts before queueing the restore job.
Best Practices
- Start with the narrowest query that captures the intended cohort.
- Review the live preview before you continue to the locked snapshot.
- Use a specific job name and rationale so history remains easy to audit later.
- Use follow-up profile stages only when the profile action truly depends on the result of the primary match action.
- Preview reversion before restoring a prior bulk action, especially if the underlying profiles or matches may have changed since the original job ran.