Wrap-up for my talk "Connecting the Clouds"
In my recent talk at a Salesforce event I told the audience about utilizing Service Cloud data in Marketing Cloud. And in this post I’m going to summarize the most important information, so everyone who couldn’t attend is able to catch up on this topic.
What was on the agenda?
- What is Marketing Cloud?
- Why connect Service and Marketing Cloud?
- Marketing Cloud Connect
- Journey Builder
- Service Cloud audience selection
- next level journeys with custom activities
- Marketing Cloud Developer Tools
What is Marketing Cloud?
Skip this part if you are already familiar with Marketing Cloud and only interested in better utilization of Service Cloud data in Marketing Cloud.
Marketing Cloud is a marketing automation tool that is designed for B2C usage, has been developed by ExactTarget and was aquired by Salesforce in late 2013. Since then its integration with the Salesforce platform is steadily advancing. The toolset of Marketing Cloud includes many areas that can be used to communicate with customers:
If you are looking for a B2B marketing automation tool there is also an option in the Salesforce world that is called “Pardot” and formerly was also part of ExactTarget.
Why connect Service and Marketing Cloud?
There are quite a few reasons to connect Service and Marketing Cloud which for most of you seems quite obvious I guess. In my opinion the most important benefits include not having to store and manage data in several places in order to use it. In a project I recently implemented my team and I did some iterations with increasing level of personalization and individualization of the email contents. As anticipated the result was a conversion uplift. However, the boost was even higher than we thought as we managed to increase conversion by 50%!
Marketing Cloud Connect
Marketing Cloud Connect is the managed package that allows you to connect your Sales or Service Cloud to your Marketing Cloud instance. This enables you to syncrhonize desired fields of standard as well as custom objects to so called “data extenstions” - which in fact are just database tables - in Marketing Cloud. Furthermore also relationships between this objects are synchronized and represented in Contact Builder.
However there are some quite unfortunate limitations. One of them is the used synchronization that isn’t implemented using a push-mechanism! This means everything is pulled to Marketing Cloud on a certain schedule, that currently can be set to a minimum interval of 15 minutes.
Another thing you need to be aware of is the lack of effectiveness of email address changes in Service Cloud. The first email address that is used to contact a subscriber is the one that is going to be used forever in Marketing Cloud, if it isn’t updated via the Profile and Preference Center or in the “All Subscribers”-list directly. In order to make your Service Cloud instance the “one true source of knowledge” you need to put a workaround in place. Luckily I already did this and documented the whole process for you in my article “How to sync email address changes from Sales/Service Cloud to All Subscribers list in Salesforce Marketing Cloud?”. Concluding this “problems and pitfall” part I’d like to encourage you to test everything before putting it into production, as new features could behave different to what you’d expect.
Service Cloud audience selection
There are several ways to use your Service Cloud data to select an audience for a specific campaign. Most of them are suitable for a completely different type of use case and all of them have certain advantages and disadvantages. To my knowledge these are the most common ones for typical setups:
- report based
- Salesforce Data Event
- synchronized data extensions
- with filtered data extension
- with SQL activity
I’ll explain the more complex ones that sure are the most useful in my opinion briefly in the next section. Furthermore I will give some examples of possible use cases.
Salesforce Data Event
A Salesforce Data Event is a specific type of entry event in Journey Builder, that is triggered on a change in Sales/Service Cloud. This can be an update as well as the creation of a record. It is possible to define certain rules that have to be met in order to trigger the event. Fortunately this is one option to cirumvent the sync gap issue we have with Marketing Cloud connect, as this creates an apex trigger in Service Cloud that initiates the journey start and pushes over all the selected event data.
Possible use cases include:
- welcome journey
- survey after resolved customer service case
- rating request after contract is closed
Automation Studio triggered Journey
This kind of audience selection works based on the synchronized data extensions - which represent objects in Service Cloud - and a SQL query that runs on a certain schedule. This gives you the possibility to check your data pool from time to time to check for subscribers/objects applicable for a certain campaign.
Possible use cases include:
- scheduled reminders
- send specific information that is only relevant if some conditions, that are spread across multiple related objects, are met
- improvement suggestions for active contracts (for example insurance contracts could be optimized after some years as parameters could change, etc.)
Next level journeys with custom activities
If you have more complex use cases that cannot be realized using the salesforce-given activities it is possible to develop custom activities. This gives you the ability to interact with your systems as well as external APIs. For example you can build a custom split activity that sends contacts to paths according to data and business logic not present in Marketing Cloud. Furthermore you can create your own activities that call a service, perform an action and return a result that is usable in the rest of your journey.
However, there are some downsides too, as you need to host the activity yourself and currently there are limited possibilities for error handling and logging (I’m talking about logging data that is sent back to Marketing Cloud, as obviously you can do as much logging in your custom backend as desired). Furthermore as of now there is only few documentation which is also very outdated in some cases.
A custom activity consists of the package that is created in AppCenter and provides you with an application id, etc. that is needed to put together the next component, which is the JSON configuration file. Additionally you need to create some frontend components, that represent the configuration dialog the user goes through when setting the activity up on the journey canvas of a specific journey. The last part is the activity’s backend that does all the work and needs to provide four externally facing routes:
- save (called on save)
- publish (called as soon as a journey is being published)
- validate (called to validate the configuration of a journey)
- execute (called every time a contact reaches the custom activiy)
If you like to see a well documented and working example, check out my repository “Salesforce Marketing Cloud - Service Cloud Custom Split Activity” on github.
Marketing Cloud Developer Tools
Last but not least, I’d like to encourage you to use the Google Chrome Developer Tools extension I put together specifically for Marketing Cloud developers, users and admins. This free extension enables you to see some hidden data like more detailed error messages, publication list ids, journey and data extension details along with some other pretty nice features in my opinion. It has even been recommended by Salesforce MVPs and I got some very positive feedback from several other users as well.