How To Set Up a 1:1 Form Relationship For Ultimate Pardot Salesforce Reporting and Attribution
Jennifer Lynn Schneider MBA
Sr. QSA @ Qualified & MVP Community Leader | Salesforce Marketing Champion | MBA
I recently received a question from a Pardot LifeHacker about how to create one landing page to use for many different channels (paid search, display, social, etc.) and set up for proper tracking and reporting through Salesforce campaigns.
This is a great question that brings up a big marketing conundrum: using global vs 1:1 forms and landing pages.
My opinion and methodology with my customers is to create a 1:1 relationship instead of using a global form/landing page. Yes, it can require some more steps, preparation, and strategy among your team. But once you get this process going, it leads to more customizable reporting and better data for sales, marketing, and the executive team.
I have laid out how to set up a 1:1 form relationship for ultimate reporting and attribution in Salesforce Pardot. You can follow along below or listen as I talk through this on the Pardot LifeHacks Podcast here.
*Note, the steps below assume you’ve enabled Connected Campaigns in your Salesforce Pardot instance.
Create a 1:1 Relationship
In this example, our company has content we want to be gated behind a Pardot landing page/form and we are generating leads to this landing page through display and banner ads.
We will create one Pardot landing page with form and associate it with the proper Salesforce campaign. If you have been following the methodology I’ve laid out in the past, all of this will live inside one project folder in Pardot and be associated with one child campaign that rolls up to a parent campaign.
In this example, we will call the parent campaign: Parent_Content Syndication_Campaign
Campaign Hierarchy
Here’s an example of what the campaign hierarchy would look like:
Your parent campaign will not have any assets associated with it. The child campaigns underneath are what you will associate with your Pardot assets.
In this example, we’re using Banner Ads (BA) and Display Ads (AD) in Q1 of 2020. Our two child campaigns are:
- Q1-20’ [AD] Content Syndication_Product A & B [US]_Campaign
- Q1-20’ [BA] Content Syndication_Product A [US]_Campaign
Notice how I used a naming convention to help identify which products the campaigns are associated with along with the region. I use underscores and dashes as part of the convention to separate keywords to help visually differentiate the program we are running in Salesforce and help marketing easily segment later as needed.
I’ve also selected a Campaign Type for each campaign. This can be used as a differentiator and filter in our reporting across all our campaign hierarchies to see, for example, all our efforts in just banner ads for 2020. This is completely customizable and will require some strategy and discussions among your team to be effective.
Add Campaign Statuses
I’ve also added custom campaign statuses to each of our child campaigns, and further down in this post I’ll walk through how this is helpful (hint: it has to do with reporting).
For this example, the campaign statuses I’ve added are Linkedin, Twitter and Instagram, the three channels I’ll use. This will help us identify where our leads and contacts have come from.
Create Custom Redirects
Let’s say we are running this ad for three months on three channels: Twitter, LinkedIn and Instagram. We’ll use custom redirects to use for each of these social channels.
Within the same project folder, I’ll use our Pardot landing page link to create three custom redirects and follow our same naming convention:
- Q1-20’ [BA] Content Syndication_Product A [US] _LinkedIn_ CR
- Q1-20’ [BA] Content Syndication_Product A [US] Twitter_CR
- Q1-20’ [BA] Content Syndication_Product A [US] Instagram_ CR
Let’s take a look at my project folder now:
I have my custom redirects, my child campaign, landing page, form and list (the destination for prospects who complete my form).
A Note on Tagging
I added tags to everything in our project folder to help filter assets and engagement in our reporting. This is especially helpful if you have B2BMA set up in your org. Tagging works great for industry or a product/service. Again, before using tags, be sure to set a strategy and process for this among the entire team so that it’s unified across the board and is actually helpful, not a hindrance.
Pardot LifeHack - Be Reporting-Focused From the Start!
In case you haven’t noticed, we have been thinking about reporting this entire time, which is the beauty of all of this! We’ve created a naming convention that is consistent, tags for filtering in B2BMA, campaign types to filter reports in Salesforce Lightning and unique campaign statuses to help specify channels when we add completion actions. I know, amazing.
Identify First and Last Touch Lead Source
Many organizations want the first lead source, where you first met a prospect, but equally important is how that lead or contact engaged with us last, or right before an Opportunity was created.
To determine this, a custom field can be created in Salesforce and mapped to Pardot. I’ve called it Last Touch Lead Source.
To allow this custom field to continually update and override, I changed the sync behavior in Pardot to “Use most recently updated record.” You can find this by going to Admin > Configure Fields in Pardot.
Be careful, if you set this field to use Salesforce or Pardot’s value, then it will never override, it will just fill in null values, which won’t get you the correct final touch for every prospect.
We will add this custom field as a completion action on our custom redirects in the next step. This will capture where the prospect was prior to conversion.
Add Completion Actions to the Custom Redirects
Now it’s time to add completion actions to our custom redirects. I’ve said this before, every first completion action should always be any assignment you might need to do to a salesperson or user. After that, here’s what our completion actions will look like on each custom redirect:
As you can see, we’re adding the prospect to the appropriate campaign with the status of our social channel, in this case, Instagram. Those campaign statuses we added are going to give us a nice donut chart in our reporting to visually see who came from Linkedin, who came from Instagram and who came from Twitter.
Then we’re updating both the Lead Source and Last Touch Lead Source to Instagram. The Last Touch Lead Source field is what is going to override so that we continuously get the last engagement of that prospect and always have the most up to date reporting. Many people find this field extremely helpful.
We’ll repeat these completion actions for each custom redirect, updating the status and source names accordingly.
Now what if someone clicks on the link to get to your landing page but doesn’t convert? (Because these completion actions are on the custom redirects, not the form).
That’s okay. Yes, they will still be getting their campaigns and lead sources updated. But you’re looking for channel participation here. You want to know where people are coming from so this data is getting you that in your reporting as one metric.
What you then will look at in addition to this to get a full picture are the submissions and views on the form/landing page. Adding completion actions on the form and landing page will help you get these metrics.
Create a Top Content Campaign Hierarchy
Now, what if you are using a few great content pieces for dozens of outlets and channels? A solution I use with many of my clients is what I call a Top Content Campaign Hierarchy.
Put all your content in Pardot. Create a custom redirect in Pardot for any content that’s hosted by a third party.
Each piece of content will be a child campaign underneath the Top Content Parent Campaign. Now you have one place for the design team to make updates to the content and it translates everywhere you use the Pardot generated link.
Lastly, add completion actions on the files and custom redirects that add the prospect to the proper child campaign. Use completion actions on the forms and landing page links to handle the source and which program they’re related to, similar to what we did above.
Is 1:1 The Only Way?
No, it’s not. You can use UTM Parameters within iframe forms and add Google Tag Manager to landing page templates and within thank you code to fill in items such as Lead Source. You can also add the API name of any Salesforce Pardot field after the iframe code of a Pardot form to fill in that field (which replaces using the completion actions). By doing this you can create global forms and landing pages instead of that 1:1 relationship.
What you lose by doing this is the ability to create custom completion actions and achieving attribution upon conversion starts to get tricky. Your conversions more than likely will be all lumped together unless someone on the team has advanced javascript skills and has created routing to multiple child campaigns based on a referring url.
Now, if you are a digital marketing heavy org and are less declarative this may be a good solution for you. However, if relying on a digital team every time you want to create a program or edit a flow in Salesforce Pardot is a nuisance, then the global way will become very challenging.
I tend to recommend the 1:1 method I outlined above. The internal build can seem cumbersome, but the ability to make changes on the fly and having the control to shift if your business process shifts is very valuable long term. The integration with Salesforce and the ability to get attribution is very powerful. You’ll see the fruits of your labor in the reporting.
Reporting
When using the 1:1 with the hierarchy method, you have the ability to create one Dashboard that never goes out of date. Every time you add a child campaign to the parent and associated assets, it will be automatically added to your reports when you use the parent campaign as a filter.
Pardot LifeHack - Enable Engagement History Custom Reports to Boost Reporting and Attribution
With Engagement History Reporting you can create a component with a table that shows landing page views versus submissions along with email autoresponder opens, clicks, sent, etc. specific to each campaign and form. This is all in Salesforce Lightning. I suggest starting here, then as you collect data and streamline your process, you can edit these components for more robust reporting.
Pardot LifeHack - Add Global Filters to your Salesforce Lightning Dashboards
You can add global filters that sort by Campaign Start Date, Created Date, or other custom field metrics that suit your business needs. And now with Campaign Influence you can see the conversion rate on each form as it relates to Opportunities won. Winner-Winner Chicken Dinner.
For icing on the cake you have completion actions that have filled in Lead Source, Last Touch Lead Source, Campaign Member Status and maybe have even increased score and created a task for the owner of that lead or contact to follow up.
In Closing
This is a juicy topic and I offered a comprehensive solution and there are definitely more out there. Choosing between a 1:1 relationship and global forms is a conversation that should start internally and with careful consideration of your business and marketing processes, internal abilities and reporting needs.
Have comments or further suggestions on the 1:1 vs global form conundrum? Add your two cents or suggestions in the comments or on Twitter and Linkedin with the hashtag #TrailblazerTalk.
Until next time...stay hydrated #Ohana.
Go-To-Market Leader ?????? Results Fanatic ?? Book Lover ??
2 年I’m concerned about the scalability of this many forms. We recently needed to add a field to every form for GDPR compliance and it was a huge hassle. I can’t imagine if every piece of PDF content had 2-3 (or more!) landing pages and forms associated with it. How do you scale this well?
Programma- en innovatie manager. Help me KWF te sponsoren via mijn Alpe d'Huzes deelname.
3 年So you have completion actions fill out fields on your prospect when they hit a custom redirect. Is that correct? Would your method work then for a first ever form submission? because, as long as Pardot has no email address yes, the person who hits the custom redirect is a vistor and not a prospect. And it does not fire completion actions on visitors. (This might be something "European" though, because we have very strict cookie limitations and less than half of visitors opt in for a marketing cookie. So i'd have to assume no visitor has a cookie, so I would need to make a process that is indepenedent of cookies.) In short: I'm looking for a way to track, through which custom redirect a vistor came that submitted my form, even if the custom redirects points to a blog and the vistor goes form blog to form and then submits form. Clicks on the custom redirect I can see. Visits to the form and submissions I can see. I just cant see which custom redirect brought the visitor to the site where she or he surfed around and then submitted the form. So I cant attribute custom redirects (sources) to conversions reliably. Any thoughts (keeping in mind the presumption no-one accepts a marketing cookie)?
Ops Director & Co-founder at SF Ben, Salesforce Marketing Champion.
5 年Hi Jennifer! This is juicy indeed, I love it - especially as these are questions that come up time again. Thanks for sharing with everyone, you have a great way of explaining. I had a couple of questions on updating Lead Source/Last Lead Source fields. In the section "Add Completion Actions to the Custom Redirects”, you have added Lead Source and Last Lead Source field updates as Completion Actions. If these update every time, how will the true values be retained? Once a Lead Source has been filled in, surely you don’t want that to be changed? Last Lead Source you said is for the value 'right before an Opportunity was created’, but what if a prospect that exists as a contact fills in the form? Final question ?? how does this field work in conjunction with Campaign Influence?? Sorry if I'm missing anything obvious or have misinterpreted.? Thanks in advance,? Lucy
Senior Account Manager at Ignyto
5 年Great read ???? and insightful.