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.
UTM parameters can be used to track the traffic from a variety of sources including email, social media, banner ads, and more. But how can you track them through to your Salesforce Campaigns?
In this session, you will come away with an understanding of UTM parameters and how they behave with Salesforce Campaigns.
We’ll cover:
The basics of UTM parameters and values
How to capture UTM values via Pardot forms
How to get the field mapping right to successfully track through to Salesforce Campaigns
How UTMs can enhance your Salesforce marketing reports
Speaker 0: Hey, Thanks for joining us this afternoon. We have a very hot topic on the schedule. Um, one of the most repeated questions we see, um, around being UTMs. What are they? Why do I need them? How do they work? And more specifically, how do they relate to Salesforce campaigns? So today, I have Triana joining us to give us a rundown on how to track UTMs from Pardot to Salesforce campaigns.
Speaker 1: Thanks, Sarah. Hi, everybody, and thank you for joining me in this session. So as Sarah said, what we’re going to do is talk about how to track UTMs into Salesforce campaigns. And just what you can expect is I’ll be going through briefly, uh, a UTM kind of overview so we’re all on the same page, uh, then talk about the value of actually tracking UTMs into Salesforce, why we want to do it. And then we can get into a bit more of the nitty-gritty on actually how to get them into Salesforce, then how we capture them in Pardot, and also what your channel performance report in Salesforce would look like at the end. Now to actually set a little bit of context upfront in terms of, like, why is this important? You know, you might be thinking, you know, why does Pardot say out of the box, not, you know, give me this information now or you you know, what what’s wrong with kind of the way it might be and why you have to customize it. So with kind of standard Pardot out of the box, you’ve got the Pardot source field, uh, which is connected to the Salesforce lead source field. And then you’ve also got if you have the Google Analytics connector turned on, that will capture UTM data. But the downside of both of these is, first of all, they’re both capturing first touch only. Um, and in some cases, you are well, in both cases, you are relying on Pardot and Google Analytics to actually populate those fields. So with the Pardot source field, that gets populated based on the last referring URL before somebody visits your website with your, uh, Pardot tracking. And while that you know, for the most part, you know, it does work. Um, there’s times where maybe it doesn’t because Pardot maybe doesn’t have the value to put for the referring URL that someone came from. Or even if it is putting the value in, it may not actually align to what you are tracking in Salesforce for lead source, and it can just get a little bit complex. And equally with Google Analytics, I mean, that is being populated 100% by that platform based on the UTMs that are present. Um, there are times where I’ve seen it not work entirely. And, also, if you’re using Pardot landing pages, um, it’s not going to populate because your Google Analytics tracking is on your website, not your Pardot, say, domain. Um, and additionally, none of this is going to be appearing on campaign member records, which to get the best out of campaign reporting, you need to really have it on campaign member records. So by adding the custom UTMs, you get more consistent capturing of UTM data for potentially last touch and first touch, maybe both, depending what you want. You get more details of where prospects came from. You can customize this to kind of fit your business needs. And, again, you can track the UTM through to specific campaigns. So, hopefully, this just gives a bit of context of, like, why this is actually an important topic. So let’s just cover UTM basics. So UTM’s, Urchin tracking modules. These are the parameters in a URL. They sit right at the end, which you can see here on my slide highlighted in yellow, and they identify the campaign that your traffic has come of where your traffic has come from. Um, and these parameters will, you know, sit in the browser during someone’s session until that session is finished. Um, and with the UTM parameters, we’ve got kind of your three primary ones, which is source. And so this is telling you where the traffic has come from. So that’ll be like Google, LinkedIn, Twitter. Medium is telling you the type of traffic it is or sometimes more commonly known as the channel. So here, um, this could be like, you know, for Google, you would have PPC perhaps or, um, search. And with, uh, you know, LinkedIn or Twitter, you would have maybe paid social or maybe you would just have social to represent organic. So, um, that’s what you’re capturing there. Campaign is just your your marketing campaign name. You’ve also got content. So, uh, especially if you’re dealing with, like, Google Ads, you want to maybe identify which ads people are engaging with or potentially content. If you’re showing multiple pieces of content, is it, you know, guide one, you know, two, or three? And then keyword and term, these are more typically used when you’re doing search campaigns. So I would say the the first three ones should always be there, um, and then the last two, they’re kind of optional. In terms of some other best practice tips, and then we’ll be done with UTMs, uh, these can be unique to each company. So, um, you know, it work kind of, you know, within your own organization to figure out what you need to capture, um, and, you know, kind of naming conventions and things like that. Always use lowercase. Um, can’t emphasize that enough. It’ll just keep everything nice and clean, and you have to avoid spaces between parameter values. So if you have, um, you know, two words for for something, you need to either use an underscore or you need to just combine that as one word, but no spaces because it will break, uh, the UTM. You can also add custom UTM parameters, um, in as well, you know, in as many in theory as you want. So, you know, like a Salesforce campaign ID, you could be adding that in as well. Right. We need some audience participation, but don’t worry. This is, uh, nothing too, uh, interactive for anyone who’s not quite feeling it yet. I just need everybody to, uh, follow, uh, the Bitly URL based on what the letter of your first name starts with. The letter of your first name. Yes. Something like that. And I just need you to fill out the form, uh, that the page takes you to. This form, I’m not, you know, gonna be sending you any marketing, you know, stuff afterwards. Don’t worry. It’s just going into my demo org that’ll help us with, uh, you know, a little bit of a live demo later on. You can use dummy data if you want, but just please try and keep it polite and PG. Um, I don’t need swear words all up in my demo work. So, hopefully, everybody’s got their URL and filling that in, and we will just move along. So, again, why are we tracking then UTM specifically into Salesforce campaigns? What’s, you know, that going to kind of give us at the end of the day? So most of us are probably familiar with, uh, you know, campaign setup structure like this, where you have your parent campaign, let’s say for a guide, and you’ve got different channels that you’re driving people to that, you know, you’re using email, LinkedIn, perhaps, you know, Google PPC. Um, and so these are your child campaigns. Now there is first of all, there’s nothing wrong with this setup. If this is what you’re doing, it’s fine. I’m not trying to say this is, like, the absolute wrong way to do it. But the problem or I suppose, you know, the challenge is is that in order to get your prospects into these child campaigns depending on the those channels, you would need unique Pardot forms for each in order to route people, or you’re looking at maybe doing something like, you know, using automation rules and looking at, again, maybe the UTMs of where they came from. And it just it can get a bit complex. And, you know, there is a cleaner way to do it, um, which is to actually just have one campaign, and you use the UTM data captured at the campaign member level to then see the source of where people came from. That sounds really good, doesn’t it? So now what this means for your reporting is that you can create reports in Salesforce looking at the campaign with campaign members, and you can see how they were acquired. So, you know, in this example here and, again, I’ll show, um, in the the demo org later. But looking at the UTM data, we can see where people have come from in just kind of one fell swoop as opposed to having, you know, separate child campaigns for each channel, and then you kind of have to round those up and, you know, it’s just not as clean. Additionally, you can be leveraging this information in B2B Marketing Analytics if you have that, which will just, you know, kind of make those kind of data insights even more meaningful for yourself. Right. Before I get into the how of setting things up, you definitely will want to be talking to your Salesforce and your website admins before you go, uh, wanting to get started with this. And the reasons why are you’re gonna need their help, um, and you’ll see why shortly as we go through the steps. And what’s gonna help is that you know that they have capacity to support you, um, so you guys can, you know, align in terms of time frames. Are there current configurations that could be impacted by this that you wouldn’t have knowledge of, but they do, um, and you guys would just need to kind of discuss that, work things through? And, also, are there any platform limitations, um, that maybe means you actually can’t use this approach? But now that they know what you want to do, they can try to help you solve for maybe a different approach. So just, you know, make friends with your Salesforce website admins if you’re not already, um, and it will genuinely help you make it a much smoother process to get this set up. Right. So pending that, all of that conversation has gone smoothly. Uh, we’re ready to get things set up. So let’s take a look at Salesforce first and getting those UTM fields created. So the first set that we need are UTM fields on the lead and the contact objects. So we need two sets of fields. One is going to be visible, which, uh, on my side here, these are gonna be I’ve called them UTM Campaign Last Touch. And then you need a set of hidden fields, which can be called, you know, UTM Campaign Copy, Hidden, whatever kind of you would like. In my example here, they are visible on the record, but that is just for the purposes of this. They normally would be hidden. Um, If you want to be capturing first touch, you can do that. You would need another set of fields and call those first touch, and you would need an additional process to actually populate those fields. Um, in this example, I am just gonna be going through how to get last touch, uh, set up in the fields. Next, we need to get UTM fields on the campaign member object. So this is just one set of fields. It’s visible, and there’s no need to distinguish between first touch or last touch. Um, it’s they’re just the UTMs for that campaign member in that campaign. Now we need UTM fields in Pardot. Uh, this is relatively straightforward, but some really key things to keep in mind are that when you’re setting up these fields, the field label or API label, it has to be lowercase and it has to have an underscore. It needs to look exactly like the way you would set up a UTM parameter in your URL. If you don’t have that and if you’ve capitalized anything or you’ve not used the underscore, it is not going to work. Um, and you basically will have to recreate the fields because once you set these fields up and it’s saved, you can’t go back and change the API field label as some of you may have experienced yourselves. So do yourself a favor. Do it right the first time. Um, otherwise, you have to go back and just make new fields, and it’s a hassle. And, of course, then you want to connect your Pardot fields to your last touch fields that were set up in Salesforce. So we’ve got our UTM field set up. Now we need to get the data passing into Pardot first. So, again, talk to your website admin to make sure that they can support you with this because whether you’ve got a form on the website or you’re using a form handler, you’re gonna have some JavaScript involved. So you need to add JavaScript to the form itself in Pardot to help, um, capture, uh, the UTM parameters. And I’ve put here that usually you need to add JavaScript to your website because I have seen some really strange occasions where clients of mine haven’t needed to put any JavaScript on their website to get it into the Pardot form. I’m not really sure how that’s possible. Um, but just to caveat that, you know, since I saw it, I have to say usually, but I would say 99% of the time, you need JavaScript on the website to get those UTM’s into the Pardot form, and the UTM fields need to be set as hidden on your form. If you’re using a form handler, definitely need JavaScript on the website to pass into, um, uh, um, the form handler, and your UTM fields again are gonna be set to hidden. If you’re using a Pardot form on a Pardot landing page, this is nice and easy. There is no JavaScript required. Hurrah. You just have to make sure that your Pardot form has the UTM fields added and that they are hidden on the form. I have included a link at the bottom of this slide. Um, credit to the wonderful Jenna Mobley, um, who is, you know, a legend and has written a article with the scripts that you would need for if you have a form or the form handler and what to add with those. What I will just say is that, um, while those scripts, I would say, upfront, they they should work, I have seen cases in just in some people’s websites where they actually don’t. And, you know, every website is different configurations. So, again, this is where working with your website admin will be really beneficial because if it doesn’t work the first time around, it means you’re gonna need to be tweaking that JavaScript yourselves to actually get those UTMs passing through appropriately. Right. So the data, UTM, they’re coming into Pardot. They’re being copied into our lead and contact objects, and now we need to get them into the campaign member record. So I like to call this stamping UTM values. And what we’re gonna be using here, uh, is gonna be a flow. And so for anyone who isn’t very familiar with Salesforce, flows are an automation available in Salesforce. You could use a process builder, but, um, I’ve kind of we’re going away from those as Salesforce is planning to retire them at some point. So flows are the way forward for this. And the basic kind of structure of this is you need to first look for a newly created campaign member record. So as soon as that campaign member record is created, we’re then checking the, um, appropriate lead contact record, and we’re looking at their UTM last touch fields to see if the values there are different to the UTM copy fields, so those hidden sets of fields. Now if they are oh, I’ve clicked too fast. Look at that. That was terrible. Back, back, back. There we go. If they are different, then what the flow is going to do, it’s going to copy the values from the UTM last touch fields into the UTM fields of your campaign member record. So just to for context here, the copy fields are like a control. So if you imagine the very first time someone is engaging with you and your website and their UTM’s are being captured, that’s in Pardot. They’re being passed through to the lead object, and they’re being filled in on the last touch field. Right? So when this process runs, uh, and it looks at the UTM last touch fields, that will have UTMs, but the copy fields, which are the hidden fields, will be blank. They’ll have nothing because nothing has populated that yet, and so they will be different. The copy fields are like a control. And so when they’re different, we’re copying now last touch into the campaign member record, and then the last step on this is to copy the last touch values now into those hidden sets of fields so they’re the same. So, basically, if that same person were to engage with another campaign with another set of UTM’s later on, those are being captured in Pardot still passing through to Salesforce because it’s last touch and we are setting those fields so that they overwrite in Salesforce, then the fields will be different. And then when they’re being added to that other campaign, those new sets of UTM fields will be added to that campaign member record. So, hopefully, that will make sense about why we’ve got that hidden field there and kind of the important role it’s playing. And as you can guess, if those fields are the same, so whether they’re both blank or even if they both have UTM fields, but when someone’s being created as a campaign member record and nothing has changed between that UTM last touch and copy fields, then effectively no new UTM’s have been captured. So the process ends, and there’s nothing to go on to the campaign member record. As I mentioned before, use a flow, set up a process builder. Keep in mind though that Pro versions of Salesforce only allow for five active flows at a time. So this is again where when talking to your Salesforce admin about the fact that you need a flow to even make this whole thing work, they can let you know whether one is available or whether you need to have discussions about turning another one off, um, or even increasing kind of, you know, your Salesforce, uh, you know, kind of addition. Right. This has been a lot of talking. Let’s see what this actually looks like, shall we? So going to hop into my dev org. Gonna do a quick little refresh, and, hopefully, what we should see are some nice submissions from a landing page. And let’s hope this refreshes in a reasonable time. Gotta love a live demo. Right? There we go. Look. You’re also lovely. Thank you. So this is basically my Pardot landing page that you all have filled out. So, Deb, we’re gonna look at you. Oh, the struggle is real today, isn’t it? I don’t have any, like, jokes to go in the downtime in between. I do apologize. It’s going. Okay. Right. Hopefully, the rest will be quicker. So we have Deb filled in the form, and we can see some lovely UTM parameters that have been filled in here. And let’s see what her record looks like in Salesforce, make sure that’s all kind of connected through. Okay. So I can see Deb’s record here. We have UTM less touch fields that have been populated. And what you can see here is that the UTM, uh, copy fields, which again, these are visible for purchase purposes of the demo, um, but they’re not filled in yet. So, actually, what this is telling me is that I’ve probably managed to talk so fast that, um, the prod that the flow has actually not executed entirely because if it had, that would be filled in. And also, I could already see on the related record that she would have been added to a campaign. But fret not, I had a feeling this would happen. So I have a backup, which is a different report. See sorry. I have to use imagination on this one. So hang on. We’re gonna look at you. You’ll have to forgive me. Skipping ahead here a little bit. But what your report will look like, and I’m gonna go backwards in just a moment, is so I’ve got a Campaign with Campaign Members report, and this is for a previous Pardot user group session I did where I talked about this. So the data’s already there. But you can see in this report, I have the filter set up. So I’m looking at that specific campaign. I’m looking at UTM medium and source in this case, and I can see how many people have fallen into different categories. And I’ve got a nice little pie chart here to also just give me straightaway information. You know, I’ve got most of my people, they came from paid social. Amazing. Maybe I need to be putting more money into paid social. Um, Google, you know, is doing alright. Maybe get that a little bit more money. And, again, you can just as a marketer see where people have come from in kind of one nice clean, um, report, and also you’re not having to faff around with a bunch of child campaigns. And, of course, this report can be expanded to include numerous campaigns based on they’ve been created in the last, you know, three months, six months, all of, you know, 2021. And if we just go take a look into the campaign, because I just want to show you how it actually looks at the campaign member record. So this again sorry. This is the previous campaign that I had set up for another event. And if we look at the campaign members in here and I’m gonna pick on so, uh, uh, again, you can see we’ve got UTM fields here, and they are all filled in from the camp from the UTMs that would have been captured on his record when he had filled in the form a few months ago. So this is sort of what you’re looking for. You’re looking for UTMs in Pardot, UTMs in Salesforce on the lead or the contact, um, object, and then also coming through to the campaign member record. And as we’re sort of seeing, the flow might take, uh, you know, at least, like, ten minutes and probably for things to sync over. But, um, trust me, it does work. Um, right, let’s come back into the last little bit of my presentation. So, yeah, I mean, that pretty much does cover it. I think just what I want to leave you with is to test this once you’re putting it into place. You know, make sure the UTMs that they’re actually coming in through to Pardot correctly from your form or your form handler. Are they getting into Salesforce the way they should on the lead and the contact records? And then campaign member records is super important. And then also don’t just test once, but, like, think through, well, what if the same person does multiple engagements? You know? So the that’s them clicking on, um, you know, two different links with two different sets of UTMs going to maybe two different forms, and they’re associated to two different campaigns. What happens if they do one one day and one the next day? Make sure that the UTMs that should be being stamped through to the campaign, uh, member record on the proper campaign, it’s all going through the way it should. And, also, what happens when there’s no UTMs? Make sure you consider that. Um, and then, you know, if you’re obviously, uh, got your head in Google Analytics as well, just make sure that, you know, the data is coming through there where it should on, uh, those pages that you’re tracking. Right. That’s it. I’ve never talked so fast in my life. Um, but thank you everybody for joining. I really appreciate it. If you have any other questions depending on if we have time for any now, you can reach me on LinkedIn, Twitter, um, or email. And, yeah, it has been a pleasure.
Speaker 0: Awesome. Perfect. So we are at time. Um, if anybody wants to, um, reach reach out to Triana, um, after this, you can connect with her in the event platform. Um, otherwise, I just want to leave you guys with one more lash out to our awesome sponsors. If you have not had time to go check out their booths yet, um, please do so at some time this week. Plus, you’ll get awesome points for that activity challenge. Otherwise, we will see everybody in a little bit here, um, for our Birds of a Feather session. So thank you all for joining us.
Speaker 1: Yeah. Then that’s a great question because there’s definitely value in having first touch as well as last touch. If you wanted to capture first touch, effectively what you would need is either probably a well, either a different flow or just a different modification to your flow in Salesforce to basically say, um, to kind of look at, you know, is this, like, the first time the record’s being created and there’s UTMs, then put those into your first touch field. So you would have those sitting in the first touch fields, and then the that would never run again. So you and this is where I’m thinking it might have to be a separate flow. Don’t quote me on it because I am certainly by no means a Salesforce expert. Um, but, uh, yeah. So you can populate the first touch that way, and then you would continue populating last touch just over and over again as someone is engaging with it. I hope that answers the question.
Speaker 0: Awesome. Perfect. So we are at time. Um, if anybody wants to, um, reach reach out to Trianna, um, after this, you can connect with her in the event platform. Um, otherwise, I just want to leave you guys with one more lash out to our awesome sponsors. If you have not had time to go check out their booths yet, um, please do so at some time this week. Plus, you’ll get awesome points for that activity challenge. Otherwise, we will see everybody in a little bit here, um, for our Birds of a Feather session. So thank you all for joining us.