• News
  • Startups
  • Marketing
  • Ad Campaigns
  • Tech & Tools
  • How-to Guides
  • Insights
  • Culture & Media
Saturday, May 17, 2025
  • Login
Digital Boom
  • News
  • Startups
  • Marketing
  • Ad Campaigns
  • Tech & Tools
  • How-to Guides
  • Insights
  • Culture & Media
No Result
View All Result
  • News
  • Startups
  • Marketing
  • Ad Campaigns
  • Tech & Tools
  • How-to Guides
  • Insights
  • Culture & Media
No Result
View All Result
Digital Boom
No Result
View All Result

How to Capture UTM Parameters in Webflow Forms?

Ahmed Maher by Ahmed Maher
June 17, 2022
in Guides & Tutorials
2
A A
How to Capture UTM Parameters in Webflow Forms?
43
SHARES
213
VIEWS

Any sustainable business growth must identify which parts of the business strategy generate the best customers with a positive ROI to focus on the marketing channels that work and ditch those that don’t.

Though if you can’t measure which marketing campaigns generate leads and customers, how will you know where to focus your time and resources?

B2B and other businesses that rely on lead generation can easily measure marketing performance by tracking the UTM source of every lead in your CRM.

This post demonstrates how to capture UTM parameters in Webflow Forms and send that data in the form fields to display them inside your CRM for reporting.

Also read: how to reject non-business emails from Webflow form submissions?

Capture and push UTM to any form in Webflow + store parameters in a cookie when users move from one page to another

Copy-Paste Before body (Per page or entire website)

The code structure:

  1. Get URL parameters.
  2. Get Webflow form elements by jquery class selector and set the value to this UTM param X.
  3. It’s useful to store UTM params inside a cookie (To keep the UTM also if the user goes from page X to Y).
<!-- JS Cookie Library -->
<!-- Source: https://github.com/js-cookie/js-cookie -->
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

<!-- UTM Cookie Tracking for Tribal -->
<script>
const my_utmParameters = ["utm_source", "utm_medium", "utm_campaign"];

// Get all URL parameters as an object
function getAllUrlParams() {
  return Object.fromEntries(new URLSearchParams(location.search));
}

const cookieExist = Cookies.get('Lead');
const getAllUrlParamsObj = getAllUrlParams();
const getAllUrlParamsJSON = JSON.stringify(getAllUrlParamsObj);
const isEmpty = jQuery.isEmptyObject(getAllUrlParamsObj);

// Case 1: UTM parameters exist, cookie does not exist
if (!isEmpty && cookieExist === undefined) {
  console.log("Case 1 - Parameters found & no cookie exists. Creating cookie.");
  createLead();
  setUTMformValues();
}

// Case 2 or 3: UTM parameters exist and cookie exists
if (!isEmpty && cookieExist !== undefined) {
  const isSame = isUTMEqualToCookieValues();

  if (!isSame) {
    console.log("Case 3 - Cookie exists, but with different UTM values. Resetting cookie.");
    Cookies.remove('Lead');
    createLead();
    setUTMformValues();
  } else {
    console.log("Case 2 - Cookie exists with matching UTM values.");
    setUTMformValues();
  }
}

// Case 4: Cookie exists, no UTM parameters on the page
if (isEmpty && cookieExist !== undefined) {
  console.log("Case 4 - Cookie exists but page has no UTM parameters.");
  setUTMformValues();
}

// Create the cookie with UTM parameters
function createLead() {
  const lead = {
    parameters: getAllUrlParamsObj
  };
  Cookies.set('Lead', lead); // Optional: { expires: 2 } for 2-day expiration
}

// Compare UTM parameters from URL and cookie
function isUTMEqualToCookieValues() {
  const storedUTM = JSON.parse(cookieExist).parameters;
  for (const param of my_utmParameters) {
    if (storedUTM[param] !== getAllUrlParamsObj[param]) {
      return false;
    }
  }
  return true;
}

// Populate UTM fields in Webflow forms
function setUTMformValues() {
  const emptyParamFallback = "null";
  const leadParams = JSON.parse(Cookies.get('Lead')).parameters;

  for (const param of my_utmParameters) {
    const utmNodes = document.getElementsByClassName(param);
    if (utmNodes.length > 0) {
      for (let i = 0; i < utmNodes.length; i++) {
        utmNodes[i].value = leadParams[param] || emptyParamFallback;
      }
    }
  }
}
</script>

Populate UTM parameters in a hidden field inside the form

To do that, insert an embed element inside the form, then add the following javascript code.

<!-- UTM Hidden Fields for Webflow or any HTML Form -->
<input type="hidden" class="utm_source" name="utm_source" placeholder="utm_source">
<input type="hidden" class="utm_medium" name="utm_medium" placeholder="utm_medium">
<input type="hidden" class="utm_campaign" name="utm_campaign" placeholder="utm_campaign">

You can repeat the second step in any form across your website, and you will receive UTM parameters from your marketing campaigns or affiliate links inside your form submissions.

Credit: Siton_Systems

Ahmed Maher

Ahmed Maher

Editor in Chief, focuses on marketing trends, educational content, no-code web development like webflow and framer, marketing tips and growth hacking tactics.

Related Posts

How to include current URL in a Webflow form?
Guides & Tutorials

Include current CMS item URL in Webflow forms

November 14, 2023
221
How Positive Thinking Can Turbo Charge Your Career
Guides & Tutorials

How Positive Thinking Can Turbo Charge Your Career

July 5, 2023
205
8 Mind-Blowing Websites to Boost Creativity You Probably Didn't Know Existed
Guides & Tutorials

8 Mind-Blowing Websites to Boost Creativity You Probably Didn’t Know Existed

July 4, 2023
202
How to Copy and paste between devices from your Mac/iPhone
Guides & Tutorials

How to enable copy and paste between Apple devices?

November 24, 2022
202
How to increase the time limit to unsend emails on iPhone?
Guides & Tutorials

How to increase the delay time to unsend emails on iPhone?

September 19, 2022
202
10 hidden settings in iOS 16 that you need to try today
Guides & Tutorials

10 hidden settings in iOS 16 that you need to try today

September 19, 2022
202
Please login to join discussion

LATEST

Google Updates Its Iconic "G" Logo for the First Time in Nearly a Decade
Creative & Design

Google Updates Its Iconic ‘G’ Logo for the First Time in Nearly a Decade

by Ahmed Maher
May 16, 2025
323
The Evolution of Influencer Marketing: From Royal Endorsements to Social Media Powerhouses
Marketing

The Evolution of Influencer Marketing: From Royal Endorsements to Social Media Powerhouses

by Ahmed Maher
May 15, 2025
46.1k
How to Change Where Screenshots Are Saved on Mac (And Master Every Shortcut)
Productivity

How to Change Where Screenshots Are Saved on Mac (And Master Every Shortcut)

by Ahmed Maher
May 15, 2025
60.1k
Inside Radi Farms: The Agritech Startup Reshaping Egypt’s Food Supply Chain
Startups

Inside Radi Farms: The Agritech Startup Reshaping Egypt’s Food Supply Chain

by Ahmed Maher
April 7, 2025
773
Anthropic Launches Web Search for Claude AI Assistant
Tech & Tools

Anthropic Launches Web Search for Claude AI Assistant

by Ahmed Maher
March 20, 2025
205
  • Partners
  • Privacy Policy
  • About us
  • Contact us

© 2025 Digital Boom, Inc.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • About us
  • Become a Digital Boom Author
  • Checkout
  • Checkout
  • Contact us
  • Contributing Writers
  • Digital Boom Home
  • Digital Tools
  • Join us
  • Live News Headlines
  • Login/Register
  • Login/Register
  • My account
  • My account
  • Partners
  • Plans
  • Privacy Policy
  • Staff
  • Terms
  • Terms of Use

© 2025 Digital Boom, Inc.

This website uses cookies. By continuing to use this website you are giving consent to cookies being used. Visit our Privacy and Cookie Policy.