You can introduce tracking to understand where respondents come when filling out your forms. This tracking is known as a UTM parameter(s), and we have covered how to get up and running with these elsewhere on the academy - go check that out if you haven't already!

We'll use this guide to help you get values from your UTM parameter(s) into your CRM - useful for those of you who want to get all their data about responses and respondents in one place!

Step 1 - Check your forms are setup correctly

You'll need to link to a form from a page on your website, or use the latest embed code for forms to use this feature (we recommend using the javascript code for this!).

You cannot use the legacy embed code - sorry!

When hyperlinking to the form, or the page your form is embedded within, ensure that the URL contains the relevant UTM parameters so that these can be passed automatically into the response for you.


You can use the Google Analytics Campaign Builder to help you create the right parameters in your URLs.

Step 3 - Create hidden form fields to receive the data

Create hidden fields within your form to receive the data. You'll need to drag and drop parameters you wish to track, drag and drop hidden fields onto your form to receive this data.

Example; for utm_source create a hidden field labeled utm_source, with a template tag of utm_source.

You'll now receive data into this field on submission. As it is a hidden field, it won't be visible to those who are completing the form.

You can now use the integrations tab to pass these values into your CRM. View our academy article on how to integrate form fields.

Step 5 (Optional) - Collect UTM values from any page on your website

This step is optional, but can be handy. If you want to pass UTM values from across your website and not just form the page the form is on, you can do this by including some extra JavaScript on every page throughout your website.

var saveUTMtoCookie = function() {
var parts = location.href.substring(location.href.indexOf('?') + 1).split('&');
var data = {};
if (parts.length > 0) {
for (var i = 0; i < parts.length; i++) {
data[parts[i].split('=')[0]] = parts[i].split('=')[1];
for (var key in data) {
if (window.localStorage) {
localStorage.setItem(key, data[key]);
} else {
document.cookie = key + '=' + data[key] + ';max-age=86400;path=/';

window.addEventListener('load', saveUTMtoCookie);

You can either a) place this directly within the <head> of the HTML, or b) link to a separate file using the following (depending upon where it is located);

<script src="/path/to/gecko_cookie.js"></script>

There you have it, data from UTM parameters in your CRM! Well done!

Any questions? Feel free to start a live chat with a member of our support team or explore the rest of our academy at your leisure.

Did this answer your question?