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.
Campaign Influence reporting is one of the best tools marketing has to capture which initiatives are generating revenue. However, making sure that every lead and contact is being accurately captured by campaign membership is challenging. Enter Salesforce Flow. This session will show attendees how to build a Salesforce Flow that can take UTM values stored on leads and contacts and use them to add campaign membership. This scalable solution will give them better, more detailed reporting.
Speaker 0: Okay. Hi, guys. Um, my name is Michelle Corneli. Um, I’m gonna be presenting today the Unleash the Power of UTMs and Flow for flawless campaign reporting. I’m a solution engineer over at Sercante. Um, so let’s hop in. Um, before we do, let’s take a minute to thank our sponsors. Um, if you haven’t had a chance to check them out, there should be a little tab on the top of your screen that says sponsors and resources. They have easy links for you to be able to go over there um, and get more information on all of them. So definitely in one of the breaks, take a moment to check that out.
Okay. So our agenda for today, we have three main parts to our presentation. Um, so first is why the out of the box ways of capturing campaign membership can sometimes be inefficient. So kind of why we’re here to begin with, um, how to simplify our processes without sacrificing the details. So we’ll go through kind of an overview of what this solution can do. And then the last part is gonna be a step by step directions on how to build this solution with Salesforce flow. I’m actually gonna go into Salesforce. We’re gonna build it together. Um, and then I’ll also be providing you with the deck, and you’ll have access to the recording. Um, so you can take this information with you and build it in your own org.
So what do all marketers want? I’m gonna tell you. We want the best, most accurate reporting that proves our campaigns are working. Um, as marketers, this is so important because it allows us to know what we should continue doing, what we should stop doing, which initiatives are driving revenue. And for those of us that are using marketing cloud account engagement, we have access to Campaign Influence, which does this for us. So if you’re familiar with Campaign Influence, we see these reports all the time. Um, how many total influenced opportunities, how much is in the pipeline? We could break it down by different types of campaigns, by specific campaigns so that we know not only what type of campaign is bringing in revenue, but how much revenue, what specific campaigns are bringing in revenue, winning opportunities, how many opportunities are created, all of those metrics that marketers need to make the most influent, um, informative decisions exist in our campaign influence reporting. But with campaign influence, we do have some requirements. Right? So the magic that is campaign influence does need a little bit of setup. One of those being, we need to add prospects to a campaign for every single initiative that they’re engaging with. So if we don’t add people to campaigns, we can’t see their whole journey, which opportunities they’ve created, which opportunities they’ve won or lost. So one of the most important things when we turn on campaign influence and look at these reporting is knowing that we’re adding people to every single initiative that they’ve engaged with, adding them to their correct Salesforce campaign.
So how are you guys doing this today? We have a poll that we are gonna open up. I think I just made the poll go live. So as you guys are putting in your votes, I’m gonna talk through these options. Right? So most people are probably doing one of these five things. You might have completion actions on your forms and you’re adding them to a generic campaign. Right? So you fill out this form, you get added to the website campaign, or you get added to the content campaign. That’s option one. Or you might have a whole lot of forms, uh, possibly landing pages as well. So a lot of people do this in order to isolate their different initiatives. So we’ll have a specific form for every campaign so that we can add them using completion actions to more detailed campaigns and get that reporting that we’re looking for. Third option, you might use something like conditional completion actions actions or engagement studio programs to add campaign membership. So really anything with the logic of if they did this, if they visited this page, add them to this campaign. If their source is this, add them to this campaign. That would fall under number three. Number four, we’re not adding campaign membership at all. Our number five, you do it some other way. So let’s take a look at what we got. And I don’t know. Does it show do you guys see the results? Because I could see them backstage. Let’s see. Share. Well, I’m not sure if it’s sharing, but I will let you know most of you chose option two, which is you have a lot of landing pages. You have a lot of forms. Um, and it was a close tie with option one.
So when we’re thinking about these options and we’re thinking about why we’re here is we want a solution that does things a little bit better. Um, and by a little bit better, I’m thinking of these four things. I want a solution that’s scalable. I don’t wanna create 300 campaigns. And, yes, I’ve seen orgs that have 300 campaigns. And then if you have something like, you know, a pick list value on the form needs to change, you need to go in and update 300 forms. Um, so that’s something that is not scalable. We also don’t wanna sacrifice those campaign details. We don’t wanna add everybody to a generic campaign. We want more information than they just visited the website or downloaded a piece of content. Where did they come from? Um, and then the next two kind of go hand in hand. Right? We want something that’s low maintenance because that will mean there’s less human error. So things like our engagement studio programs, where we’re having to go in, pause a program, update it to add a new campaign, then turn it back on. That leaves room for human error and is a lot of maintenance. Uh, I’ve personally had a program like that where I forgot to turn it back on. So even if we’re super careful, um, there could be a break in the process because errors happen. We’re all human. So we wanna create automated solutions that give us the opportunity to have as least amount of human error as possible because we wanna avoid those situations that sometimes happen.
This is where Salesforce flow comes in. So with Salesforce flow, we can use the UTM values that we’re already capturing, find a matching campaign, and then add campaign membership. One of the reasons I love this solution is you could see what the flow looks like right here. It’s super simple. It’s short. It’s gonna be about ten minutes for us to build it on this call today. It’s something that everybody can build if they have access. Um, you don’t need to be a flow master. This is a really simple flow, um, that can really change the way that we report and improve our processes.
So let’s look at an example. We’re running a Black Friday sale, and I’m sending the leads directly to my website. But I wanna make sure that everybody who fills out a website form after engaging with my Black Friday promotion is gonna be trapped in the Black Friday Salesforce campaign. So let’s see what this setup looks like. First, we’re gonna set up our UTM links. Um, before I move on, wanna mention this whole presentation and this process works under the assumption that you are already using UTMs and you’re capturing them in Pardot and Salesforce. If you’re not, I have on the next slide a link to a presentation, um, that has step by step directions on how to do that. But this process is after we have already set up UTMs, we’ve been using them. Um, the rest of this, we’ll we’ll tackle now. But if you haven’t had UTMs and you’re not using this at all, I do have resources to share with you so you could set everything up. Um, but if we’re looking at our URL here, we could see I’ve used the UTM campaign Black Friday twenty twenty four. That is the campaign that we’re gonna use in our links, and we’re gonna make a slight change now. When I create my campaign in Salesforce, I’m gonna add this extra field, and it’s called UTM campaign. And you can see on the screenshot, the value for that is exactly the same. We have it set up to be Black Friday twenty twenty four. Those values do need to match exactly. So this is the only new step that we’re gonna really add to our day to day process is every time we create a new campaign, we’re gonna add a value for this UTM campaign field that’s gonna match the value that you’re using in your URLs. After somebody fills out a form, those UTM values are then gonna be captured in marketing cloud account engagement, and then they’re gonna sync over to Salesforce. And, again, that link on the bottom is gonna show you exactly how to do that if you don’t have that set up already. And this change in the UTM campaign field is what’s gonna trigger our flow in Salesforce. And that flow is gonna look for that matching campaign and add the campaign membership to that lead or contact. So now we’re able to add them to the campaign, and that’s gonna take place in Salesforce instead of marketing cloud account engagement.
So let’s go ahead and test it out. I’m gonna take my URL here and you could see I have my Black Friday campaign. We’re gonna go in guest mode, and you guys could see my not so lovely landing page. Um, but this will work right on a landing page, on a website form. But let’s just put in some test data and submit our form. So our form is submitted. We’re gonna cancel out of this, and we’re gonna hop in to account engagement. I’m gonna find my landing page here for my Black Friday campaign, and I can already see John Smith was just created. When I go to the bottom here, I could see my UTM campaign is Black Friday twenty twenty four, And I can also see if I open his Salesforce record that my UTM campaign is Black Friday twenty twenty four, and I’ve also can see over here that I was added to the correct campaign. So I’ve been added to the Black Friday promo email campaign that we saw on the original slide.
So let’s hop back in. So what’s going on behind the curtain? How did we do that? How did we set that up? We’re gonna go into the portion where we’re gonna build the flow, and I am gonna do it live in in the org. I just wanted to let you know since you are gonna be getting these slides, I do have step by step directions for you on exactly what you’re gonna do in these slides. So you’ll have all of the information you need right there when you’re ready to build your own flow. But we’re gonna start in Salesforce. We’re gonna go to set up. We’re gonna go to flow, and we’re gonna go ahead and create a new flow. We’re creating from scratch, and we’re gonna use a record triggered flow because we’re gonna want this flow to launch when that UTM campaign value changes. So that means we’re gonna have a record triggered flow. And once you start using this, you’re gonna create the same flow on the lead and on the contact. Um, so first, we’re gonna do the lead, and the process is gonna be exactly the same for both. We want to find the lead object. And from here, when are we gonna trigger this flow? When a record is created or updated, and then we’re gonna enter some conditions here. So we wanna make sure we’re not running this flow every time a lead is created or updated because that would be a little bit excessive. So we wanna make sure it’s only being run um, under certain conditions. And those conditions are going to be when a lead comes in that’s brand new, that has a value in the UTM campaign field, when a lead that was existing comes in and didn’t have a value in the UTM campaign field, but does now. But then also if a lead comes in and it had a value in the UTM campaign field, and now there has a new value. So because of the complexity of all the different scenarios of how we want, um, this flow to trigger, we’re gonna use a formula here. And if you guys aren’t familiar or comfortable writing formulas, um, me too. I usually use chat g p t. So that’s a good tool to help you write these formulas, um, but it’ll also be in the slides for you to reference later as well. At this point, we’re gonna make sure we save. So let’s go ahead and save our flow so we don’t lose our progress. Add campaign membership based on yes. Perfect. Okay.
So we’re ready to move on. We have a lead that came in. It’s UTM campaign field was recently updated. The first thing we wanna do is find a matching campaign. So to do that, we’re gonna add the get records element, and we’re gonna say get campaign, get matching campaign. So, obviously, here, we’re gonna look for the campaign object. And how are we gonna find the right campaign? Well, we know that the campaign has a UTM campaign field, so we’re gonna pull that up here. And we know that the lead also has a UTM campaign field, and those values should match. So we’re gonna look for that lead here that triggered the flow, and we’re gonna say UTM campaign matches. So this is basically saying the UTM campaign field on the campaign matches the UTM campaign field on the lead. And once we find that campaign, what we wanna do is store that campaign ID in a variable. We wanna do this because we need the campaign ID later on in our flow to add the lead to the right campaign. So we need to be able to identify that campaign. We’re gonna store it in a variable. And if you’re unfamiliar with variables, just know it’s like a container. Right? So we want to take the value of the the ID, the campaign ID, and just hold it in a container until we’re ready to use it later. So almost like a copy, copy it now so we could paste it later. We’re taking this campaign ID. We’re gonna click new resource. We’re gonna create a variable, and we’re gonna name it campaign ID. Best practice, we’re always gonna include a description and our data type is gonna be text. We’re gonna go ahead and save that. So what we’ve done here is we found the right campaign and we took that campaign’s ID and we stored it in a variable.
Now we should be ready to just go ahead and add the person to this campaign by creating a campaign member. But before we do that, we’re gonna add in a decision. And this is just because there are gonna be certain scenarios where maybe a mistake is made and we don’t find a campaign. Um, and in that scenario, maybe we wanna add them to a generic campaign or something else. So this helps us foolproof our flow. So we’re gonna put in a a decision element asking if the campaign was found. Let’s see. The tools, it’s the found. And the way that we’re gonna do this is we’re gonna have two pathways. One is gonna be campaign is found, and that’s the one that we’re going to can’t use the same API name. We’re gonna have two pathways. One is gonna be if a campaign is found, and then we’re gonna add it to the campaign that we found up here. And the other one is gonna be a default. We can leave it blank, but you can also add someone to a generic campaign. Maybe that’s where that generic website campaign comes in or some other campaign that will let you know, hey. We it didn’t have the right campaign UTM, so we need to go ahead and fix that later. How we’re gonna do this is we’re gonna look at that variable. So we have that campaign ID variable. And if there is a campaign in there, it should be not blank. So we use true false statements here. So we’re saying if the campaign ID is null, meaning there’s nothing in there, if that statement is false, then we know that the campaign was found, which means our default outcome is gonna be no campaign.
So now we have our lead came through when the UTM campaign changed. We got the matching campaign record that we wanna add them to. We’re confirming that we definitely found a campaign record. And now what we’re gonna do over here is actually create that campaign membership record. So we’re gonna do create record element here. We’re gonna name it create campaign membership, campaign membership to correct me. We’re gonna use the manual option here. It’s asking us what kind of record are we creating, and it’s gonna be that campaign member record. And now we have to fill in some fields. Salesforce wants to know what campaign are we adding membership to, are we creating that record to. And we know that we’re gonna use our variable. So what campaign? It’s gonna be the campaign that’s in our variable. And we also need to identify the lead. So we’re gonna go ahead and find that lead ID. So this is the triggering lead. We’re gonna go ahead and look for the ID. So now we know we’re gonna create a campaign membership record on this campaign that we stored in the ID for the trigger lead. And we can also add a status to be responded. This is optional. We don’t need to do that, but we can. And that’s it. This is gonna be our whole flow. Before we before we go ahead and activate it, we always want to save and debug it and make sure that it’s working. So if we go ahead and we use our example of John Smith and we say he was updated, we know he’s already a part of this campaign. So we’re gonna give him the UTM campaign value of another campaign, and we’re gonna see if his value changed to that, he would be added to the correct campaign. Um, so we also have the option of what if he’s added to one and there was a mistake. So if we do Marjorie man one two three four five, I don’t have a campaign that’s set up with that, and it’s gonna go down my other pathway. So I could add something similar here for that default pathway. And that’s our flow. So as you can see it was super easy to create. I do have all the steps in here for you and I have a QR code here or for you to access the slides. But I’m happy to take any questions if there are any.
Speaker 1: Yeah, Michelle. There’s a few questions that popped in throughout the presentation, so I’ll just get started with the first one and work it down. Um, so Rose asked if a prospect is on two campaigns, for example, would that UTM campaign field attend new values?
Speaker 0: No. So I have it set up right now, um, that it’s always gonna be overwritten. So campaign, UTM value, um, would update every time they fill out a form and have a new campaign. It would update, and then they would run through the flow.
Speaker 1: Um, and then Michelle asked, when they get added to the campaign, what is their default status?
Speaker 0: Um, when they get added to a campaign so that would depend on the campaign default status, or you can as you saw on that last slide, you can actually set that status to what you want it to be. So in my example, I set it to be responded, um, but you can set it to whatever it needs to be.
Speaker 1: Perfect. Sharon asked, curious how to best handle organic conversions environment where customers may convert multiple times, sometimes through URL that will have UTMs, sometimes not?
Speaker 0: Yeah. So this is only gonna capture the ones where they’re using the where you’re they’re coming in and they have a UTM. Um, you could set up automation in Pardot, um, to say if the UTM campaign field is blank and you add them to an organic campaign that way, um, you can that would probably be be the best way to capture that information.
Speaker 1: Right. Juan asked, can we direct redirect two prospects in the same landing page using your team configuration to a different campaign?
Speaker 0: I’m not positive that I understand the question. Um, let’s see. Can you I’m sorry. Can you read it again?
Speaker 1: Yep. Can we redirect two prospects in the same landing pages? Same landing page using UTM configuration to a different campaign? So, Juan, correct me if I’m wrong, but I think he’s saying if two prospects fill out the same landing page, then he wants them to go to two different campaigns.
Speaker 0: Yeah. Then as long as their UTM campaign value is different, they’re gonna go to whatever campaign is listed in that URL. So it it doesn’t matter what the landing page is. It doesn’t matter what the website page is. Um, really, what we want is this UTM campaign value. So the landing page could be the same. The source, the medium, and the UTM campaign can be different, and we’re gonna use whatever is here to add campaign membership. So it’s completely separate from whatever landing page you’re on.
Speaker 1: Um, Kyle was wondering if this could be accomplished through automation rules in Pardot or account engagement?
Speaker 0: So we can’t really do it because we don’t have the ability to have that variable in Pardot. Right? You can’t kinda do that copy and paste maneuver of store this information here, add it later. Um, so what you could do in account engagement is that, um, in an engagement studio program, you have all of your UTM campaigns listed out. So if the UTM campaign is Black Friday twenty twenty four, add them to a campaign, add them to the Black Friday campaign. But then you have to go into that engagement studio program and continuously update it for every single campaign, which could be hard to manage.
Speaker 1: Alright. Being conscious of time, we have just a little bit over a minute. We have a couple more questions to get through. Anything that we don’t address, I have taken everyone’s names down, and we’ll follow-up with directly in case time runs out. Uh, Jerome asked, does this flow work with contact object as well?
Speaker 0: Yes. Um, you just wanna make sure you create that, um, that you have that custom field UTM campaigns on your contact, and then you’re gonna do everything that we just did just on the contact object instead of the lead. The flow will be exactly the same except for those drop downs where you’re selecting lead, you’re gonna select contact.
Speaker 1: Um, Sydney asked, is there a way to append all campaign values? For example, if they’re part of multiple to a single prospect.
Speaker 0: You you could also have an alternate field that’s capturing that and keeps all of
Speaker 1: the
Speaker 0: values. I’ve also seen where if you wanna get a little more complex, um, you can create a custom object in Salesforce that will track all of your UTM metrics over time, um, so that you can see every time they visited what those UTM campaigns are. Um, but it’s not stored in the fields. It needs a bigger container, so it’s stored in a in a custom object. Um, but for this flow, it’s gonna work on the process of capturing one UTM campaign at a time and overriding every single time so that we’re getting campaign membership every time. We do need that field to match exactly what’s on the campaign field.
Speaker 1: Perfect. I think that ends our session.
Speaker 0: Alright. Thanks, guys.