HLAI Experts

Guide · Attribution

Which source and UTM fields to add in HighLevel

Start with what GoHighLevel (GHL) already records: each contact gets a First Attribution and a Latest Attribution from its forms, surveys, bookings, chat and order forms. Add your own fields only for what those miss. In our builds that means a source field, a field for how the lead arrived, and utm_source, utm_medium and utm_campaign wherever paid or trackable traffic runs.

Rob EasonPublished

What HighLevel records without any setup

HighLevel keeps two attribution records on each contact. First Attribution is set at the first recorded touch and stays fixed. Latest Attribution updates as new interactions are recorded. Both sit in the activity area of the contact record.

They're filled by HighLevel's own capture points: forms, surveys, calendar bookings, chat contact capture and order forms. A supported external form can feed them too, through External Tracking.

To classify a visit, HighLevel reads the page URL and the referring domain. When neither carries anything useful, the visit is filed as Direct Traffic.

Where native attribution runs out

Native attribution describes the web visit that captured the lead. Leads that arrive another way, through an integration platform, an email that triggers a workflow, or a person typing them in, don't pass through those capture points. Check each route you use against the list above.

That gap is why our builds add a small set of fields. They sit beside native attribution and answer questions it can't. They don't replace it.

Native attribution covers the web visit. Your own fields cover every other route in.

The fields we add

This is our house set. It's a recommendation, not something HighLevel requires, and each field earns its place only if someone will report on it.

  • source: where the lead came from, in your own names, such as a referral partner, an event or a paid ad. On every contact.
  • source method: how the lead arrived. We use four values: native (a HighLevel form, booking or chat), integration platform, email trigger, and manual.
  • utm_source, utm_medium, utm_campaign: added when a paid or otherwise trackable source exists.
  • utm_term: added for Google search campaigns, where the keyword matters.
  • first touch time: added only when multi-touch attribution is part of the job. Skip it otherwise.

Setting it up

Look before you add. Most of the work is finding out which routes HighLevel already covers.

  1. Open Contacts, pick a recent lead from each source, and read its First Attribution and Latest Attribution.
  2. List every route leads take into the account, and mark which ones pass through a supported capture action.
  3. For the routes that don't, create the source and source method fields, and set them in the workflow or integration that creates the contact.
  4. Add the UTM fields only for sources whose links carry tracking parameters.
  5. For Facebook ads, use the paid-social parameters HighLevel documents. The source value is fb_ad, and the parameters are case-sensitive.
  6. Decide which reports read first touch and which read latest touch, and label them, so nobody compares one against the other.

Why a contact shows the wrong source

The usual cause is a link without tracking, or a visit that lost its referrer. With nothing to read, HighLevel files the visit as Direct Traffic.

For Facebook, check the ad links themselves. Paid-social classification is case-sensitive, and the older utm_source=facebook convention is deprecated in favor of fb_ad, so links still using the old value or the wrong case may not be read as paid social. HighLevel has changed this convention before, so check its current attribution article before a campaign launches.

Remember too that the two records answer different questions. First Attribution never changes; Latest Attribution moves with each new interaction. A report that mixes them will disagree with itself.

Rather have it set up for you?

We'll add the source, source method and UTM fields your routes need and check that each route fills them. Start with a 30-minute 1:1 with Rob.

Book a 1:1 with Rob

Questions

Source and UTM questions

Does HighLevel track UTM parameters on its own?
HighLevel records first and latest attribution on each contact from its forms, surveys, bookings, chat and order forms, reading the page URL and referring domain. Look at a contact's attribution before adding your own fields, so you don't store the same thing twice.
What's the difference between First Attribution and Latest Attribution?
First Attribution is fixed at the first recorded touch. Latest Attribution changes as new interactions are recorded. Use first for the channel that found the lead and latest for what brought them back.
What utm_source should Facebook ads use with HighLevel?
HighLevel documents fb_ad as the paid-social source value for Facebook, and the parameters are case-sensitive. The older utm_source=facebook convention is deprecated. Check HighLevel's current attribution article before launch, since conventions like this change.
Why is my lead showing as Direct Traffic?
HighLevel found no referral or tracking data for the visit. Add tracking parameters to the links you control, and for leads that arrive by other routes, record the source in your own field.
Do I need a first touch time field?
Only if you're doing multi-touch attribution. Otherwise First Attribution and your source field cover it, and an extra field is one more thing to keep filled.
Rob Eason

Who you talk to

Rob Eason

Rob runs HLAI Experts and takes the 1:1 calls himself.

He is a HighLevel Certified Admin with the second-most reviews in HighLevel's Certified Admin Directory worldwide, all of them 5 out of 5.

He won HighLevel's Top New Subaccounts via AI Employee award in its 2025 Summer of AI Awards and taught HighLevel's official masterclass on its AI Employee.

Before HighLevel, he co-owned a 60-employee financial services firm and sold his share.

On the call he looks at your account, not a script.

5/5 across 83 reviews in HighLevel's Certified Admin Directory