Tracking lead sources in GoHighLevel is incredibly useful if you can actually see where your leads are coming from. With just a few tweaks, you can pass UTM parameters like utm_source, utm_medium, and utm_campaign into your GoHighLevel forms and store them directly inside each contact record. This gives you a clear picture of what’s working so you can optimize your ad spend, funnels, and campaigns with confidence.
Prerequisite
Before you dive into this tutorial, make sure your website or landing page is set up to preserve UTM parameters. If you’re using a dedicated landing page with a form on it, you may not need to do anything extra. But if users click around to different pages before converting, you’ll want to follow my Persistent UTM Tracking Guide to keep those parameters intact. Once that’s done, I’ll walk you through how to capture that UTM data inside GoHighLevel forms, pass it into custom fields, and connect it directly to each new contact so you never have to guess where a lead came from again.
How to Implement
Step 1: Create UTM Custom Fields
Log in to your GoHighLevel account and navigate to the Settings page
In the left-hand menu, click Custom Fields
In the top right-hand corner click New Folder
Name the folder Attribution
For the object type, select Contact
Now within that folder click Add Field
Choose Single Line and click Next
Name the field
utm_sourceMake sure the group is set to Attribution
Click Save

Repeat steps 6–10 for the following UTM parameters (or just the ones you plan to track):
utm_source(we created this one together)utm_campaignutm_mediumutm_term
Step 2: Add Hidden Fields to Your Form
Go back to your GoHighLevel homepage
On the left-hand menu, click Sites
In the top navigation, select Forms
Find the form you want to use and open it in the editor
In the form builder, go to the Custom Fields tab
Locate the Attribution group
Drag each UTM field into your form
Set each one to Hidden so users don't see them
Click Save 🎉

That's It
GoHighLevel will automatically populate those hidden fields with UTM values, as long as the parameter names match the field names exactly. Once a lead submits the form, their contact record will include all the UTM data passed through the URL, giving you clean, reliable attribution.
