Led Zeppelin famously said, "Yes, there are two paths you can go by but in the long run there's still time to change the road you're on!". They were not talking about Sitecore and Salesforce but there are two integration paths you can follow, syncing or staying afloat by transacting in real-time.
Why and How to Integrate Sitecore with Salesforce
First, let's look at the six most common reasons customers want to integrate Sitecore with Salesforce:
- Map Sitecore web forms to Salesforce leads or contacts
- Push Sitecore analytics to Salesforce leads
- Authenticate into Sitecore portal pages using credentials in Salesforce
- Query Salesforce email preferences so they can be edited in a Sitecore campaign subscriptions page
- Upload documents to Salesforce from Sitecore
- Run real-time queries to source Sitecore content from Salesforce
It's interesting that none of these reasons involves syncing data. Remember, system integration has two basic flavors!
- Data in a master system is replicated in another (syncing between Sitecore and Salesforce). The data is regularly updated or synced in an attempt to keep the data sources identical. This creates a scenario in Salesforce like Schrodinger's cat where you need to open the record (the box) and look at the modified date to identify when it was last updated - then gamble that the record is not about to be updated in the next few minutes
- Data in a master system is made available to the other. Salesforce is the single source of truth (SSOT) and Sitecore transacts what it needs when it needs it
A Better Integration Choice
A single source of truth is preferred because the data is more likely to be complete, relevant, accurate, more widely accessible, and have fewer duplicates. Users, therefore, have more confidence in the integrity of the data. In general, a single source of truth makes an integrated system simpler and easier to update. It also requires less storage and backup capabilities.
Beyond the six most common reasons, there are times when syncing (or synchronization) cannot be avoided e.g.
- When reporting requires the query data to reside in the system running the reports
- When the volume of constant traffic is so high it has to be batched to avoid access constraints
- When the data flows slowly between the integrated systems:
- The network path is very long e.g. New York to Tokyo
- The network bandwidth is poor e.g. congested with other traffic
- Transacted data packets are large e.g. very large documents
- When the master system has an inflexible data source
- When data elements are owned by different teams who want to control their own masters
It is true (because of the first bullet point) that Sitecore analytics need to be synced to Salesforce leads if Salesforce lead reports are executed regularly. In this case, businesses can avoid syncing by pushing the Sitecore analytics to Salesforce only when a webform is submitted. This analytics snapshot is sufficient for the sales team to learn more about the form submitter's web behavior and plan a superior sales call.
I'm not listing the many traps that await if you go down the syncing path. Instead, I'll point out some of the advantages of using a SSOT integration:
- The data quality is much better if it only exists in Salesforce - detailed above
- Before being updated a record can be queried first
- Salesforce has a flexible data schema that supports direct access by external queries from Sitecore. Syncing requires the creation of complex pseudo containers in both systems to store mapped data
- It is possible to deal with multi-element data of unknown size. For instance, we cannot be sure how many Sitecore goals a visitor triggers. A SSOT integration typically iterates through a collection of elements of any size
- Having a SSOT reduces the storage, and backup and maintenance effort
There must be compelling reasons for adopting a sync approach rather than using a single source of data. If you don't have these reasons you risk jumping in and sinking. While you can belatedly change the road you are on, the cost will be lost time and effort.
The key challenge with syncing is maintaining data integrity. You cannot be sure if your Salesforce record is about to be updated with changes that may have happened in Sitecore two hours ago. The SSOT approach makes this moot.
FuseIT's S4S integration uses Salesforce as a single data source and has the ability to sync should the circumstances require it. You can read more about data sources or call us to learn about the benefits and features of S4S.