Hi Guys,
Does anyone know of a good permanent way to record UTM parameters when someone is filling in a form?
Because UTM parameters are stored at a lead level, they are overwritten every time a person fills in a form.
I have created static lists at an individual program level and then smart campaigns that throw people into different lists depending upon their utms, but this is unmanageable when you have numerous banner adverts running on 6 or 7 websites as well as social posts etc. I can't create dozens of list in every program we are running.
Thanks,
Gerard
Solved! Go to Solution.
If your goal is just to have a permanent record of the UTM history for the lead, that is accomplished fairly simply using a UTM history field and token concatenation.
E.g., create a field called UTM history and then every time the UTM fields change, you have a campaign that adds the new values into the history field.
Trigger: Data value changes, utm_medium
Flow: Change Data value: UTM History, New value = {{system.datetime}}: {{lead.utm_medium}}, {{lead.utm_source}} [....] | {{lead.utm history}}
(Obviously replace with tokens for your field names).
The last token is the critical one as it brings in the current field value (all existing history) and lets you append the new values to it. There are lots of flavors of this approach in the community that you can find.
All this being said - I don't find this approach particularly useful for aggregate analysis and reporting. It is a neat way to see some of the touch history for a specific lead, but it is very difficult to do meaningful attribution based on that field. If getting an aggregate view of the impact of your marketing channels and assigning attribution is your goal, I would not use this approach.
Ideally, you would have a Marketo program (or SFDC campaign) for each utm_campaign value that you deploy, and when a person acquires that utm_campaign value they would get added to the program. Now you have a flexible and relatively scalable way of modelling the different campaigns that are represented by those utm_values and you can run attribution reports in Marketo or the analytics tool of your choice, as most of these are based on programs/campaigns.
It is also possible to create your history field as structured data (like a JSON array) using a tool like FlowBoost. The JSON can be ingested into an external database and analyzed more flexibly by a BI tool.
A lot depends on your what you are trying to do with the data.
---
Justin Norris | Perkuto
If your goal is just to have a permanent record of the UTM history for the lead, that is accomplished fairly simply using a UTM history field and token concatenation.
E.g., create a field called UTM history and then every time the UTM fields change, you have a campaign that adds the new values into the history field.
Trigger: Data value changes, utm_medium
Flow: Change Data value: UTM History, New value = {{system.datetime}}: {{lead.utm_medium}}, {{lead.utm_source}} [....] | {{lead.utm history}}
(Obviously replace with tokens for your field names).
The last token is the critical one as it brings in the current field value (all existing history) and lets you append the new values to it. There are lots of flavors of this approach in the community that you can find.
All this being said - I don't find this approach particularly useful for aggregate analysis and reporting. It is a neat way to see some of the touch history for a specific lead, but it is very difficult to do meaningful attribution based on that field. If getting an aggregate view of the impact of your marketing channels and assigning attribution is your goal, I would not use this approach.
Ideally, you would have a Marketo program (or SFDC campaign) for each utm_campaign value that you deploy, and when a person acquires that utm_campaign value they would get added to the program. Now you have a flexible and relatively scalable way of modelling the different campaigns that are represented by those utm_values and you can run attribution reports in Marketo or the analytics tool of your choice, as most of these are based on programs/campaigns.
It is also possible to create your history field as structured data (like a JSON array) using a tool like FlowBoost. The JSON can be ingested into an external database and analyzed more flexibly by a BI tool.
A lot depends on your what you are trying to do with the data.
---
Justin Norris | Perkuto
Justin pretty much nails it with the options available to deal with, IMO, a significant limitation of UTM support in Marketo. While I like Justin's second approach (we also have history fields for each of the 5 UTM parameters - along with a complete history field for when all are used together), even that's not scalable. Here are a couple of existing discussions:
Are utm parameters stored at the program level?
Re: Save utm parameters per program
And embedded in this Idea:
I agree with you Dan Stevens, once you get into modelling the relationship between offers and channels driving traffic to those offers, programs become harder to work with. I typically gravitate to solutions outside Marketo for that requirement or use a master offer program that syncs to one of multiple CRM campaigns representing the offer/channel combination.
I like Bizible's "Touchpoint" data model as a more elegant way of representing this. (Note - Bizible is available for Dynamics now, curious if you have checked that out?)
I'm hopeful that Marketo program-level lead variables will make it onto the road map one day.
Hi,
Just to provide more context. We are currently in the process of setting up tracking utm's in Salesforce and that will hopefully fix a lot of the issues. Unfortunately, although this is easy to do and I actually set it up and tested it in an hour, I am not responsible for CRM and in a large organisation the wheels have to turn before anything official can happen; which means its 2+ months away. We are also creating the UTM history fields that will log the first time sign-up utm's so we have a permanent record of the traffic source that drove them to convert.
The issue I'm trying to solve at the minute is that Marketing managers are wanting to review their program (Event/Webinar) a week or two after it has finished. They want to analyse the traffic sources etc and because this is at the lead level its not accurate anymore. Sometimes a lead could sign up for an event and then the next day sign up for a webinar or piece of content and the utm's are overwritten. I really need a way to store the utm's at a program level so that when a marketing manager wants to review they can.
I'm really just checking encase there is something simple that I am missing as I feel this is a feature that should definitely already exist.
Thanks,
Gerard
Sounds like you are doing the right thing in setting it up in SFDC. Not sure what setup you are using, but one sensible approach is to stamp the UTMs onto the campaign member object from the lead/contact when a person is added to the campaign. This will preserve the traffic source associated with the signup even as the person fields get overwritten later.
There are some gotchas in this (probably don't want UTMs for a previous visit to get credit for subsequent direct/organic visits that lack UTMs for example) but overall the approach will satisfy your marketing managers' requirements.
The only downside to it from my perspective is that you don't have a discrete campaign representing the traffic sources in order to add a cost and calculate ROI.
Since we are on MS Dynamics - and Marketo doesn't sync to the campaign object in MSD - this isn't possible for us. So we're limited with the options that you stated earlier. As you can imagine, given how online/social advertising is becoming a growing channel for us (since the email channel will be limited once GDPR becomes mandatory), extensive UTM capability is one of our most sought after requests in Marketo.
This article may help as it is related to Justin's response.
Marketing Attribution Setup Checklist - Marketing Rockstar Guides
Hi Guys,
Thanks very much for your input on this. As Dan Stevens said, I guess it boils down to Marketo providing a more extensive built in solution for this in the future.
Thanks,
Gerard
Check out this Javascript that captures both first touch and last touch UTM params:
https://github.com/yanirclsr/MarTech/tree/master/UTM-Tracking