To remove duplicate account or contact records while preserving the records’ information, users can merge account records and contact records. Veeva CRM’s account or contact merge process extends the Salesforce.com standard account merge to include records on Veeva-specific core business objects in the merge.
For example, Alice Adams searches for duplicate records in Sarah Jones’ org as part of routine record maintenance. When Alice enters “Ackerman” in the Account Merge search box, two separate account records display for Dr. Ackerman. Alice merges the duplicate record into the most complete record, along with the call, address, territory, and sample information related to the duplicate. When Sarah records her next call for Dr. Ackerman, she does not need to choose between the two records; only the master record displays.
Customers can choose to use Veeva CRM’s account merge functionality or implement their own solution. If a customer implements a custom merge process, they can opt out of the Veeva CRM merge process. For more information, see Disabling Veeva's Merge Processing.
Merging Accounts in Lightning
To configure account merge in Lightning:
Add the Potential Duplicates component to the Account Lightning page layouts for administrators.
Configure matching rules for duplicate detection.
Organizations can also use Duplicate Record Sets to manage non-detected duplicates.
Configuring Account Merge
Ensure initial configuration is complete before enabling this functionality.
To enable Veeva CRM Account merge:
- Open the DISABLE_VEEVA_MERGE_vod custom label in edit mode.
- Type "false" in the Value field.
When merging accounts with different hierarchies, the losing account's hierarchy is removed.
Configuring Address Merge Processing
By default, losing addresses are copied to the winning account address. To set a standard behavior for all losing addresses, customers can define whether losing addresses are set to active, inactive, or remain unchanged. To define merge processing behavior for addresses:
- Open the ACCOUNT_ADDRESS_MERGE_BEHAVIOR_vod custom label in edit mode.
- Enter the appropriate term in the Value field:
- ASIS - uses the default Salesforce.com behavior. Addresses are copied to the winning account without modifying the Inactive_vod field on the Address_vod record
- INACTIVE - merges all addresses from the losing account and sets them as inactive. This sets the value of the Inactive flag = true for these Address_vod records.
- ACTIVE - merges all addresses from the losing account and sets them as active. This sets the value of the Inactive flag = false for these Address_vod records.
Configuring Call Merge Processing for Offline Devices
To avoid losing call report data for recently merged accounts and causing sync errors, Veeva CRM allows offline device users to sync call reports linked to accounts removed from the system due to a merge. When offline users sync, call reports associated with the losing account are migrated to the winning account. To configure call merge processing:
- Ensure users have Read permission to the Account_Merge_History_vod object.
- Ensure there are active VMobile Object Configurations (VMOCs) for the Account_Merge_History_vod object on the appropriate devices.
Merging Duplicate Account and Contact-Related Records
By default, Veeva CRM uses the Salesforce standard account merge functionality. (For more information on using the standard account merge, see Merge Duplicate Accounts.)
Veeva’s merge process runs after the Salesforce standard merge to remove any Veeva-specific child object records, which would not be addressed by the standard Salesforce process—for example, Address_vod, Affiliation_vod, and Child_Account_vod records.
Veeva’s custom merge processing runs on the following objects, in addition to the Salesforce standard objects:
- Account_Territory _Loader_vod
- MC_Cycle_Plan_Target_vod (for more information, see Merging Accounts with MCCP Records)
Merging Account Territory Loader Records
Account merges are executed in the Account Territory Loader, where the winning account is aligned to all territories defined in the Account_Territory _Loader_vod (ATL) for the losing accounts. The ATL record of the “loser” account is subsequently deleted. By default, ATL record merging runs as part of Veeva’s merge process.
For organizations with custom merge processes, merge changes from Veeva’s ATL merge process should not impact any custom code built to replicate ATL merging. Veeva’s ATL merge simply cleans up any duplication resulting from the regular Veeva merge process. Any custom post-process search for duplicates will find the data is already cleaned up, with nothing left to modify.
Merging Territory Specific Field Records
When merging accounts, custom logic ensures Territory Specific Field records are maintained for unique Account/Territory combinations:
- If the losing account has a TSF record, but the winning account does not have an associated TSF record for the same territory, then the losing account’s TSF record is copied to the winning account
- If both the losing account and winning account have a TSF record associated with the same territory, then the losing account’s TSF record is deleted
Merging TSF records is not configurable.
Merging Sample Limit Records
When two accounts with Sample Limit records are merged via the Account Merge process, the losing account’s Sample_Limit_vod and Sample_ Limit_ Transaction_vod records are compared to the winning account’s Sample Limit records of the same type, and the two accounts’ sample limits are merged. This merge ensures existing Sample Limit records and their associated transactions on the losing account record are tracked after merging with the winning account.
The following fields enable Sample Limit and Sample Limit Transaction tracking for accounts:
For tracking purposes, System Administrator user profiles automatically have FLS Read permission granted to these fields.
If the date ranges on the losing account’s existing Sample Limit records do not conflict with any of the date ranges on the winning account’s Sample Limit records, the following process occurs:
- The Original_Account_Id_vod field on the winning account’s Sample Limit record is set to the losing account’s ID
- The losing account’s Sample Limit record and any associated Sample Limit Transactions are reparented under the winning account
- The Merged_vod check box on the losing Sample Limit record and its associated Sample Limit Transaction record is selected
- The Group_Id_vod field on the losing Sample Limit record is updated with the winning account’s Account ID
If the date ranges on a losing account’s existing Sample Limit records conflict with date ranges on the winning account’s Sample Limit records, the following process occurs:
- The Merge_Conflict_vod field on the losing account’s Sample Limit record is set to the record ID of the conflicting Sample Limit on the winning account
- The Merged_vod check box on the Sample Limit is selected
Merging Sample Limit Transaction Records
If the Call_Date_vod field values on any of the losing account’s Sample Limit Transactions records are within the date range of a Sample Limit record on the winning account:
- The Merged_vod check box on the Sample Limit Transaction is selected
- The Sample Limit Transaction is reparented under the appropriate winning Sample Limit
- The Sample_Limit_Id_vod, Sample_Limit_Name_vod, and Sample_Limit_vod fields on the transaction are updated to match the Sample Limit Transaction’s newly parented Sample Limit
If the Call_Date_vod field values for the losing account’s Sample Limit Transaction records are not within the date range of any Sample Limit associated with the winning account:
- The Merged_vod check box on the losing account’s Sample Limit Transaction record is selected
- The Sample Limit Transaction remains nested under the losing account’s Sample Limit record
Calculating Disbursed and Remaining Sample Quantities
After all Sample Limits and Sample Limit Transactions are reorganized using the above methods, the Disbursed_Quantity_vod and Remaining_Quantity_vod fields on the winning Sample Limit records are updated to include the reparented Sample Limit Transactions.
For example, Dr. Ackerman’s Sample Limit is 20 grams of Cholecap per quarter. When Alice Admin merges a duplicate account record to his master record, two sample disbursements of 5 grams of Cholecap from his duplicate account are reparented under the master account record’s Sample Limit. On the master account’s Sample Limit record, the Disbursed_Quantity_vod field is updated to include 10 more grams of Cholecap and the Remaining_Quantity_vod field value is reduced by 10 grams.
There is no way to enforce Sample Limit violations when merging accounts. Sample Limit violations are enforced on the call report. For more information, see Enforcing Sample Limits.
For organizations moving to either a custom account merge process or the default Salesforce Account merge process, admins can disable Veeva CRM’s merge functionality. To disable Veeva’s account and contact-related merge functionality:
- Open the DISABLE_VEEVA_MERGE_vod custom label in edit mode.
- Type "true" in the Value field.
For more information on standard Salesforce.com account merge behavior, see the Salesforce online help.
Merging Duplicate Accounts in Lightning
For organizations using the Lightning experience, Account merge is handled by a trigger, and does not depend on the user interface.
Use Duplicate Record Sets to manage non-detected duplicates.