> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Run Bulk Updates and Reclasses

> Update or reclassify large numbers of transactions in DualEntry using natural-language bulk operations with full audit-trail capture.

DualEntry lets you select multiple records in any transaction list view, describe a change in natural language, and apply it across all selected records in a single auditable batch. You use this for reclassifications, status changes, dimension tagging, and memo updates - any time the alternative would be editing records one at a time.

## Starting a bulk operation

Navigate to any transaction list view - journal entries, bills, invoices, or payments. Use the checkboxes to select the records you want to change, or use the "Select All" option to include every record matching your current filters. With records selected, click **Bulk Update** in the toolbar.

A text input appears where you describe the change in plain language. For example:

* "Reclassify all Acme Corp transactions from 6010 to 6020 for Q1 2026"
* "Tag these entries with department = Engineering"
* "Update the memo on all selected records to 'Q1 true-up'"
* "Change status from draft to posted"

DualEntry parses your instruction and generates a preview of every proposed change. If the parser cannot interpret your instruction, it highlights the ambiguous portion and asks you to rephrase. You can also combine multiple changes in a single instruction - for example, "Reclassify from 6010 to 6020 and tag department = Engineering."

## Reviewing the preview grid

After you submit your instruction, DualEntry displays a preview grid. Each row shows the affected record, its current values, and the proposed new values highlighted for comparison. You review the grid to confirm the operation matches your intent.

You can adjust individual rows before applying. Click into any cell in the "proposed" column to override the AI-generated value for that specific record. If several rows need the same override, select them and apply the correction in bulk within the preview itself. The preview grid also supports sorting and filtering, so you can group records by account or vendor to verify changes in context rather than scanning every row individually.

<Warning>
  The preview is your safety net. Take the time to scan it before applying, especially for reclassifications that affect closed or locked periods - DualEntry warns you if any selected records fall in a [locked period](../core-financials/general-ledger/period-locking).
</Warning>

## Applying the batch

Click **Apply** to execute the operation. DualEntry creates a single batch with a unique batch ID. Every record modification within the batch references this ID in the [audit trail](../platform-configuration/audit-trail-and-compliance), so you can trace the entire operation back to one action.

The supported operation types are:

* **Account reclassification** - move transactions from one GL account to another.
* **Dimension tagging** - add or change department, class, location, or custom dimensions.
* **Status changes** - transition records from draft to posted (or reverse, where allowed).
* **Memo updates** - overwrite or append to the memo field on selected records.
* **Archive and restore** - archive many records at once, or restore archived records where the record type supports it. Archiving is a status change, not a delete: history is preserved and the archived records move to the **Archived** tab in the list view. See [Retry, Resync, and Archive: Managing Integration Syncs](../integrations/managing-syncs) for the distinction between archive and sync actions.

After the batch completes, DualEntry displays a confirmation summary showing the count of records modified, the batch ID, and a link to the audit-trail entry for the operation.

## Bulk archive

Bulk archive follows the same select-and-describe pattern as any other bulk update. Open a transaction list view (journal entries, bills, invoices, payments, purchase orders, fixed assets, items, paper checks, and other archivable record types) and select the rows to archive. Either click **Bulk Update** and describe the action ("archive all selected"), or use the dedicated **Archive** action in the toolbar where available. Confirm the preview and apply.

Two behaviors to keep in mind before running a bulk archive:

* **Archive is not delete.** Archived records still exist in the database, still appear on prior-period reports, and can be restored where the record type supports restore. Use archive to retire records from day-to-day views, not to remove them from history.
* **Archive does not block re-sync.** If a record originated from an [integration](../integrations/index), archiving it in DualEntry does not stop the source system from re-creating it on the next sync. Resync deduplicates by external ID, so a still-active record in the source (QuickBooks, Gusto, and others) can be re-pulled. To keep a record from returning, address it at the source or adjust the integration's mapping instead of relying on archive.

Some record types support paired **Recover** or **Restore** actions in bulk. For example, archived paper checks can be recovered in bulk from the row menu, the toolbar, or the check detail page. Restored records return to the active tab with their original status.

## Large batches and background processing

For batches that include 500 or more records, DualEntry processes the operation in the background. You receive an in-app notification and an optional email when the batch completes. You can continue working on other tasks while the batch runs - the affected records show a "processing" badge until the operation finishes.

If the batch encounters errors on individual records (for example, a record locked by another user), DualEntry applies the successful changes and reports the failures in a summary you can review and retry. The failure summary includes the record number, the reason for the failure, and a one-click retry button for each failed record. You can also retry all failures at once after resolving the underlying issue.

## Rolling back a batch

You reverse an entire batch operation from the audit trail. Navigate to **Settings → Audit Trail**, find the batch by its batch ID or by the timestamp, and click **Reverse Batch**. DualEntry creates a new offsetting batch that undoes every change from the original, preserving a complete history of both the original operation and the reversal.

Partial rollbacks are not supported through the Reverse Batch action - the operation reverses all records or none. If you need to undo changes on a subset of records, use a new bulk update operation targeting only those records. The reversal batch receives its own batch ID, so both the original and the reversal are independently traceable in the audit trail.

## Related reading

* [Audit trail and compliance](../platform-configuration/audit-trail-and-compliance)
* [Journal entries](../core-financials/general-ledger/journal-entries)
* [Period locking](../core-financials/general-ledger/period-locking)
