Newer Version Available

This content describes an older version of this product. View Latest

Merging Records

When you have duplicate lead, contact, or account records in the database, cleaning up your data and consolidating the records might be a good idea. You can merge up to three records of the same sObject type. The merge operation merges up to three records into one of the records, deletes the others, and reparents any related records.

Example

The following shows how to merge an existing Account record into a master account. The account to merge has a related contact, which is moved to the master account record after the merge operation. Also, after merging, the merge record is deleted and only one record remains in the database. This examples starts by creating a list of two accounts and inserts the list. Then it executes queries to get the new account records from the database, and adds a contact to the account to be merged. Next, it merges the two accounts. Finally, it verifies that the contact has been moved to the master account and the second account has been deleted.

This second example is similar to the previous except that it uses the Database.merge method (instead of the merge statement). The last argument of Database.merge is set to false to have any errors encountered in this operation returned in the merge result instead of getting exceptions. The example merges two accounts into the master account and retrieves the returned results. The example creates a master account and two duplicates, one of which has a child contact. It verifies that after the merge the contact is moved to the master account.

Merge Considerations

When merging sObject records, consider the following rules and guidelines:
  • Only leads, contacts, and accounts can be merged. See sObjects That Don’t Support DML Operations.
  • You can pass a master record and up to two additional sObject records to a single merge method.
  • Using the Apex merge operation, field values on the master record always supersede the corresponding field values on the records to be merged. To preserve a merged record field value, simply set this field value on the master sObject before performing the merge.
  • External ID fields can’t be used with merge.

For more information on merging leads, contacts and accounts, see the Salesforce online help.