What the heck are UTMs?

Whether you’re new to the digital marketing game or an industry veteran, you’ve likely heard a lot of fuss over this so-called “UTM” acronym. What are UTMs exactly? Well, they serve many purposes, but in summary:

UTM tracking codes help connect our marketing sources to our reporting tools so we can have improved accuracy in our attribution (i.e. what is working in our digital marketing?).

If you want a deeper understanding of how UTM tracking strings interact with tools like Google Analytics, I recommend checking out this article we wrote on UTMs and custom channel groupings. It’s super important to create a UTM definitions document and structure so all marketing teams are on the same page about how the tracking links are being built.

The Goal with UTMs & CRMs

The primary goal of bringing UTM data into your CRM or automation tool (Salesforce, Hubspot, Marketo, Pardot, etc.) is to add enhanced detail into where the contact came from, at least what source, channel, and campaign they engaged with in the session of their conversion. For example, if a new business lead was generated within our CRM we would want to know the following information:

  • Did this lead come from a Google ad? Email? Social ad?
  • Was this lead part of an account-based marketing (ABM) campaign or special promotion?

If we have a proper UTM system in place from our traffic source to our custom contact fields in our CRM, we’d be able to see that “Jane Smith” from XYZ company came into our system from facebook as part of a paid social ABM campaign.



These custom contact fields can help you with your marketing channel attribution within your CRM and give your company a better idea of which paid/owned sources are driving bottom-of-funnel results.

UTM to CRM Process Flowchart:

4 Steps for Getting UTMs into your CRM

Getting UTM data to flow into your CRM properly can be a bit of a chore, and depending on your website infrastructure, complex. There are different approaches to getting this to work, but at the core of things, just 4 general requirements that are consistent, regardless of which platform/infrastructure you have.

Step 1: Add UTM Strings to your Final URLs

UTM’s are the squirrelly little parameters at the end of target URls for enhanced Google Analytics tracking. While Google Analytics and CRM tools do their best to detect where the traffic came from (social, email, search, etc.) they often get things wrong. Using UTM parameters in your links allows you to explicitly tell Google Analytics and your CRM which channel to attribute the traffic/conversion to.

Most modern ad platforms will have built in settings for these UTM fields and allow you to build them out dynamically for each ad campaign/group/creative. Building your own custom UTM strings? Use UTM campaign URL builders like this or build a working spreadsheet in Google Drive.

While there are multiple parameters available for UTM tracking, the three required fields for our tracking are:

  • Source (utm_source)
    Where the traffic came from – mailchimp, facebook, google, etc.
  • Medium (utm_medium)
    What type of traffic – email, social, ppc, etc.
  • Campaign (utm_campaign)
    Which marketing initiative – newsletter, spring-sale-1999, etc.

Example URL with UTM String:

Step 2: Keep the UTM Parameters Persistent On-Site

Now that you’ve gotten your UTM strings squared away in your email programs and ad platform, you may think you’re good to go. Right? Wrong! You are all set from a Google Analytics point of view, but the goal here is to get these UTM parameters into your CRM so you can explicitly assign them directly to your contacts (i.e. Jane Smith).

By default, websites do not carry the UTM strings in the URLs throughout the session and only survive within the initial landing page view. What can be done? You have one of two options, both of which will require you to have a little bit of technical knowledge or support:

  1. Keep the UTMs persistent in the URL during the session with Tag Manager or a custom script on-site.
    This option is the easiest in our experience, but does not capture a wide attribution window and leaves slight risk for UTM/URL sharing. Nonetheless, this is the lightest lift from a technical point of view and works for most marketing teams.
  2. Capture the UTM values from the query string into a cookie and/or dataLayer variable for later use.
    This option is the most advanced and offers full-flexibility, though it definitely takes more development time and technical understanding. In addition, this most often needs to happen within the website code and is not as easy to pull off with Tag Manager.

Last note: Depending on the form embed/build method, the first option may not work. Please speak with your marketing operations and development resources to find the best approach for your site.

Step 3: Make the UTM Fields Available for Capture in the Form(s)

This part is typically the most straightforward. The forms need to be able to capture the UTM values. How is this done? Short answer: hidden fields.

Adding hidden fields to your form templates will allow you to pass the UTM values from the URL string or cookie (see step 2) and into the form values.

Step 4: Add Custom UTM Fields to your CRM Contact Template(s)

The last step is to ensure that the CRM contacts are able to accept the UTM field values and have them assigned. This is different from platform to platform, so consult your CRM documentation or expert to guide you through adding these UTM fields to your contact template!

Other UTM & CRM Considerations

Some modern CRMs like HubSpot have direct integrations with ad platforms like Bing, Google, Facebook, etc. that can expedite the UTM capture process. Each tool is slightly different, but the same general 4 steps above still apply.PRO TIP: Make sure you are not double tagging UTMs if you are using ad integrations.

UTMs help us better understand “last-touch” attribution for our leads. We also recommend that advanced marketing teams use a “full-funnel” attribution modeling approach in parallel with this to ensure that value is being assigned properly for each channel.

UTMs are nearly impossible to use with organic/direct channels. Ensure that you have appropriate auto-tagging and attribution for organic and direct traffic as well.