Ratio - Header
Blog Sitecore

Integrating Sitecore with CRM to enable true multichannel experiences

07.12.2016

Do we really know how our customers interact with us?


Over the past 15 years, Sitecore has grown from being a robust and scalable content management platform into a highly integratable multichannel engine with a market-leading suite of tools to manage and optimise the customer experience.

With features such as personalisation, marketing automation, testing and analytics, marketers have the ability to control the experience for a user at a granular level across the entire digital estate, founded on a data store of every trackable interaction that occurs with the business.

However, for many organisations the single ”true” view of customers will reside in a CRM platform such as Dynamics. This not only ingests data such as personal details, work information, sales leads, mailing lists and so on, but is also the primary resource for internal teams (and sometimes external) to consume this data back out. Furthermore, without a CRM it becomes difficult to accurately track interactions that happen outside of the digital estate.

Whilst Sitecore positions itself as an omnichannel marketing tool, the reality is that the only way to really access a holistic view of your customers’ interactions with your brand, and use this information to deliver excellent experiences across channels and teams, is to integrate it with a CRM system.

Of course there are many elements that sit around this, such as personalising nurture journeys, firing out trigger emails as part of marketing automation, targeting key prospects and so on. I have not covered this within this post, but as part of a strategic initiative this would clearly thread through an effective CRM integration project in the long term.

A quick recap of Sitecore's platform model


Sitecore is often viewed as a content management system, and whilst at its heart this is true, thousands of clients around the world use it for hugely varying purposes. Websites, intranets, mobile apps, print media, asset management, and line-of-business applications among others all have Sitecore sitting at their core, doing what it was built to do.

In order to illustrate how this works in practice, below is a simple framework overview showing how the pieces fit together:

 

Sitecore Experience platform


Channels: The different channels Sitecore can output content to

Management: The traditional CMS layer, storage of content, media and assets

AIDA: The personalisation, automation, analytics and optimisation engine

Database: The store of every interaction that users have with our Sitecore estate

Integration:  The ability to integrate with third party systems


What can we extract from Sitecore?

Sitecore is founded on two databases:

  1. Content database, which contains text, images, assets and so on
  2. Experience database (referred to as xDB), where we store everything we know about users

The xDB is the database we’re interested in for the purpose of integrating user data. It is a hugely scalable database built on MongoDB (although pre-Sitecore 7.5 it still resides in a SQL database and is called the “Analytics Database”) which captures every interaction a user has with our digital estate, including:

  • User’s name, email address and other personal details they provide to us over time through signing up for newsletters, submitting contact forms, registering for events etc
  • How the user reached us: campaigns, referral sites, direct and more
  • Goals and content they have interacted with
  • Audience profiles they’ve matched based on browsing behaviour
  • A historical timeline of their visits and activity

Sitecore also tracks this information for anonymous users as well, but until we know who the user is (e.g. by providing us with unique detail such as an email address) we cannot connect them with their record in CRM.

Below is a screenshot of how Sitecore exposes this data in Sitecore 8, which very much resembles a CRM profile screen in itself. In earlier versions you will have access to a more basic view of this ("Engagement Analytics"),  but the underlying data is largely the same and so we can still use it in a similar way. On the left is an example of the “user overview” screen, and on the right an example of the “audience matched” screen.

This data is essentially what we use to power personalisation on the front end of our website, by setting up rules based on conditions. E.g. if the user has come from Campaign X and triggered Goal Y then show a different call to action. All Sitecore is doing is interrogating this data during the user’s visit.

Sitecore Experience Profile 


Integrating our data

Crucially, all this data from xDB can be extracted from Sitecore and shared with other systems within the business, such as Dynamics. Not only that, but we can also update a user’s profile in Sitecore based on CRM data.

What that means is that we can maintain a constant and consistent up-to-date view of a user in both systems, but also use that to effect the way in which we communicate with that user both online and offline.

Sitecore CRM integration

At a high level, data is integrated by mapping fields from Sitecore’s xDB user table into the appropriate fields in CRM. Therefore there is work to do up front to define what data you wish to share between the two platforms

Having a Member Login feature on your Sitecore website makes a “single customer view” much more robust as we can see that the user is known, but we can also achieve it based on cookies. Let’s take an end-to-end example to show how this could work for a B2B customer.

1. John Smith visits our website, goes through a personalised journey, and submits a contact form. We can track this, as well as past and future sessions, by identifying him through his cookie and matching him back to his profile in the xDB

2. All the data we’ve been collecting about our user is dumped into CRM and is followed up by Sales

3. Sales is able to have an informed conversion with John as they can see which pages he’s been browsing, what audience profile he matches, and how he got to our site in the first place

4. When Sales concludes their phone call with John, they can update his profile in CRM to indicate he has been contacted, along with any other profile values such as product/service interest

 5. This CRM information is then passed back into John’s Sitecore profile to update his xDB record

 6. The next time John visits the website, he sees personalised content based on the outcome of the phone call and the updated CRM data (e.g. a relevant case study on the homepage banner)

 It takes some legwork in setting up an integration to enable this utopian vision, as well as getting the right structure and process in place to allow teams to use CRM in this way. This is a much deeper discussion and involves mapping of user journeys, sales and customer service processes and so on. 

We recommend starting with a relatively simple Phase 1 that looks at delivering more immediate value. The next section looks at possible examples of this.

As a footnote, Sitecore does provide a free connector to Microsoft Dynamics. However, this is fairly basic. From our experience with customers who have attempted this, nearly all have eventually opted for building a bespoke integration that better suits their business needs.

Where to begin?

There are many uses for a Sitecore/CRM integration. As I've alluded to above, a quick win could simply be the extraction of lead data for users into CRM and perhaps even creating "Key Account Activity" alerts if you're a B2B business.

This does require up-front work in mapping out business processes, CRM structure, team working, and various other facets. With enough time and resources you can begin to create highly personalised acquisition and ongoing retention funnels by connecting the two platforms to increase leads and lead quality.

However, across both B2B and B2C businesses there are other use cases you may wish to consider to manage the customer experience more efficiently:

  • Connecting call center or other offline interactions with Sitecore either by inputting data directly into CRM or through a data provider, and using this to control the front end experience. This is especially useful when dealing at scale
  • Managing client preference centers within CRM and synching it with user profiles in Sitecore (e.g. email subscriptions, content subscriptions, interests etc)
  • Controlling security and permissions from within CRM
  • Creating and importing email lists from within CRM into Sitecore's email campaign management tool