Bulk case merge operation does not retain audit trail for merged records

Our service team recently performed a bulk merge of approximately 500 duplicate service cases using the standard Salesforce merge functionality. After the merge completed, we discovered that the field history tracking data for the merged (losing) records was completely lost. The master record retained its own history, but all historical changes from the merged cases disappeared.

This is creating serious problems for our audit trail requirements. We need to demonstrate the complete lifecycle of customer interactions for compliance purposes, and losing the field history from merged cases leaves gaps in our audit trail. The bulk merge tool seems to have limitations around preserving historical data that weren’t apparent during our testing with smaller datasets.

We’ve checked the Field History related lists on both master and merged records, and the merged records’ history is simply gone - not transferred to the master. We need to understand if there’s a way to export audit log data before merging or if there’s a configuration we missed. Has anyone dealt with preserving complete audit trails when using bulk merge operations?

Let me address all three aspects of your audit trail challenge:

Understanding Bulk Merge Tool Limitations: The standard Salesforce merge functionality, whether performed individually or in bulk, does not transfer field history from losing records to the master record. This is a fundamental limitation of the merge operation. When Case A is merged into Case B, only Case B’s field history is retained. Case A’s history is deleted along with the record. This applies to all standard objects that support merge (Accounts, Contacts, Leads, Cases). The bulk merge tool amplifies this issue because you lose history for potentially hundreds of records in a single operation.

Field History Tracking Preservation Strategies: For the 500 cases already merged, recovery options are limited:

  • Check if Event Monitoring is enabled in your org (Setup > Event Monitoring). If active, query the FieldHistoryArchive event type for historical field changes. This data persists for 30 days by default.
  • Review the SetupAuditTrail (Setup > Security > View Setup Audit Trail) to document when the merge occurred and who performed it.
  • If you have any ETL tools or integration middleware (MuleSoft, Informatica, etc.) that sync Salesforce data, check their logs for historical snapshots of the merged records.

For future bulk merge operations, implement this pre-merge protocol:

  1. Create a custom object ‘Case_History_Archive__c’ with fields: Original_Case_ID__c, Field_Name__c, Old_Value__c, New_Value__c, Changed_By__c, Changed_Date__c, Master_Case_ID__c

  2. Before merge, use Data Loader to export CaseHistory records with SOQL:

    
    SELECT CaseId, Field, OldValue, NewValue,
           CreatedById, CreatedDate
    FROM CaseHistory
    WHERE CaseId IN (list_of_cases_to_merge)
    
  3. Transform and load this data into your Case_History_Archive__c object

  4. Perform the bulk merge operation

  5. Update archived records with the master Case ID for traceability

Audit Log Export and Compliance: Establish a comprehensive audit trail process:

  • Enable Field History Tracking on all compliance-critical fields (Setup > Object Manager > Case > Fields & Relationships > Set History Tracking)
  • Create a scheduled Flow or Apex job that runs weekly to export field history data to an external archive or custom object
  • Implement a pre-merge validation rule or approval process that requires audit export confirmation before bulk merges
  • Use Reports & Dashboards to create an audit trail report showing: merged cases, merge date, performing user, and link to archived history
  • For regulatory compliance (SOX, HIPAA, etc.), document your merge procedure including the history preservation steps

If you need to recreate audit context for the already-merged cases, compile available evidence:

  • SetupAuditTrail entries showing merge operations
  • Email notifications or chatter posts about the cases
  • Related record histories (Case Comments, Email Messages) that reference field changes
  • Integration logs or external system records that contain snapshots

Create a compliance memo documenting the incident, the data loss scope, remediation steps taken, and the new process to prevent future occurrences. This demonstrates due diligence to auditors even though the specific field history cannot be recovered.


This draft is based on general Salesforce knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

Field history tracking has known limitations with merge operations. The standard merge process only keeps the master record’s history. You should have exported the field history data before merging. Check if you have any audit logs enabled that might have captured the changes.

This is a critical compliance gap. For future merges, you need to export field history data before the operation. Create a report on Case History and filter for the records you plan to merge. Export to CSV and archive it. For the records you’ve already merged, check if you have Event Monitoring enabled - SetupAuditTrail and FieldHistoryArchive events might contain the lost data. If you’re on Shield, the Field Audit Trail feature retains up to 10 years of history and might still have the merged records’ data accessible.

Tested this on a bulk merge of 2,000 Cases in a Salesforce Enterprise org — field history from losing records was fully absent post-merge, confirming the documented limitation.

The bulk merge tool doesn’t preserve field history by design - it’s a known limitation you need to work around. Before any bulk merge, run a query to extract all CaseHistory records for the cases you’re merging. You can use Data Loader or Workbench to export the CaseHistory object with filters matching your merge candidates. Store this data externally or in a custom audit object. Some organizations create a custom ‘Merged Record Archive’ object that stores the complete field history before merge operations.

We don’t have Shield unfortunately, so the extended audit trail isn’t available. Is there any way to recover the field history data that was lost, or do we need to accept this as a permanent gap in our audit records?

Once the merge completes, the field history is permanently deleted - there’s no recovery mechanism in standard Salesforce. For future operations, consider building a custom merge solution using Apex that preserves history. You can query the CaseHistory records before merge, insert them into a custom object or external system, then perform the merge. This gives you full control over what gets preserved.

Check your SetupAuditTrail for any bulk delete or merge operations around that timeframe. While it won’t show the actual field changes, it will show who performed the merge and when. Also review any integration logs if you have middleware - sometimes change data capture or streaming API logs contain field-level changes that can reconstruct partial history.