Unify Your Data For A Successful Salesforce Org Merge

May 1, 2014

During an acquisition, significant excitement surrounds the initial announcement — the majority of which fades away when it comes to merging each involved company’s data. A crucial step in every merger, proper data unification makes the difference between long-lasting IT headaches and quickly deriving value from the acquisition. Why not organize the data unification process along the lines of lean software development? We can call it “lean data,” and apply the principle of reducing waste to optimize data merging for organizations. Below are the key components of lean data applied to a Salesforce organization merge:

Learn First

It is always a good idea to gather as much preliminary information as possible so that you don't make costly last minute changes.

  • Identify similarities and differences between the two organizations. List used and unused components across all objects, fields, every picklist value, etc.
  • Document salesforce.com limitations around number of workflow rules, VLOOKUP functions, active validation rules, sharing rules, etc.
  • Backuping all data and making it “read-only” before migrating is beneficial.
  • For attachments, consider setting total batch size limit to 1 to avoid total SOAP size limit. Default size limit is 5 MB, which can be increased after submitting a ticket.
  • If API Integration is an option, use GZIP compression and HTTP keep-alive to avoid drops during lengthy save operations. Data loader enables GZIP compression, HTTP/1.1 persistent connections by default.
  • Plan to load new users and new record data. Also, load users into roles — loading record data with owners triggers calculations in the role hierarchy.
  • Load new users and new record data. Also, load users into roles — loading record data with owners triggers calculations in the role hierarchy.
  • When converted leads need to be migrated, identify if a converted lead’s ConvertedAccountId, ConvertedContactId, ConvertedOpportunityId could be blank because the record was deleted or merged — a case must be submitted to make them editable for a given duration.
  • Note that items in the recycling bin affect sharing calculations.

Eliminate Waste

Be selective with your data — determine data that is truly valuable for the customer.

  • Identify dependencies in object relationships, as they dictate the order of data migration. For instance, you should load users first, followed by accounts, and finally opportunities.
  • Keep irrelevant data out by only migrating records after a certain created date, or data owned by active users.
  • Identify what data to migrate, and then determine record count for each object; estimate current storage space versus projected usage facilitates when deciding to buy extra storage or archive data. For example, you may want to migrate the contact information from each account, or only migrate account information from a particular division.
  • Before a merge, develop clear rules to prevent accumulation of duplicate records.

Build Integrity In

Strive for flexibility, efficiency, and responsiveness between separate salesforce.com features such as reporting, sharing rules, and SOQL performance.

  • Avoid data skews. For instance, you can achieve this by assigning all records to a single user. Reducing account, ownership, and lookup data skews will provide excellent concurrency among multiple users accessing the multi tenant database without encountering lock exceptions.
  • Avoid issues with parent/child data skew by keeping the number of child records assigned to a single parent below 10,000, as this limits the performance degradation of the built in data sharing features.
  • Avoid very long sharing rule evaluations and timeouts by deferring sharing calculation until after data is loaded, or by using public read/write security during initial load.

Optimize the Whole

Synergy between different features of a Salesforce instance is key to the overall success of the system. It’s essential to consider the long-term implications while determining these features.

  • Differentiate source and new system records by creating custom fields for each object being migrated to show if it’s origin: from Org A, Org B, or both (merged).
  • If records need to appear under "Most Recent Items," API integration must be used as Apex data loader disables MRU(Most Recently Used).
  • Identify triggers, workflows, validation rules, and assignment rules that must be active during merge. For example, we may not require a trigger that fires an email during the merge, while at the same time we may need a trigger to help us geocode addresses — anything that causes a post-operation action slows down the load.
  • Identify the need to maintain a history of record ownership and updates from audit fields; a ticket must be opened to migrate audit field information.

Deliver With Speed

Customers value rapid delivery of a solution. The sooner a solution is delivered without major defects, the sooner feedback can be iterated upon. Below are few options that help to establish smooth flow of value:

Upon first sight, it may seem overwhelming to bring data together for two or more organizations, but it’s certainly not unachievable. If you’re interested in learning more about merging Salesforce instances, check out this white paper, or contact us to connect with one of our IT experts.

 

See More