I was recently interviewed by Salesforce for the 360 Blog’s 13 Ways Revenue Leaders Can Drive Growth in 2022.Though what the author chose to include was ultimately about artificial intelligence, I think about Revenue Operations, or “RevOps” more and more about my own business these days, and how cross-departmental alignment can drive growth for Forcery’s clients.
RevOps is a relatively new professional discipline. It’s a novel way to think about operations, technology and organizational hierarchy in a holistic way. You may notice very successful sales managers or hands-on financial professionals taking on titles like “CRO.” This is fairly modern innovation within the C-suite. At its core though, RevOps is all about alignment, and identifying efficiencies across teams, systems and processes that contribute to overall company revenue. RevOps the barriers between the artificial siloes created around different tools, workflows and teams.
RevOps builds cross-disciplinary efficiency
My resolution this year is really generate a deeper understanding and improve our end-to-end customer lifecycle, and double down on Revenue Operations. I want to at our revenue funnel holistically, all the way from lead generation to sales to customer success. Teams don’t always speak the same language, and often aren’t motivated by the same KPIs. Marketing, Sales and Customer Service success can be interpreted as totally different things in an organization. This can cause cross-departmental friction, internal inefficiency and limit the earning potential of business functions working towards a common goal.
RevOps for Teams:
As a practitioner of marketing automation primarily as a MarTech-minded Salesforce consultant– I talk a lot about aligning marketing and sales. In practice though, I see company initiatives often siloed across departments, especially in business-to-business (B2B) enterprises. We may invest in marketing initiatives and spend a of human or monetary capital measuring marketing attribution. Or, we might do the same thing around sales, building out sales cadences and measuring performance strictly on Sales performance metrics. Similarly, customer feedback can also exist in a vacuum, with companies measuring CSAT or NPS scores as a standalone metric of business success.
However, each of these initiatives represents only one facet of performance, which isn’t necessarily aligned with success metrics of other teams. Some companies still define marketing success by “reach,” or impressions (the number of times an ad is viewed), and other firms by a conversion. The definition of a Marketing “conversion” might only be a subset of Sales “leads.” Sales may not care about conversions, as they may be skewed by promotions, discounts, contest or other Marketing-motivated levers. Marketing might only care about Sales Leads if they can tie them back to Marketing efforts (which salespeople are rarely incentivized to do).
Operations, assets and tech tools naturally begin to pull in their own direction, but business success is a sum of its parts.
Similarly, Customer Success teams might think that some Marketing or Sales efforts are counterproductive to customer “satisfaction.” Marketing and Sales often over-expose potential customers to too many touch points. While these practices may be positive levers in a Marketing funnel or a Sales pipeline, they can diminish customer loyalty and lifetime value (LTV), reducing potential profit and growth.
RevOps Technology:
I think the biggest disconnect that Revenue Operations can solve is through technology platform. Data is siloed by the platform used as well as the team it support. Marketing may be operation out of 1st party platforms (think analytics, advertising and social tools), Sales out of a CRM, and Customer Success out of an experience management platform, all without a single, centralized platform or unified definition of success.
Just as with teams, different tech definitions of success create inefficiency. An Analytics platform might measure a customer interaction one way, a CRM might use a different method to measure the same touchpoint, and an accounting tool have a third definition for this as well. Saas technology tools notoriously add features, and try to eat into market-share of adjacent businesses. As a result, they don’t easily integrate with one another.
If you’ve tried before, getting analytics data into a CRM and in to an ERP or accounting tool is notoriously hard. Even with the proliferation of different data integration services and tools, every businesses single-source-of-truth will be different. For example, how do you contrast an email open rate’s influence on the number of times a customer makes a purchase? Aligning these metrics can prove daunting. And yet, standardizing success metrics between technologies is a core component of Revenue Operations. Deal Acquisition cost, lifetime value (LTV), customer satisfaction + loyalty (measured by CSAT and NPS scores) are all quantifiable KPIs, and they must be standardized across all technologies and assimilated into all business functions.
RevOps Resolves a House Divided
As companies grow, the division of labor requires breaking up business functions in to different processes and teams, supplemented with different kinds of tools. However, this inevitably creates a divide. As teams and tools grow, they no longer speak the same language. Furthermore, the customer’s own journey becomes a disjointed and potentially unfulfilling process.
Revenue Operations tracks customer experience across the entire lifecycle of a prospective opportunity, and facilitates communication between support, sales and marketing, tied back to how each team actually operates, and efficiently contributes to revenue across that lifecycle. RevOps may sound intuitive, innovative or obvious,. But to actually reap alignment benefits, significant independent resources should be allocated specifically for Revenue Operations.
Why UTM Parameters in Pardot for Marketing Attribution
This article series is about Salesforce Pardot attribution using UTM parameters. We’ll first discuss closing the loop between the marketing to sales cycle, not in terms of customer outreach or a buying journey, but in terms of hard data, and truly understanding Return on Investment (ROI). And then we’ll talk about how UTM parameters are the link between top of funnel and the deal, and Pardot forms, landing pages and other digital assets can be configured to capture UTM parameters and align analytics tools and tagging strategies with Pardot marketing automation.
“The digital landscape is more crowded than ever, and the customer journey has become more complex“
Digital Engagement: A Complex Journey
So when we talk about Pardot, we typically think “Email”, as Pardot is functionally largely an email marketing automation tool. However, as a consumer I can’t remember the last time I ever bought a product or acquired services just because of an email. And I think this goes for every different other channel as well. I might look at email, but then I’ll read a review… Buyers might conduct a google search and end up on a vendor’s website, or maybe fill out a form on a social media profile.
As a marketer, I’ve been working with multi-channel marketing strategies, marketing infrastructure and media buying for most of my career, and the sheer number digital top of funnels channels have grown to be ever more complex as well. Most mature companies will use a mix of Google Ads, SEO driven organic traffic, and email newsletter campaigns. Traditional advertising has exploded into texting, into conversational marketing and chatbots, to more complex social media marketing, or serving dynamic or programmatic ads across any new number of sites…
And while multi-channel strategies have become easier to implement and manage with cross-platform and integration tools, there is often ton of confusion as to where leads actually came from after deals ultimately close.
“There’s still a lack of understanding exactly what a lead is, and marketing often pushes off attribution as a sort of IT task.”
Sales and Marketing work from different data sets
Marketers start at the top of the funnel, and push to establish KPIs as far down as possible, but quite often that isn’t too deep, and we often lose granularity as soon as leads are pushed into a CRM. As a marketer, throughout most of my career I’ve patched together multiple different analytics softwares, from GA for website traffic to GAds and FB Ads Manager for Ads, to Search Console + Moz for Organic analysis, to CrazyEgg and Optimizely for UX, and marketers often then try to push all of this into yet another business intelligence (BI) tool, like Google Data Studio or Tableau to make sense of this information, trying to look down the funnel.
Digital Marketers traffic in “goals”, “website conversions” and “leads”
Marketers look at the funnel from top down, using a whole slew of various analytics tools to see as far down into the funnel as possible
Tools include GA, first-party ad platforms or ad desks
Metrics include CPM, CVR, CPA, but there is rarely consensus between firms about what an actual lead isbetween different firms
Salespeople however- they look at customers from the opposite perspective. Sales managers, Rev Ops and executives typically start at a closed deal and work their way from the bottom up, attempting to establish methods or patterns by reverse-engineering successful sales cycles. They care about ROI, but the further up in the funnel they look, the murkier that picture becomes. How do we measure the impact of user experience or a facebook post on a particular sale?
Salespeople and executives deal in touchpoints with customers
Exec and sales understand the funnel from the bottom up, as it relates to a closed deal
Tools are CRMs, Accounting Platforms, BI Tools
Metrics are cost per customer, ROI
Fundamentally, the data that’s captured by digital marketers, and the KPI’s we use to measure digital marketing campaign performance all too often DOES NOT MAKE it into the CRM. The website where a prospect originated, the digital ad campaign, the channel, even the keyword gets discarded as soon as a lead is “captured” and stored in Pardot / Salesforce. Now there’s a reason for that, and we could spend another hour talking about privacy and where things are going with cookies and consent, but for the purposes of this discussion, the information gets lost.
There are a couple big issues… I see a lot of firms either rely on a manual process to to assign the source, either a salesperson filling this out- or often a “How did you hear about us” dropdown on a website… which I’m flabbergasted when I see CMO’s make marketing strategy decisions on inaccurate data (b/c imo buyers or liars).
OR, the other challenge is that attribution is done in Salesforce for one specific channel. For example, a number of event or webinar tools have great attribution tools that work with Salesforce campaigns. Similarly, there is a way to pass a variable along with destination urls for Google Adwords called the gclid or “Google click identifier”, but it only works for that specific Google Ads source. Some companies I work with use Zapier for integrations (like Facebook lead forms for example), which works great (and is an awesome Pardot tool btw).
BUT, in each of these three examples we’re kind of hacking the system to build attribution for one specific source, and there’s no way to measure the whole funnel. As soon as we try to start measure things side by side, we’re comparing apples to oranges to empty buckets where fruit should be… Ultimately the biggest problem is there is no standardization between channels.
Salesforce was not built as a Marketing tool
“There has long been a disconnect between Analytics and CRM Platforms“
Attribution has long been a manual or channel-specific exercise
Lead Source is often filled out manually by Sales, not automatically a function of a marketing initiative
Native integrations are channel specific (such as many event management platforms) or nonexistent
Instead, there is a platform-specific method of importing “gclid” parameters into Salesforce
Salesforce Campaigns membership for multichannel is marketing is challenging
If you’re an old school digital marketer, a lot of this will be old hat, but I want to introduce you to UTM codes, which create a thread from lead generation and sew the fabric of attribution all the way to the deal, closing the loop in our marketing > sales cycle.
UTMa are NOT a new technology; but in thinking of a martech stack, we have lead generation platforms, we have we CRM and our analytics stack, and it’s essential that they’re all working off of the same information.
Close the loop in your customer journey lifecycle
UTM parameters connect the dots by passing marketing information, (almost like “marketing metadata”) along with a website conversion, to a prospect in Pardot, to a lead, to a contact, and a won opportunity in Salesforce, fundamentally allowing full visibility into the funnel from the top down, to the bottom up, and true alignment between marketing and sales/executive management.
Used by Markers to track the effectiveness of digital advertising campaigns
Introduced by Google Analytics predecessor “Urchin” Analytics
Parameters identify:
Referring campaign
Attributes to the website session until the window expires
Parameters may be parsed by analytics tools to populate reports
Elements of an Urchin Tracking Code Parameter
URL = The destination URL of your landing page
Source = The referring web source, typically the website or app that sent the visitor or click
Campaign = May correspond to Salesforce Campaign + Pardot folder, or be a digital advertising campaign AND Should be descriptive and sortable (Date and label at minimum)
Medium = A predefined group of channel “buckets” (i.e. Social, Organic, Paid, Email, Affiliates)
Content (optional) = Typically ad variation
Term (optional)= Keyword
So now I want to talk about what goes into a UTM code, and again, fundamentally we’re talking about creating a URL with bits of text appended to the end to pass information onto our website.
After we identify the destination url where we’re sending visitors, the first thing we want to think about is a taxonomy of naming conventions, as UTMs will be very valuable for reporting, but will also get totally out of control if we’re not organized.
We’ll want to familiarize ourselves with what available parameters there actually are, beginning with the source. This is typically the website sending traffic, but we’re writing these variables, so we can really define anything we want. If we look at large volume ad networks, we’ll see this information hashed for privacy, which is then humanized on the other end.
A campaign is typically the digital initiative we’re running, but this is going to very important if we want to align with our Pardot folder structure and Salesforce campaign *(especially if we’re using Connected Campaigns), but we’ll talk a little more about that later.
Mediums are channel groupings of major buckets of media. And content and term aren’t really used that much, unless we’re running a lot of digital media, and as Google has their own way of tracking keywords.
Campaigns Naming Conventions
I’ve had a lot of success aligning utm campaigns with Pardot folders and Salesforce Campaigns, and I typically advise that campaigns are named to be sortable, reportable and to descriptively indicate the purpose and details of a campaign.
And by descriptive, we can keep it simple, but I prefer to have as much information in a campaign, identifying first the launch date, the brand or service being marketing, the platform or ad type, the goal of the campaign, who is the target audience, all so if I see that campaign name later, I know exactly to which campaign it refers.
Reportable
Use unique search strings wherever possible
Sortable
Set standards for order, use of punctuation and case tense
Descriptive of Initiative
The date, targeting and intent should be apparent or a least decipherable from the name of a campaign
Resources for creating URLS
We can learn to code a utm link pretty easily, but there are a couple of free, widely used tools out there for coding UTMS. Google and Raven Tools (another analytics platform) use UTM Builders that we can use to just plug in values and spit out a code that we can put as our destination url, plug into bitly, or use in a custom redirect on a 3rd party link.
Now… not every company has this issue; and there are a number of platforms that sort-of solve for this disconnect, but there’s still no guarantee that any of these will 100% standardize all marketing attribution without an underlying UTM solution.
Datorama is in my opinion the coolest recent Salesforce Acquisitions, which comes with preconfigured connectors to most major marketing outlets, allowing we to pump data and elements of attribution from all sorts of marketing platforms into a single place to visualize and analyze.
Google Analytics 360 offers a native integration with Marketing Cloud (though not currently Pardot), which sounds pretty cool, though I’ve heard the data types don’t always line up. The integration is also free, but like Datorama, it’s far from cheap.
There are also some pretty cool AppExchange products out there, like this platform called gaconnector, which creates its own cookie (based on the old Urchin Script), that captures UTMs and a whole bunch of other user data, but with GDPR, CCPA and all sorts of new browser restrictions, I’d be hesitant to become reliant on a smaller platform.
And lastly, if we have significant development resources, we can invest in coding we own first party cookie to basically do the same thing. Instead of Google or Pardot dropping a cookie, we can hypothetically create we own first-party cookie..
But none of those are why we are reading this post; we’re going to talk about how to use Pardot to capture UTM values and pass them into Salesforce.
How to implement UTM Parameters in Pardot for Marketing Attribution
So we’ve talked about the divide- we’ve talked about what UTM codes are and how to create them… Now let’s talk about how to configure Pardot, your forms and landing pages to capture these parameters, pass them into Pardot, and sync over to Salesforce, where you can run reporting all the way down the funnel from leads to closed won opportunities.
Step 1. Create fields in Salesforce and Pardot
The first thing you’re going to want to do is create, or have your admin create two custom fields in Salesforce, either on your lead or possibly your contact record if you don’t use leads. (*using this method you only need to create utm_campaign and utm_medium, and Source will feed the standard Pardot and Salesforce “Source” field) You’re also going to want to probably keep them hidden from page layouts, unless you want your end users to see this information. Then, you’re going to want to create and map those fields to the opportunity.
utm_source (optional)
utm_campaign
utm_medium
utm_content (optional)
utm_term (optional)
Step 2. Map fields in Salesforce to Pardot
Now, you’re going to go over to Pardot, and create those custom fields in Pardot on the Prospect record, and then map the Pardot fields back to the Salesforce fields. If you don’t see them show up immediately, don’t forget that sometimes you have to click the little refresh icon to pull in newly created fields.
Step 3: Add fields to Pardot Forms
Utm_xxx
Prospect Field
I.e. Source, utm_campaign, utm_medium, etc
Type
Hidden
Data Format
Text
Do not make field required!
The next step is we’re going to want to add those 3 fields as hidden fields on every form we want to track. We’re going to label the fields, choose the appropriate Prospect field (we may have created), choose “hidden” field as the type, and select text as the data format. A special note- MAKE absolutely sure you’re not requiring these fields, as if they’re hidden and required, if the prospect didn’t come from a utm tracked link, they will be unable to complete the contact form.
When we’re done, we should have three new fields on all of our forms. FYI, we can do this with form handlers as well, but we would need to add the hidden fields to our form handler and completed the next step we’re going to talk about, adding the javascript to our page. However, we might need to make some adjustments to the javascript to match the selectors we define within our form handler code.
Step 4: Copy the following javascript to landing page or form
The next step is a bit technical, but it’s pretty much copy paste, so even if we have no idea what this code means, we should be able to just copy the content. The code itself must be added in one of two places; within the landing page template, or my method; in the code section of the “below form” section of our form. Please also note If we don’t use the field names outlined in this tutorial, we might need to update the JavaScript to include the correct field names.
<script type="text/javascript">
// Parse the URL
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
// Put the variable names into the hidden fields in the form. selector should be "p.YOURFIELDNAME input"
document.querySelector("p.source input").value = source;
document.querySelector("p.utm_medium input").value = medium;
document.querySelector("p.utm_campaign input").value = campaign;
</script>
Click the arrow, and select View HTML code from the dropdown.
Copy the iframe code, and paste it into your web page source code.
Now, if we only use Pardot landing pages, we are done and ready for testing. However, many of us use embedded forms on our websites. As technically the traffic to an embedded form uses 2 separate websites (our website and Pardot’s hosted form), utm values can get lost along the way.
As a refresher, these are the steps we’ll need to complete, which may require access to our CMS, or to get in touch with your web developer, website admin or IT. We simply go to the form, click on the button that says View HTML, and copy that code, placing it wherever you want the form to live on your website.
Step 6: Modify iFrame adding ID and add JS linking
So as we’re technically talking two separate web pages here here (your standalone instance and the Pardot-hosted asset), we need to add some additional code to our website to allow us to pass the URL parameters from the parent page to the embedded Pardot iFrame form. Again, this gets a little technical, but we can simply copy paste the code below, and I typically instruct developers to copy this script before the closing body tag in our web pages HTML. And remember, this script needs to be on every page where a form lives, so it’s typically good to have this on every page.
We’re going modify the existing iframe code we copied on the step 5, and modify the existing website embed code to add an “id.” Here we’re using the id “myiframe” and we must use the same identifier in the iframe as we use in the JavaScript (in Step 6).
Step 8: Test that parameters are passed through at every step
The last thing we’re going to want to do is test to make sure the values are being captured and stored at every step. Make sure we go all the way thru, and if something is broken, look at our Pardot field mapping behavior, as well as our Salesforce Object mapping.
Once we’ve ensured everything is working, we’re ready for the fun stuff, and that’s reporting!!
UTMs Bridge the Gap
By passing UTM values all the way from advertising to our website through to Pardot and Salesforce, we finally have visibility into the marketing attribution lifecycle
Implementing UTM values opens up some incredible reporting in Salesforce, passing along dimensions (not only lead source, but channel, campaign, content and keyword) previously only available in Analytics tools, into our CRM.
Closing the Loop: UTMs connect the steps of a customer journey
If we add this strategy to Connected Campaigns, and Campaign Influence and maybe B2BMarketing Analytics, we start to be able to tell the full story of your customer journey.
And beyond just Salesforce, you can use UTMs in a variety of other places.
Use utms in your analytics platforms (i.e. GA reporting)
Segment UTMs in Pardot
Sales Cloud and Pardot Einstein predictive qualification
Salesforce reporting measuring ROI by channel, by campaign
By understanding how to leverage UTM analysis, we’ll become smarter and better marketers… by understanding campaign performance better than ever, we’ll be able to make better marketing decisions, drive more revenue to our companies, becoming more valuable as a marketers in the process.