At Phase2 we work with clients everyday to integrate Salesforce into their business.
Data storage and synchronization systems are there to work silently and continually in the background. To keep it that way, here’s three of the most common areas we focus on when integrating Salesforce.
1) Mirror, Mirror
Mirroring the structure of data across all the systems is crucial.
By mirroring your data structure, you will ensure that data can move efficiently between systems, while also streamlining repeat sync operations and changes.
Within the systems you’re integrating, each will have its own terminology to describe its data structures. For instance, in Salesforce they are called objects, in a CMS it might be entities. And within those items you’ll have sub-types and fields.
Whatever the terminology, they all act to contain and organize your data.
For example, let’s say your integration requires data from a Salesforce Contact and a Custom Object to appear as one item when displayed through the CMS. You could write code to do the data merging during the sync, pulling the data together at the time of syncing, and sending it along.
Instead, I would encourage you to consider mirroring both of those objects in the CMS. Then when it comes to merging data for display on the CMS, let that system handle that process.
This approach will keep your data mapping rules straightforward, and keep expensive and resource consuming code operations out of the data sync.
2) Load and QA Testing
Once you’ve got the data mirrored, make sure it moves quickly and cleanly with testing.
From experience, we know that the amount of data that needs to be moved can swell beyond your wildest expectations. If your integration isn’t prepared, it can lead to broken syncs and very long waits for data to be moved.
The best way to prepare for this is to load test the integration.
There are lots of load testing tools out there, so use them to test and tax your systems! When you’re reviewing the test results, look for time consuming processing of data and slow callouts.
Also, the many flavors and variations of data that will go through your systems will surprise you.
Ohh, we never thought someone would drop their five page college thesis into the comment field. - Actual Developer
Having thoroughly QA tested the integrations will give you a headstart at building a bulletproof integration.
Even with an extensive testing program, you still need a record of what your Salesforce integration has been doing with logging.
Note: always be sure your logging is not capturing sensitive data!
Having a historical overview of when, and even what, data synced can be indispensable when issues do occur.
Systems like Salesforce offer a view of historical changes to records. You can even enable per field tracking. These sorts of features will come in handy when a data discrepancy is reported and you’ve got to track down the source.
They can also really help when storing complete data in each system isn’t ideal. If you don’t have a complete record of the data in one of your systems, at least having a historical time log will give you a chance of figuring out what went wrong.