Connect for Salesforce - Discovery and Beyond - Part 1
Things to Consider During Discovery
Sitecore is a great part of your marketing and technology stack and can fill many roles including Content management, CRM, marketing automation, email campaigns and even company intranet to name a few. That said, many companies have other tools in place that serve them well and perhaps specialize deeper in a particular need. Customer relationship management (CRM) is probably one of the most common examples of these tools, and Salesforce is a market leader for that piece. Throughout my career I have done many integrations that connect Salesforce into other platforms and thought it may be a good topic for a Sitecore blog series:
- Things to consider during discovery
- Technical setup and configurations
- Rollout and Common Challenges
- Measure Success & Plan for the Future
In this first post we’ll be walking through discovery; one of the most often overlook portions of the process to help ensure your integration is a success.
Even before a requirement deep dive is done, it is important to know what the Sitecore CRM Connector provides out of the box and some common scenarios it accommodates.
With appropriate licensing, Sitecore has a connector available to sync data between Sitecore xConnect and Salesforce:
- Syncs Salesforce Campaigns > Sitecore xConnect
- Syncs Salesforce Contacts > Sitecore xConnect
- Syncs Salesforce Tasks > Sitecore xConnect
- Syncs xConnect Contacts > Salesforce Contacts
Out of the box, synchronization is performed manually within the Sitecore interface. Setting up scheduled tasks to automate synchronization is possible without a high level of effort. Additionally, using the Sitecore API’s could accommodate a real time sync, but that would require significant effort.
- Sitecore Experience Platform 9.1 or greater (see release notes for version compatibility).
- Access to a Salesforce CRM instance and a user account on Salesforce - at a minimum, this account must have rights to read data from Salesforce. To write data to Salesforce, the account must also have rights to write data to Salesforce.
- Network connectivity - you must installa Sitecore server that has network connectivity to your Salesforce instance.
Contact and Experience Profile Data
Both Sitecore and Salesforce support creating custom fields to associate non-default data to contact records. Out of the box, contact synchronization includes:
- Sitecore Contact ID
- Salesforce Contact ID
- First Name
- Last Name
- Job Title
- Consent Information
- Phone Number
- Created Date
- Salesforce Campaign IDs
Each task from Salesforce is represented in Sitecore by an interaction and is joined to a contact’s profile.
Completed Calls, Emails and Tasks within Salesforce are synced into Sitecore. Each event attaches the following data fields to individual events associated to a distinct Sitecore contact:
- Event Name
- Due Date
Custom contact fields not listed above will need to be programmatically integrated, and manually configured through the interface. Implementing custom facets requires a higher level of effort so it is crucial to understand the data you want to collect, how it will be utilized and how is it structured in Salesforce.
All integrations are unique and discovery processes should be tailored as much as possible to the individual situation. I’ll unveil my common steps as they relate to the Sitecore CRM connector for Salesforce.
Database of Record
With any technology stack that shares data between components it is important to clearly define the dataflow. In best case scenarios, a single database of record should be determined. In my most recent integration, Salesforce was determined the database of record since many other outside sources were already feeding into it. This meant that we had to prioritize specific data that lived in Salesforce and be very careful of any data we needed to push back into it.
Understanding the existing Salesforce data and configuration is extremely important. This data will help determine what can be used as well as the implications of trying to sync complex field types. It’s also important to identify fields that should never be overwritten by the Sitecore sync.
Salesforce data can be gathered into an excel template with contact and account objects organized into separate tabs. I utilize these example columns for my audits:
- Field Label – display name
- Field Name - important for API connections
- Data Type
- Notes - mappings or special importance
Other things to keep an eye out for:
- How much data will be synced? (number of records)
- API limitations
- User and licensing limitations
- Security policies and restrictions
- Plugins or customizations in place
- Existence of Salesforce Communities
This process should help determine what additional fields may be needed as well as what custom facets will need to be added in Sitecore. Marketing teams and business analysts will be able to provide insight into fields and date important to future marketing campaigns, personalization, targeting and analytics.
A good example of custom facets I have utilized would be customer type and renewal date. This data allowed for personalization of content based on the type of user visiting the site.
Once a discovery has been complete stakeholders should meet and analyze the results to determine an implementation plan. Considerations:
- Important Dates: When determining an implementation date, ensure it does not compromise any forthcoming activities. Data integration often includes content freezes and disaster recovery plans that could interfere.
- Solidify Goals: Now that you confirmed the data that can be synced, how will you utilize data in your content and marketing strategy?
- Establish baselines: In order to measure success down the road document the current KPIs such as traffic, conversions and number of contacts.
- Type of Integration: Is the default installation and mapping adequate? What additional data may be needed to enhance your company strategy?
- How will contacts be identified (no longer anonymous). Additional login mechanism? Cookie strategy from other systems?
- In certain instances, we have built fully custom integrations without using the Sitecore connector. This is a valid consideration if the connector falls short of needs, or rigid security rules are in place.
- Consider utilizing a third-party tool such as FuseIt. There are products that specialize in maintaining Salesforce and Sitecore integrations. This is a valid option for needs that are more complex than the Sitecore’s connector and a fully custom solution is not desirable.