HubSpot UTM Tracking Integration
Send WordPress UTM attribution from HandL UTM Grabber into HubSpot, including source, medium, campaign, content, term, click IDs, and referrer data.
How to Track UTMs in Hubspot Form
UTM attribution overview
This guide explains How to Track UTMs in Hubspot Form with HandL UTM Grabber. It helps you pass lead attribution into your CRM, email platform, or marketing automation workflow and keep the marketing context needed for accurate reporting across forms, bookings, signups, and sales.
Add UTM fields to your form
This is assuming you already created Contact properties (ideally under Web Analytics) and make sure you name them after HandL UTM Grabber properties (such as utm_campaign, utm_source, gclid, fbclid etc). See the full list here Native WP Shortcodes
Make sure the fields are hidden
Copy paste the form embed code
Add the following modifications
Simply add the onFormReady event as is
<!--[if lte IE 8]>
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2-legacy.js"></script>
<![endif]-->
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2.js"></script>
<script>
hbspt.forms.create({
region: "na1",
portalId: "{portal_id}",
formId: "{form_id}",
onFormReady: function(f){
f.serializeArray().map(x=>{
let cookie_val = Cookies.get(x.name)
if (cookie_val && cookie_val != ''){
f.find('input[name="'+x.name+'"]').val(cookie_val).change();
}
})
}
});
</script>
That's it! Your form will track the parameters and you'll get all the tracked parameters under submissions in Hubspot (in contact property for the contact)
Send HubSpot UTMs via Zapier or Webhook
UTM attribution overview
This walkthrough covers sending full UTM Grabber data from HubSpot to Zapier, Make, or your own webhook. Handy when you need gclid, fbclid, first-touch fields, or custom params alongside the lead or order.
For the primary setup, see the main HubSpot guide.
When a webhook makes sense
Native fields in HubSpot often stop at basic UTMs. A webhook lets you push everything UTM Grabber stores without trimming values or losing click IDs.
Thank-you page script
Paste this on your confirmation page. Swap in your Zapier or Make hook URL.
<script>
var qvars = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
qvars[key] = decodeURIComponent(value.replace(/\+/g, ' '));
});
qvars = Object.assign({}, (typeof handl_utm !== 'undefined' ? handl_utm : {}), qvars);
setTimeout(function() {
var data = new URLSearchParams(qvars).toString();
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', 'https://hooks.zapier.com/hooks/catch/YOUR_ID/YOUR_KEY/?' + data, true);
xmlHttp.send(null);
}, 1000);
</script>Full pattern explained in Triggering Zapier on Thank you Page.
Quick Zapier / Make checklist
- Create a Catch Hook trigger and copy the URL
- Run a test conversion with UTMs in the landing URL
- Confirm gclid, utm_source, and email (if present) show up in the payload
- Map fields into your CRM or spreadsheet
Parameter reference: Native WP Shortcodes.
Make users: see Make Integromat integration.