In most businesses today, there are multiple systems supporting day to day operations. A very common question I hear is, “Where do we store our master data?”. There are many answers to this question but my favorite is, “In just one place”! When the conversation involves Sitecore and Salesforce, the answer is a resounding, “Salesforce”. Why? Because the sales team go to the CRM to learn about the leads and contacts they need to communicate with. When you open John Smith’s contact record, you want to see everything about John and be confident it is complete and up-to-date.
Actually, there is more to it than your data being complete and up-to-date. Data needs to be complete, relevant, accurate, timely, and accessible (CRATA) and, even more so, understandable and objective. Software architects like to have a single source of truth as it reduces the likelihood of conflicts, duplicates, and ensures the data is more likely to be CRATA. On a technical level, having a single source of truth removes the complexity of data synchronization, polling and ETL (Extract, Transform and Load) processes.
Consider, as part of your daily work, you log in to Salesforce and open John Smith’s contact record. You would expect to see all you need to know about John without navigating away from Salesforce to learn more. For example, requiring a sales rep to visit Sitecore to retrieve website analytics introduces risk and inefficiencies. Sales reps need to:
- Know both Salesforce and Sitecore technologies
- Login to Sitecore losing their current context and focus
- Search Sitecore for the required record - that may not exist
- Potentially retrieve the wrong information, like finding John Smyth’s record instead of John Smith’s
What Data Where?
Since Salesforce is where you store customer information it is the logical master data source. If your objectives are CRATA data, then real-time access to a single source of data in Salesforce will always win over scheduled data synchronization.
So, what Salesforce data can we pull into Sitecore?
- Sitecore usernames, passwords, roles, and profiles can be stored in Salesforce contact records and read from the website in real time.
- Salesforce contacts, representing customers, potential customers and/or your internal team can thus be shown privileged information. The web content they see can be controlled from their Salesforce contact record.
- Salesforce records (like products and accounts) and binary data (like documents and attachments) can be pulled from Salesforce in real time and cached in Sitecore when retrieved.
- Data can be synched to Sitecore using a scheduled task. The requirement to search the data often determines which approach is taken and where the data is saved.
- Sitecore analytics such as personas and profiles can be pulled from Salesforce to drive Sitecore personalization.
We can also push Sitecore data to Salesforce:
- Sitecore web forms can be used to create or update Salesforce records. Our S4S integration immediately pushes Sitecore analytics to Salesforce when a lead or contact record is created.
- Other data typically pushed to Salesforce includes individual communication preference settings, survey results, and documents.
Real-time integrations like S4S react to Sitecore web events like button clicks and page events to directly create, read, update or delete Salesforce data without requiring the data to be duplicated. S4S is optimized, both in API usage and easy customization around what you need to store and access in Salesforce.
Where full synching is required, S4S includes bulk update capabilities. S4S is fully compatible with Sitecore’s Data Exchange Framework (DEF) add-on, that replicates Salesforce data into Sitecore xDB, or the Sitecore item tree.
Because the real-time, single source of truth approach produces better data quality (CRATA), this should always be the objective.