ClickFunnels UTM Tracking Integration

Track UTM parameters and campaign attribution with ClickFunnels UTM Tracking Integration and HandL UTM Grabber on WordPress.

Pass UTMs Through ClickFunnels Funnel Steps

UTM attribution overview

ClickFunnels UTM Tracking Integration only records UTMs that land on the checkout URL at purchase time. UTM Grabber keeps them in cookies on your site. This page explains how to pass that data through before the customer pays.

What to expect

ClickFunnels reads UTMs on the page URL, but they often drop off after an opt-in when the visitor moves to step two. UTM Grabber keeps values in cookies so you can push them into hidden fields on every step.

Steps

Setup

  1. Add custom hidden fields prefixed to avoid clashing with CF internals, e.g. handl_utm_source, handl_utm_campaign, handl_gclid
  2. Add UTM Grabber tracking code on your funnel pages (or your WordPress site that feeds traffic into CF)
  3. Use custom JS in CF to copy handl_utm values into those hidden fields before submit
  4. See ClickFunnels UTM docs for native URL tracking

Append UTMs with utm-out

UTM Grabber rewrites the link with cookie values. Details: utm-out class guide.

For webhook-based attribution after purchase, see Send ClickFunnels UTMs via Webhook.

Send ClickFunnels UTMs via Webhook

UTM attribution overview

This walkthrough covers sending full UTM Grabber data from ClickFunnels UTM Tracking Integration to Zapier, Make, or your own webhook. Handy when you need gclid, fbclid, first-touch fields, or custom params alongside the lead or order.

Start with the main ClickFunnels UTM Tracking Integration setup guide if you have not wired hidden fields or checkout links yet.

When a webhook makes sense

Native fields in ClickFunnels UTM Tracking Integration 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

  1. Create a Catch Hook trigger and copy the URL
  2. Run a test conversion with UTMs in the landing URL
  3. Confirm gclid, utm_source, and email (if present) show up in the payload
  4. Map fields into your CRM or spreadsheet

Parameter reference: Native WP Shortcodes.

Make users: see Make Integromat integration.