Paperform UTM Tracking Integration

Set up Paperform with HandL UTM Grabber to capture UTM parameters, GCLID, FBCLID, referrer, and landing page data in hidden fields for lead attribution.

How to Track UTMs in Paperform

UTM attribution overview

This guide explains How to Track UTMs in Paperform with HandL UTM Grabber. It helps you capture UTM source, medium, campaign, term, content, click IDs, referrer, and landing page data and keep the marketing context needed for accurate reporting across forms, bookings, signups, and sales.

First, create your hidden fields in Paperform as shown below:

Hidden Fields Screenshot

There are various methods explained here.

We'll use the most effective one: Dynamic Auto Filling.

Next, use the JavaScript below and copy-paste the code where you want your form:

<div data-paperform-id="kxjpum0m"></div>
<script>
document.addEventListener("DOMContentLoaded", function() {
    const params = getAllHandLUTMParams();
    const queryString = jQuery.param(getAllHandLUTMParams());

    const form = document.querySelector("[data-paperform-id='kxjpum0m']");
    if (form && queryString) {
      form.setAttribute("prefill", queryString);
    }

    // Now embed the Paperform script
    var script = document.createElement('script');
    script.src = "https://paperform.co/__embed.min.js";
    document.body.appendChild(script);
  });
</script>

Make sure you change the form ID in both places in the script according to your form.

Once done, test it to ensure the parameters appear in the result section of the form:

Result Section Screenshot

Send Paperform UTMs via Zapier or Webhook

UTM attribution overview

This walkthrough covers sending full UTM Grabber data from Paperform 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 Paperform guide.

When a webhook makes sense

Native fields in Paperform 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.