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:
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:
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
- 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.