I feel like I'm missing something important with this. We have added URL parameters to all links in all emails that we send from Marketo. Umm, how do I track this? There's not a lot of forms to be filled out from our email programs, so how do I get this tracking information into the lead records? Why is there no obvious trigger or hidden field update in smart campaigns? Or is there, and I'm completely missing it?
Do you use SFDC and Campaigns? I actually added custom fields on the Campaign Member object to capture UTM codes. That way we can run Campaign with Lead reports and the UTM codes identify exactly where the leads came from in addition to tracking the larger activity. As far getting the UTM values to populate on the Campaign Member object, I wrote about my process here: https://nation.marketo.com/ideas/1063#comment-18114
I have custom fields built for lead and contact. Our SDR team actually use "Last Lead Source" in their list views for an easy way to sort their follow up priority.
I get the process you describe in the article, but what is triggering Marketo to store the UTM values (besides Form Fills)?
Sorry, I did not read your original post close enough and I see that you're looking to track links clicked in a email that don't necessarily direct to a form. As you've pointed out, my solution assumes you're using form fills as the trigger. I'll do some brainstorming and will post back if I think of any solutions.
Emily, you can use multiple methods to populate fields from query params without a literal form fillout:
 Use a Querystring Contains constraint in a Visits Web Page or Clicks Link trigger and then a flow step. This is a bit more painful to build out because you have to hard-code the possible UTM codes, but you should be able to get it working.
 Hidden form post. It's actually quite an easy method to use and subverts some of the technical requirements of . But it does leave you with a Filled Out Form activity in the lead's log (name the form you use something like Hidden: UTM Logger to make it more clear).
 Webhook. Allows for robust crunching of inputs if necessary.