View the session live or catch the replay here. You’ll find the recording and all related resources on this page once available.
Our live discussions are happening over in Slack. That’s where you can connect with speakers, join session threads, and chat with other attendees in real time.
Consent management is a fundamental part of every marketing solution. It’s also something you have to manage carefully. With Salesforce Consent Management framework, you can build a scalable and flexible model that suits your own business use cases.
In this presentation, learn how we can incorporate the consent management objects from Salesforce CRM into Salesforce Marketing Cloud. You’ll also see a demo of how consent status is synchronized and stored in different clouds.
Speaker 0: Uh, no. No. We test. You can see the full screen. Hello, Welcome, everyone. We are so excited to have you join us today. My name is Joe Alfonso, and I’ll be moderating today’s session. Before we get started, here are a few housekeeping items to cover. Yes. These sessions are recorded and will be available on demand after the event. We’ll be also following up with them via email. Do you have a question? Post it to the q and a tab above. And lastly, use chat. There’s emojis, GIFs, and more, and we want to hear from you. Also, we have a poll for this session. You can view it from the polls tab and answer the question. We’ll try to share the results towards the end of the call. Now let’s get started. I’d like to introduce you to our speaker today, Wilson Gong, who has an awesome session ready for us on how Salesforce Marketing Cloud works with consent management framework. Over to you, Wilson.
Speaker 1: Thank you. So morning, good afternoon, or good evening, depending on where you’re located today. Welcome to the section where we talk about how Salesforce working cloud works with consent management framework. But firstly, thank you for our incredible sponsors of the event, and also thank you for the emerging organizers for this opportunity to share my experience with the community and other trailblazers. A quick introduction of myself, I’m Rosen Gong, a senior marketing cloud architect at CapturMark. I have been working in the Salesforce ecosystem for over a decade. I currently hold more than 30 certifications, and my I’m a triple star stranger in the Trailhead. My Salesforce journey started in 2013 as a Salesforce developer in the end user environment. Then I joined a consultancy in 2014, and I worked on my first marketing cloud project in 2016. After that, I became a Salesforce architect in 2017 with primary focus on Salesforce marketing cloud and also cross cloud projects. I joined CapturingLai as senior marketing cloud architect last year. And more recently, I have started my first public speaking section few months ago. And today is my third public speaking experience this year. So thank you in advance for coming to my section and your support. So today, I’m going to share with you some key learnings and considerations when working with consent management framework. Yeah. Before I begin, I just want to let you know that while I’m keen to answer your questions, I will appreciate if you can keep your questions to the end of the q and a section or put it in the q and a panel so that, uh, I can view and answer them at the end of the section. So let’s begin. I will first introduce Salesforce consent management framework and the reason why you need it. Then I will share with you how I will apply the framework to different business scenarios, and you could then decide whether it is applicable for your business and your clients. After that, I will talk about how the consent is being managed in Salesforce Marketing Cloud, such as the data flow of the consent information, as well as how I would use the consent in the Salesforce Marketing Cloud. Finally, I will show you how this is how the records look like in the actual Salesforce system, in the CRM and also marketing cloud. So, hopefully, what you will walk away from today is you definitely know what, uh, the concern management framework is and the reason why you need it. Then you can see how you can potentially apply the concern management framework to your business and your client and how to manage that, and finally, how you can leverage that in the marketing cloud. So, uh, let’s talk about consent management framework. So consent management framework is a highly localized data model in the Salesforce CRM platform that accommodate many different aspect of privacy and consent for individual customers. With that data model, you could track consent statuses down to specific brand, communication purposes, channels, and also contact points. For example, you could allow your customers to provide consent to receive product updates on personal email address for a specific brand. Unlike typical Salesforce objects in the CRM, all the objects in the consent data models don’t count towards the data storage usage. So you don’t need to worry about each record will consume two kilobytes by other records in the CRM. It is definitely one of the advantages you would love to take. As for the reason why you would need it is it enables your business to align with current and emerging regulatory requirements. By using the model, you could build trust with your customer by giving them control over their own consents and data. You could also streamline your data privacy management processes to handle privacy related requests from the customers. So we now know what the consent management is. Let’s take a look at the actual data model. Um, so you can see there are a number of data object highlighted in green boxes, uh, on the screen. They are all the consent objects as part of the consent management framework. So the record in those in those objects don’t come towards the data storage, if you remember what I’ve mentioned in the previous slide. So you may find it quite complex in the first impressions. At least that is what I have, uh, that is my first impression when I look at it. And that’s why many people are struggling to understand the concept around that. Some might even find the data model overkill when they have only got very simple and straightforward consent preferences requirement from the business. However, you don’t necessarily need to use all of the data objects in the model. Let me explain that in a second. So on the screen, you can see this is a simplified consent data model. And this this data model allows you to, uh, manage consent on four levels. So level one, individual consent. So you can define on a all or nothing approach. That means, for example, you can contact me or you cannot contact me. That is all or nothing. On the second level, engagement channel consent level, uh, you can specify the channel that you would like to receive communication from the business. For example, you can email me, but you cannot call me. This is how you can leverage this level two. Level three, contact point consent level. Uh, within each channel, you can specify the type of the contact point. So it can be a personal email, It can be a work email, personal mobile phone, work mobile phone, for example. And then you can specify you can email me, for example, you can email me on my work email, but not my personal in email. That is how you can, uh, provide granular consent level on the contact point. On the last level, data use purpose. You can specify what type of communication you want to receive. For example, you can email me on my personal email address for any new product updates, but don’t email me on any product updates on my work email, something like that. And finally, there’s one more level, uh, is business brand. When your business operate on a multi brands, uh, sin uh, situation, you would definitely need to leverage this brand object to link it to the consent or data use purpose or contact point channels. I will explain that in a second. So you know on the high level what the consent management data model look like. Let’s see how we can apply it in different business scenario. So I have prepared three scenarios to cover today. In the scenario one, uh, we have company a. They operate as one single brand and would like to start with something simple. They just capture one contact point per channel. So this is one email address and one phone number from the customer. In this example, we have John, the customer, would like to opt in email and SMS to receive communication from company a, while another customer, Stella, who would like to opt into email but opt out to SMS from company a. So in this scenario, how would you leverage the consent data model to, um, to solve the business requirement? I would do it like this. In this data model, on the left hand side, we’ve got three standard objects. So contact object, lead object, and person account object. It really depends on your business requirement on how you would like to manage your customer information. Then on the right hand side, you have got four, uh, consent objects, individual, contact point email, contact point phone, contact point consent, and also engagement channel type. So for each of the, uh, contact lead or personal account, it links to an individual object where you can capture the level one, uh, consent information such as, you you know, don’t contact me, etcetera. Each individual will link to contact point, email, contact point, phone, uh, which capture the actual email address and mobile phone number. For each of the record, it will link to contact point consent, uh, record, which which captures the actual privacy statuses, like opt in or opt out, as well as other information, like capturing date time and capturing channel. So each opt in opt out status links to engagement channel time, which is either email or SMS in this scenario, because we just have, uh, email and SMS. So you may argue this is a bit overkill when you have just, uh, you can just use multiple chat boxes to manage this simple consent requirement on lead, uh, content, or person account. However, with the consent data model, you can avoid all the messy chat boxes on those objects and keep them separate. And you could also avoid creating many more chat boxes when your company want to expand and operates in a multi business brands or capturing more, you know, contact point from the customers. So this is scenario one. Let’s go to scenario two, shall we? So scenario two, um, where company a has done an amazing job adopting concern management into their business, and they can finally build trust with their customer and grow their business. That’s why they acquire a new company called CornerShop and also expand their businesses into multiple business brand, brand b, brand c, and brand d. Assuming that they have the same group of customers engaging with their different brands, In this example, it’s John again who would like to opt in email but not SMS to Connor shop. And at the same time, he’s, uh, engaging with business friendly as well. And he well, he would like to, uh, receive SMS, but not email from business brand. So as you can as you know, we have got the, um, data model in place, but we need to change make a change to the data model to support this new requirement. How would you do that? Let’s have a think. Would you completely change the data model? Would you add additional object to objects or adding multiple check boxes? I would do it like this. I would add one more additional object, business sprint, linking to contact point consent object. So each consent record could indicate whether opt in or opt out to this specific business brand. So in in this data model, in this example scenario two, John would have two consent record linking to contact point email. One to indicate that he opts into CornerShop. Another one indicate that he opts out, uh, email to business friendly. When I say adding additional object, I don’t mean creating a custom object from scratch. I can just add a standard object within consent management framework, and then adjust my processes to populate records in this business brand object to link to the consent record. So in this case, we don’t need to create extra custom chat boxes on the lead uh, contact or personal account. We can keep the architecture clean on those objects. So company a has realized the benefit of flexibility of this framework, and they would love to, you know, provide more, uh, powerful customer experience by providing more granular control, consent control, and preferences to their customers. Let’s take a look at scenario three. So again, we have the same company hierarchy and company a would like to break down the communications into different communication purposes and capture more contact points per channel to allow flexibility for the customer to receive communications. For example, John could opt into product updates on his personal email, but opt out to put updates on work email. Uh, similarly, he can also specify, uh, the opt in or bot statuses for different, uh, type of communications such as promotions and offer, offers from partner for Corner Shop. And at the same time, he can also, uh, provide his preferences to business brandy on different communication channels and different communication types. So there are altogether 24 consent statuses on the two business plan for different contact points. If you leverage, uh, lead, contact, or personal account, it will be another 24 chat boxes. So, luckily, we have the consent management framework in place. How would I use the consent management to support this change? Let let’s make a guess again. I would add another object data use purpose here and link that to contact point consent to indicate communication purpose for each op in op out status. So John would have an op in status linking to product updates on CornerShop on his personal email, for example. This is how, um, data this concerned data model can solve with three different scenarios. So now we have got an idea how the data model can support the business requirement, and we have that captured in the Salesforce CRM. But how can we leverage that in the marketing cloud? Let’s take a look at the following options. So I’ve summarized, uh, primarily two options for you to leverage the consent data model in, uh, in the CRM. Option one. If you have got beta cloud, it’ll be a nice and simple low code or low code approach. Um, so on the screen, left on the left hand side, uh, I’ve got different data sources for consent. So we have got a third party system or, uh, preference center, uh, it’s consent status as signals from the customer. You have also got a service agent who can update the consent manually via the UI within CRM. In this example, all these, um, all these consent statuses will be synchronised and capture in the Salesforce core cloud, in the consent management framework, in different objects. So we can then ingest the data into data cloud via Salesforce CRM connector into corresponding, uh, data source object in the lead contact individual, contact point email, etcetera. I’m not going to cover that in details, how data cloud works in these sections, um, but they are the same, uh, consent management objects in the data cloud that you can map to. Once you have mapped the once you have mapped the data in the data cloud, it will then go through the identity resolution process, and then we solve it into unified profiles. Marketers can then build severance, leveraging the consent status for different campaigns. So once the severance has been built in within data cloud, it can then activate to to work in cloud in a format of data extension with all the attributes you need for personalization, as well as the contact point email address. So this is a strict straightforward and low code approach to leverage consent management framework if you have got data cloud. But I understand that data cloud is a relatively new product that not everyone not every organization has got it yet. So option two, we have got, uh, working cloud. Um, again, on this on the left hand side, we have the same data sources for consent. All these consent, um, will be captured in the CRM consent management framework. It will then synchronize to marketing cloud via WIP and Cloud Connect into corresponding synchronized data extensions. However, this, as I mentioned previously, consent management framework is a normalised data model in CRM. And a normalised data model is quite challenging and difficult to be leveraged in the marketing cloud, at least not a very straightforward way. So I will have to create a consent data extension to kind of transform that into transform all this information into one data extension so that marketer can easily leverage that for campaigns and journeys in marketing cloud. Let’s take a look at how I will capture that in the consent data extension. So on the left hand side, we have got the data model, uh, in the Salesforce call count as a consent management framework. And I will do some kind of denormalization transformation into the consent data extension with these key attributes, contact key, which is the contact ID, channel, business brand, data use purpose, and usage type. All five of the attributes combined as the primary key. Of course, we have got the email address, mobile phone number, also a flag to indicate whether it is a primary, uh, email, or primary phone, as well as the opt in status flag, and the last modified date. So these are the basic key elements, key attributes that I will capture. Of course, you can add more fields, more attributes to this data extension, such as capturing channel, capturing date, time, etcetera, you name it. But these are the basics that we would need to leverage and capture. Um, then moving on into the consent flow. So I’ve walked you through the the consent flow from, uh, customer service agent to concern management model in CRM as well as working cloud. And here, I have I will walk you through how I can transform the synchronized data source into a custom data extension consent data extension in marketing cloud. So I will set up automation in marketing cloud, and the first activity is to find out, uh, the last modified record in the last sixty minutes in the contact point signalized data extension. I I’ve scheduled it to run on a hourly basis. That’s why I in the first activity, I just want me to find out all the modified record in the last sixty minutes. Then I will check whether there is any changes in the last sixty minutes. If yes, then it will go through another two step. If no, just end the process. So if there’s any change, I will run two activities. The first activity will be, um, kind of transform the contact point email related information into a role in marketing cloud, consent data extension. And then the second SQL query will transform the contact point phone related record into consent data extension. So we run it on an hourly basis and transform all this information into different roles, uh, for for consent data extension. Once you have got that in the consent data extension in marketing cloud, how can you use that in how can you basically use the consent in the working cloud? Again, there are two options. Option one, you can use SQL query to prepare a sendable data extension so that you can leverage that as the, uh, entry entry source or other can automate the campaign, which is kind of recommended because it is easy to use, and you can join other additional information together with the consent data extension to final, uh, your target audience with the right consent status so that you you can ensure that they receive the, uh, right message at the right channel and the preferred channel. So once you have got the skill query to prepare a sendable data extension, you can leverage that in the journey. Option two, if you’re not familiar with any SQL query, then you still have other options to leverage that. You can use a filter data extension to filter the consent data extension, and then, uh, use the journey builder filter context function to kind of, uh, find out the customer that has opt into email, for example, or SMS. If you want to, uh, launch a campaign that involves email as SMS, for example, for company a, then you can just and drop the criteria. For example, channel equals email channel equals SMS or, uh, with the or operator, and then opt in equals true, and also business brand equals company a. So that you can then come up with a data extension for you to leverage in the Gen Builder as the entry source. This is basically how you will, um, message that in the in the marketing club. So in the above example, there are some kind of key design assumptions that I made. So I’m assuming that Salesforce CRM is a system of records for the consent. So every consent, uh, from other system like website, mobile app, you know, preference center, and also service agent, they all make changes or sing at least, synchronize the changes in the CRM as as this is a system of records. And, also, that’s that’s why any updates you can send will happen in CRM first and then subsequently to other system. And as you can see in the very beginning, um, there are lots of objects within the data, uh, consent data management framework. And I have just select the relevant object from the framework in in the design and example, but not all of them. Just to showcase that you don’t necessarily need to use all of them, You just need to pick, uh, the applicable one for your for your business, for your client. Right. Then I will go to the system demo. So I’m going to share with you the screen on on Salesforce. Right. So this is the Salesforce, uh, CRM screen where I have the customer, John, as a contact. So you can see, um, I have used contact in this example, but you can also use lead object or personal account to capture the customer information. And all these, uh, uh, the contact objects is linked to an individual as I’ve previously show on the screen. And within that, under the individual object, uh, John customer record, we have contact we have captured two, uh, email addresses for John, uh, personal email address, and also work email address as specified in the usage type. And with that, I’ve got pervert personal email address as the primary email. We have also captured personal, uh, mobile phone number for John. So let’s take a look at each of them. Within that, in the contact point email, um, information, we have got the consent related to each product, uh, each data use purpose, for example, for the updates, and also specifying the business brand. So you can easily, uh, find out John has opt into CornerShop for product updates, opt into CornerShop for promotion and offers, but opt out to offers from partner for CornerShop. And similarly for this different business brand as well. And if you click on one of these, you can see within the cons, uh, con contact point consent, apart from the email address, we have got the opt in all out status, the business brand, data use purposes, as well as, uh, the capturing date, capturing source, and also engagement channel type. So there are a lot more information that you can capture, uh, but I’m just showing the, uh, the applicable one that is suitable for my scenario. So we have also got the, um, consent data extension in Martin Cloud. Let me quickly share with you. So this is the consent data extension in marketing cloud. We’ve got contact ID, email, mobile phone number is primary, the status, contact point type, last update day, etcetera. And this is how it looks like for John. So we have got 24 records for John here. Like, this is how it looks like when we transform the normalized record from the consent data model into consent. So for for example, John has opt in to CornerShop on email channel for product updates. And similarly, he has got the other corresponding record, the and store in the consent data extension. So I’m going to show you how the updates from the customer look like in a preference center and how this information will flow through from CRM to marketing cloud. And then, ultimately, you can leverage that in the in the marketing cloud for journey. So let’s take a look at this preference center. So imagine John has received an email from business, and he wants to update the preferences. He just click manage preference in in the footer of the email, and he can then redirect to this link, this page. So he can manage the preferences on portal updates, promotion offers, and offers from partner against each of the contact point channel. Let’s say he would like to unsubscribe for the updates from his personal email address because he has been receiving multiple for the updates recently, and he has he’s no longer willing to receive it, he can easily uncheck this chat box and click save. So once it is safe, the information will will be synchronized into Salesforce CRM. If you go if we go back to here, um, John record in the CRM, If we if we refresh it, you can see, um, the proof the privacy consent statuses has been updated to opt out, and it has updated a few seconds ago for product updates, uh, for CornerShot. Similarly, it will then go through the process, the transformation, and then update the record in this corresponding data extension as well. So I have done an update in the background, and it will just flow through. So you can see John Record has changed the op out for CornerShot for portal updates just now. So, normally, uh, when the in when the concern has been updated from the preference center to CRM, it will then pick up by this automation. So I have shared with you previously, uh, that we will set up a hourly automation to kind of denormalize the content information from CRM consent model into consent data extension. Right? So in the first step, we will find out all the last all the, uh, last modified consent record in the last sixty minutes and check if there’s modified record, and then go through this verification step. If there’s any, then we will go through the, uh, contact point email transmission process, which looks like this. Basically, I will select the contact points, the the the fields that I need from all of this object. We I just joined it together. I use the contact, uh, object as the source, and then inner join the last changes from the last sixty minutes, and then join all the other record, all object, like individual, contact point email, contact point consent, business brand, and also data use purpose. And I can select the channel equals email. In this case, we can then denormalize the consent management objects for email into a consentive extension. Similarly, I have done that for contact point form as well where I can, you know, leverage contact and inner join all these other record, other objects for phone. And then it will look like this once the automation has been executed. Uh, another option is because this preference center, as you might notice, is host on marketing cloud. Uh, instead of going through the automation on a hourly basis, if you need a more frequent or real time updates to the consent d for your journey, then you can actually leverage some m script function from the preference center and update, um, the information within the consentee in marketing cloud. So in this example, I have once I’ve clicked save in the preference center, I have fired the, uh, update to CRM at the same time to the consentee in marketing cloud as well so that, um, all this information updated in real time. So that’s all for my demo. And just want to do a quick, uh, recap of what I’ve done, I’ve shared with you. And so I have in the demo, as part of the demo, I’ve shared with you how a customer has go to the preference center and update the preference. The the information will be, uh, synchronised to Salesforce CRM and ultimately to working cloud, and then it goes through the automation and and delongalize into consented extension. Right. Hopefully, you you will find this info find this information and this section helpful. And we I think, actually, we have got some time for q and a.
Speaker 0: Thank you, Wilson. That was an amazing session. And, yeah, it does look like we have some time for q and a. If you have any questions of yours, please do submit them on the q and a tab, and, uh, Wilson will be happy to answer them. See that we have a couple of them. So how do you how would you how would the process be different if we need to bring the consent data from one trust to data cloud?
Speaker 1: Right. I I I suppose that you you’re managing the concern in OneTrust as the, uh, concern management platform. Right? So in this case, you don’t need to synchronize that into CRM. You can just, um, ingest the concern related information into data cloud. Because in the data cloud, you have got the corresponding exactly the same consent management framework in data cloud. So you can map that in the data cloud and then do your activation to marketing cloud for your journey and campaigns. Or, Ethan, you can activate. If you have got data cloud, you can activate, uh, to other, you know, social media or pay ad as well.
Speaker 0: Thanks, mister Wilson. And we have another question which says, this is great. Uh, I joined late. Does this only work if you have if you are using personal accounts? No.
Speaker 1: If you are using, like I said, in the data model, you can use lead or contact or personal account. So regardless of which object, you can still link that into individual object and, uh, subsequently to other contact point concern, uh, related objects. So it doesn’t matter whether you use personal account or not.
Speaker 0: Thanks for that answer. Yeah. And and it seems like that’s all we had in the q and a. It was an amazing session, uh, Wilson. Before we sign off, we’ll go ahead and share the poll results with the viewers. Yeah. Alright. So let me share screen.
Speaker 1: So I can see that many of them are leveraging custom chat boxes on lead or contact objects. Uh, several of them are leveraging chat boxes, and five of them are leveraging third party solutions. Only one of them use Salesforce consent management framework, and one of them use consent custom data extension in working cloud. Interesting. I I hope you can find my session useful so that you can explore, um, how you can use concern management framework to, you know, replace the custom checkboxes on the lead and contact objects. And it’ll be interesting to find out, um, the person who used Consent Management Framework currently, uh, how that different to the examples that I’ve shared.
Speaker 0: Alright. Thanks, Wilson, uh, for concluding the polls. So that concludes our session today. Uh, thanks again for joining us, everyone, and a special shout out to our sponsors for their support. Without them, my dreaming wouldn’t be possible. We have some great sessions on the up next session coming up in a few minutes. Otherwise, head over to the agenda to check out what session to join next. See you all soon. Take care. Bye. Bye.