It can be a tricky business to merge salesforce environments.
But actually it’s a surprisingly common activity. One company purchases another and both use salesforce.com, for example. And in many large companies, different regions or divisions within the same business have historically had their own salesforce environments.
Merging salesforce environments provides a single, consolidated view of the sales pipeline and sales performance. It means global clients can be managed in a holistic fashion. And there may be a strong imperative to integrate a single salesforce environment with an ERP or marketing automation system.
We’ve successfully merged salesforce environments (also known as salesforce instances or salesforce orgs) for five different global businesses. In each case there was a mountain of data to migrate. Pipeline and sales values had to balance to the penny. Configuration and code needed to be transferred from one environment to another. Conflicts and contradictions in functionality and data had to be resolved. And users needed minimum disruption before, during, and after the switch.
Based on that success, here are our 10 tips on how to merge salesforce environments or instances.
1. Create a detailed merge plan and checklist
- There is a logical order for migrating data and functionality. Use this to create a detailed merge plan.
- Include user and stakeholder communication within this plan.
- Include sufficient time for testing and validation of data in the merged salesforce environment.
- Create a checklist of tasks that need to be done at the point of cut-over.
- Merging salesforce environments is a non-trivial undertaking.
- Migration of data and functionality needs to be undertaken in a logical and methodical manner.
- Cut-over of Users needs careful handling in order to avoid confusion and down-time.
- Success requires planning and preparation, particularly if there is a short cut-over window.
2. Transfer merge data incrementally
- Do the bulk of the data migration before the cut-over date.
- Transfer new and modified records incrementally.
- Do this several times as the cut-over date approaches.
- At the point of cut-over, migrate only new and modified records from the previous day.
- It’s not realistic to migrate ALL data on a single weekend or evening.
- Migrating large volumes of data takes time.
- Manual effort is required to extract the data from the source instance, prepare the import file and physically upload the data to the target salesforce environment.
- The greater the quantity of data associated with a migration, the more opportunity there is for errors to occur.
- Importing the bulk of the data beforehand means that it can be thoroughly checked. If errors are subsequently introduced with the incremental transfers, then it’s much easier to identify the source of the problem and apply corrective action.
- Migrating in steps allows the project team to practice and refine the migration process. This significantly reduces the risks associated with the final cut-over.
3. Enable Created and Last Modified dates to be editable
- In the target environment, create a Case with salesforce for ‘create audit fields’ to be enabled.
- During the data import, this feature allows the ‘Created Date’ and ‘Last Modified Date’ for each record in the target salesforce environment to be set to the same values as the source environment.
- The ‘Created By’ and ‘Last Modified By’ Users can also be specified during the import process.
- Without this feature, the Created Date, Last Modified Date, Created By and Last Modified By fields will be set according to the date and person performing the data import.
- This impacts key reports e.g. number and value of Opportunities created by User each month.
- It also makes it more difficult for Users to understand the history of each record.
However, bear in mind that the Last Modified Date and Last Modified By are only be set at the point of record creation. If records are subsequently updated during the data transfer process (e.g. to add Opportunity Product Line Items to Opportunities) then the original Last Modified Date and User is overwritten.
This article in the salesforce.com success community explains in more detail on how this feature works and the Case that needs to be created.
4. Arrange courtesy licenses for both salesforce environments
- Arrange for access to the source environment to be maintained for a period of time following cut-over. Do this by requesting courtesy licenses from salesforce.
- In the target environment, arrange for temporary courtesy licenses to be available for Users that are no longer active in the source environment.
- Any problems identified by Users after the cut-over may require going back to the source environment to retrieve or check data.
- In the source environment, Opportunities and other records are likely to have been created by Users that no longer work for the company and who no longer have active licenses.
- However, in the target environment, data can only be loaded against active Users.
- Assigning temporary courtesy licenses to these Users in the target environment means records can be associated with the employees that created the data.
- This protects key reports (e.g. Opportunities ‘Created By’) and preserves the integrity of the migrated data.
5. Consolidate the source salesforce environment
Often it’s necessary to migrate configuration and code in addition to data. Use these tips to simplify the migration process.
- Avoid migrating configuration, records and reports that are not required.
- Install Field Trip by Qandor from the AppExchange into the source environment. This FREE tool automatically generates reports to show the record count and % of records that have each field populated. Use it to identify any fields that can be deleted.
- Create a “Report on Reports” and (with agreement from Users) delete reports that are no longer used or required.
- Obsolete fields can clutter up your nice new, merged salesforce environment.
- Fields in the source environment may have been added incrementally over time.
- Remove those fields that are no longer required (e.g. the field is populated in less than 1% of records).
- Migrating reports takes time and has many trip hazards. Minimise your work by removing those reports that are not regularly used.
6. Use the case sensitive Vlookup to link records
- Create a custom External Id field in the target environment for every object for which you will be transferring records. Set this as Unique and Case Sensitive.
- Populate this External ID field with the 18 digit salesforce record ID that is output by the Data Loader when you extract your source data.
- Use a case sensitive Vlookup formula in MS Excel to link records (see below).
Records need to be related to each other. Opportunities need to be linked to Accounts. Opportunity Product Line Items need to be linked to Opportunities. And so on.
This means, for example, that before Opportunities can be migrated to the target environment, the Accounts records first need to be inserted. Then, to link the Opportunities to the new Accounts, the newly created Account IDs need to be retrieved. These IDs need to be linked to the historic Account IDs from the source environment in order to match up the Opportunities. This means using the Vlookup function in Excel.
But, there’s a problem. Salesforce record IDs are case sensitive. The standard Vlookup function in Excel is not case sensitive. So instead use the custom case sensitive Vlookup formula below.
– D2 contains the data item you want to lookup
– Column A contains the records that you want to lookup against
– Column B contains the corresponding values you want to return.
Note that the formula assumes the spreadsheet has column headings and that the returned result is populated in Column C.
7. Watch out for trip hazards when importing data
- Make a conscious decision on whether you want workflow rules, assignment rules and validation rules to apply when the data is migrated to the target salesforce environment.
- Switch off rules that should not be applied.
- Where appropriate, configure data appropriately to avoid validation rule errors, or adapt rules to skip the new records.
- Don’t forget to switch on de-activated rules post migration.
- Many large existing salesforce environments contain multiple validation rules, workflow rules and assignment rules.
- Tripping over validation rules is a major source of errors when importing data.
- Triggering workflow or assignment rules upon can have unintended consequences on the imported data if not switched off prior to import.
8. Use the Apex Data Loader efficiently and effectively
- Data Loader settings can be modified from the standard values.
- In particular, pay attention to the Time Zone setting.
- Set the Time Zone in the Data Loader to reflect the time zone of your User record in the appropriate environment. If the User records in the source and target environments are set to different Time Zones you will need to change the Time Zone setting in the Data Loader between imports and exports. It’s easier to ensure both users are in the same Time Zone rather than do this.
- Set a smaller batch size (even down to 1) when the records that are being imported need to fire code in the target environment.
- Use multiple Data Loader sessions, running concurrently, for very large data sets or where the batch size is small.
- Inconsistent Time Zone settings may result in dates in the target environment being set incorrectly.
- Any record that triggers code may require a batch size of 1 in order to fire the code and be imported successfully. The results in a large import file taking many hours to complete processing.
- Running multiple concurrent Data Loader sessions significantly reduces the processing elapse time.
9. Merging salesforce environments is a task for more than one person
- For large data transfers, have two people working on the migration, particularly at the point of cut-over.
- Ideally have a third person with responsibility for reviewing, checking and validating the data transfer results.
- There is scope for human error in migrating large volumes of data. Collaboration between two people in identifying any errors is more effective than a single person working alone, particularly if there is time pressure on the cut-over date.
- Regularly checking that the reports and dashboards are producing the expected results is an essential method of validating the data transfer results. The third person should constantly be checking the output whilst the others are migrating the data.
- Having one person working on the next upload file in MS Excel while the other is loading the previous file will substantially reduce the cut-over time.
10. Provide immediate post-merge support
- Ensure support is available for one to two days immediately after cut-over to resolve any issues.
- Include system administrators with expertise in the source environment in the support team.
- If possible, locate the support team in one physical location.
- Any inconsistencies in data or functionality in the merged salesforce environment need to be addressed quickly to avoid adverse impact on Users.
- This may require specific knowledge and understanding of the source environment as well as the merged salesforce environment.
- Experience shows that problems are more quickly resolved if the support team are physically together. This is particularly the case where the problem relates to low-level data issues.
Merging Salesforce Environments
Many businesses gain significant benefits by merging salesforce environments. Our experience shows that success requires detailed planning and preparation, combined with a logical and methodical approach. But it’s very achievable, especially if you use our 10 tips!
And of course, if you’d like to find out how The Gary Smith Partnership can help your company to merge salesforce environments, then please, get in touch.