GoHighLevel CRM Lead Tracking & Attribution: Complete Setup Guide

GoHighLevel CRM Lead Tracking & Attribution: Complete Setup Guide
GoHighLevel CRM Lead Tracking & Attribution: Complete Setup Guide

Want to track every lead and know exactly which ad, campaign, or channel drove them to convert? GoHighLevel makes this possible by combining lead tracking and attribution directly in its CRM. Here’s what you’ll learn in this guide:

  • What lead tracking and attribution are: Track where leads come from (e.g., lead generation integrations) and identify the touchpoints that convert them.
  • Why GoHighLevel is effective: It automates 90% of lead tagging and captures 11 key data points for every lead, tying everything to individual contact records.
  • Step-by-step setup: Learn how to configure UTM parameters, integrate Facebook Conversions API, and automate workflows for precise tracking.
  • How to analyze results: Use GoHighLevel’s reports to see which campaigns drive revenue and optimize your marketing spend.

What You Need Before Starting

Account Access and Permissions You’ll Need

To set up lead tracking, you’ll need administrative permissions at the sub-account level. This access is essential for managing Contacts, Sites, and Reporting, which are key areas for tracking leads. Without admin access to Settings, you won’t be able to retrieve the external tracking script or connect your account to platforms like Google Ads and Meta Ads [2][3].

You’ll also need permissions to edit the dashboard and add custom widgets. These tools allow you to create attribution widgets under the Contact or Opportunity categories, which display tracking data directly on your dashboard [6].

How to Navigate the GoHighLevel Dashboard

The Reporting section in the sidebar is your go-to spot for lead data. Here, you’ll find the Conversion Report and Source Report, both of which are vital for analyzing your leads [7]. To dive deeper into attribution details for a specific contact, go to the Contacts section, select a contact record, and scroll to the bottom right under the Activity tab [1].

If you’d like to see tracking data on your main dashboard, click the Edit icon, choose Add Widget, and select options from the Contact or Opportunity categories. Then, add an Attribution condition in the Condition tab to filter the data [6]. For ad campaign tracking, head to the Reporting section and select either Google Ads or Meta Ads to monitor campaign performance [7][8].

Once you’re familiar with the dashboard, you’re ready to activate lead tracking features and ensure every interaction is captured.

How to Turn On Lead Tracking Features

Lead tracking automatically works with Forms, Surveys, Calendars, Chat Widgets, and Order Forms. However, if a lead doesn’t interact with one of these elements, their attribution data won’t be recorded [1].

Before launching any campaigns, take these steps:

  • Go to Settings → Custom Fields → Opportunities and create fields for deal_revenue, acquisition_cost, and lead_source [5].
  • Add hidden fields for Channel, Campaign, and Source to collect data without cluttering the user-facing forms [4][5].
  • Navigate to Settings → External Tracking, copy the provided JavaScript snippet, and paste it before the closing </body> tag on all external pages [2].
  • Manually activate attribution settings within specific Funnels and Calendars to ensure conversion data is captured [3].

By completing these steps, you’ll have a fully functional lead tracking system that integrates seamlessly with your dashboard and external platforms.

Feature/Task Dashboard Location Required Action
External Tracking Settings → External Tracking Copy and install the unique JS script [2]
View Lead Attribution Contacts → [Contact Name] → Activity View first and latest attribution data [1]
Ad Reporting Setup Settings → Integrations Connect Google Ads and Meta Ads accounts [3]
Custom Widgets Dashboard → Edit → Add Widget Add attribution/UTM filters to Contact/Opportunity widgets [6]

How to Set Up UTM Tracking and Lead Sources

How to Create UTM Parameters

GoHighLevel uses specific UTM templates to track attribution accurately, and these templates must be followed to the letter. For instance, when running Google Ads, your UTM source should be adwords (all lowercase). Similarly, for Facebook Ads, the UTM source needs to be fb_ad [11]. These precise values ensure that the CRM can properly classify and track incoming traffic.

For Google Ads, append the following to your destination URL:

?utm_source=adwords&utm_medium={adname}&utm_campaign={campaignname}&utm_content={adgroupname}&utm_keyword={keyword}&utm_matchtype={matchtype}&campaign_id={campaignid}&ad_group_id={adgroupid}&ad_id={creative} 

For Facebook Ads, use this format instead:

?utm_source=fb_ad&utm_medium={{adset.name}}&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}} 

Keep in mind that UTM values are case-sensitive [11]. Also, ensure that your ad links directly to the page containing the form. If a user clicks to another page before submitting the form, the UTM data won’t carry over [11]. After setting up the UTMs, connect them to your forms and call tracking systems to maintain accurate attribution.

How to Connect Form Submissions and Call Tracking

When you use native GoHighLevel tools like forms, surveys, calendars, chat widgets, or order forms, attribution data is automatically captured upon submission [11][12]. For call tracking, inbound calls are tracked when initiated via a click [12].

It’s essential that leads submit forms on the same URL containing the UTM parameters [11]. If you’re using third-party forms, include hidden fields with keys such as channel, utm_source, utm_medium, and utm_campaign to map the data to contact records [9][10]. Additionally, keep your campaign and ad names consistent, as GoHighLevel will reference the original names for that lead over time [12]. To complete the attribution cycle, integrate data from Facebook.

How to Integrate Facebook Conversions API

Facebook Conversions API

Once basic tracking is in place, you can enhance attribution by integrating Facebook’s advanced tools. Set up two workflows: one for capturing leads and creating opportunities, and another for sending conversion data back to Facebook when a lead reaches a specific pipeline stage [13]. Before you begin, ensure your Facebook Business Page is connected in Settings → Integrations, and that Facebook Form Field Mapping is enabled [13].

To get started, generate an Access Token and find your Pixel ID (or Dataset ID) in Facebook Events Manager under the Settings tab [13][15]. When configuring the CAPI (Conversions API) action in your workflow, include customer data fields such as Email, First Name, Surname, Client IP, Browser ID (fbp), and Click ID (fbc) [14][15]. Enable the "Allow Multiple" option in both workflows to capture repeat interactions [13].

For effective optimization, Facebook suggests generating a minimum of 250 leads per month and maintaining a conversion rate between 1% and 40% for your target lead stage [13]. Test your setup using the Facebook Lead Ads Test Tool. Create a dummy lead and move it through your pipeline stages to confirm that events are correctly recorded in Events Manager [13].

How to Create Pipelines and Automate Lead Movement

How to Build Pipelines and Stages

To set up a pipeline, go to Opportunities > Pipelines, click "Create new pipeline", and give it a unique name that reflects your sales process.

Define the stages to align with your workflow. A typical sequence might look like this: New Lead → Hot Lead → Booked Call → No Show → Proposal Sent → Closed. GoHighLevel automatically includes Won and Lost stages in every pipeline, so there’s no need to add them. You can reorder, rename, or delete stages as needed – just remember that deleting a stage requires reassigning its opportunities.

"Pipelines allow you to map each step of a customer journey – from lead capture to closing or onboarding." – HighLevel Support Portal

Assign revenue estimates to each stage (e.g., $1,000 for New Lead or $2,500 for Booked Call) to track potential earnings. Use the funnel and pie chart icons next to each stage to decide whether its data should appear in your dashboard reports. You can also control data visibility by navigating to Settings > My Staff > Roles & Permissions, ensuring team members only view opportunities assigned to them.

How to Automate Lead Movement with Triggers

To automate lead movement, go to Automation > Workflows and select a trigger event, such as Form Submitted, Customer Booked Appointment, Contact Tag Added, or Pipeline Stage Changed using workflow automation apps. The key action here is Create/Update Opportunity, which allows you to choose the pipeline and stage where the lead should move.

If you’re updating an existing lead, make sure to enable the "Allow Opportunity to Move" toggle. This ensures the lead transitions from its current stage to the new one automatically. For example, when a contact books an appointment, the workflow can move them from New Lead to Consultation Scheduled. You can also use the Pipeline Stage Changed trigger with filters (like a specific pipeline or statuses such as Open, Won, Lost, or Abandoned) to ensure the automation runs only in the right scenarios.

Give your workflows clear names (e.g., Move to Hot Lead on Form Submit) and test them with sample data before publishing. For leads that have been inactive for a set period, use the Stale Opportunities trigger to either send re-engagement messages or notify your team.

Once these workflows are in place, you can further refine your process by configuring automated workflows for attribution. This will help you streamline your lead management even more efficiently.

GoHighLevel Attribution Tracking | Lead Source Tracking

How to Set Up Workflow Automation for Attribution

GoHighLevel Lead Attribution Hierarchy: 8-Step Source Classification

GoHighLevel Lead Attribution Hierarchy: 8-Step Source Classification

How to Create Automated Workflows

This section expands on earlier steps by focusing on automating attribution tasks. The goal? Ensuring every lead interaction is tracked and acted on without requiring manual effort. By integrating these automations with your lead tracking and UTM setups, you’ll maintain a smooth flow of data.

Start by navigating to Automation > Workflows and selecting "Create Workflow." The Workflow Builder provides a visual interface where you can combine triggers (events that kick off the process) with actions (tasks executed automatically).

GoHighLevel simplifies attribution tracking by capturing data from built-in tools like forms, surveys, calendars, chat widgets, and order forms. To include this data in your workflows, leverage the Contact First Attribution and Contact Last Attribution variables. The first attribution logs the original lead source and remains unchanged, while the latest attribution updates with every new interaction.

"The latest attribution will always change based on the last recorded interaction. However, the first attribution will not." – GoHighLevel [1]

Use If/Else logic to branch workflows based on each lead’s attribution source. For instance, direct "Paid Search" leads to your top-tier sales team, while "Organic Search" leads might enter a nurturing sequence. Make sure UTM parameters align with GoHighLevel’s case-sensitive templates (e.g., utm_source=adwords for Google Ads or utm_source=fb_ad for Facebook Ads), as outlined in the UTM setup guide.

Before publishing, test your workflows with dummy contacts to ensure everything functions as expected. Once your workflows are live, you can move on to applying standardized attribution models for consistent tracking.

How to Apply Attribution Models

GoHighLevel uses a defined hierarchy to determine the lead source, prioritizing specific elements like Google click IDs (gclid) and Microsoft click IDs (msclkid) before defaulting to referring domains or direct traffic. Here’s a breakdown of the attribution hierarchy:

Order Attribution Rule Resulting Source
1 "utm_source" contains "adwords" Paid Search
2 "gclid", "wbraid", "gbraid", or "msclkid" present Paid Search
3 Referring domain is google.com with UTMs Paid Search
4 "utm_source" contains "fb_ad", "linkedin_ad", or "twitter_ad" Paid Social
5 Referring domain is a social media site Social Media
6 Referring domain is a search engine (Google, Bing, etc.) Organic Search
7 Referring domain is not social or search Referral
8 No referring domain or tracking URL Direct Traffic

To ensure accurate tracking, include hidden fields in your forms that capture session data like utm_source and utm_medium. Map this information to custom fields for each contact during form submission.

For automated ROI calculations, set up a workflow triggered by an Opportunity Stage change – specifically when a lead moves to "Closed Won." Use custom fields to record revenue and acquisition costs, then calculate ROI using this formula:
(Revenue – Ad Spend) / Ad Spend × 100.
Make fields like lead_source and acquisition_cost mandatory in your pipeline to prevent missing attribution data as deals progress.

Once your attribution rules are in place, set up notifications and tasks to respond immediately to key lead events.

How to Add Notifications and Tasks

Use the Send Internal Notification action to alert your team when leads from specific sources enter the system. Notifications can be sent via Email, In-App, SMS, or WhatsApp.

For teams actively using the CRM, In-App notifications are especially effective. They can redirect users straight to the contact’s Activity tab, where details like first and latest attribution are stored. Dynamic attribution data (such as UTM values, lead source, or campaign name) can also be included in notification messages using the Custom Values feature.

Make sure to place the Assign to User action before sending notifications. This ensures that alerts are directed to a specific team member rather than being sent to everyone. For high-value leads from paid campaigns, consider using the CC/BCC fields in Email notifications to keep managers informed without overloading the primary recipient’s inbox.

Automated tasks can also be created using the Task Added event. Assign follow-up actions based on the lead’s source or behavior to ensure timely engagement.

Keep in mind that GoHighLevel enforces a rate limit of 500 notifications (across Email, SMS, or In-App) every 5 minutes per user [16]. Use the "Send Test" feature for SMS and WhatsApp notifications to confirm that dynamic UTM values display correctly before activating your workflow.

How to Access Reports and Analyze Your Data

Once automation is set up, tracking and analyzing your outcomes becomes essential. These tools let you monitor lead sources, compare attribution methods, and fine-tune dashboards to improve your campaign’s performance by using GoHighLevel CRM integrations to streamline your data flow.

How to View Lead Source Reports

To begin, go to the Reporting section and choose either the Source Report or Conversion Report [7][17]. Set your desired date range and hit refresh [7].

The Source Report provides detailed counts for referrers and campaigns, helping you identify which external sites or marketing efforts are driving the most traffic. It also includes a "Session Events" list, which you can filter, customize by column, or export as a CSV file [7]. The Conversion Report, on the other hand, focuses on high-level stats, such as total revenue closed and the number of opportunities closed, all tied to specific sources [7].

To dig deeper, use the dropdown menu in the top-right corner to filter data by specific assets like Forms, Surveys, or Calendars, helping you pinpoint which tools are delivering the best results [7]. For detailed tracking of individual leads, check out the contact record instructions mentioned earlier in the "What You Need Before Starting" section.

For more advanced insights, create custom widgets on your dashboard using Attribution filters [6]. You can group data by Session Source or Medium and visualize it with Donut or Line graphs [6]. This allows you to see how early interactions compare to final touchpoints.

How to Compare Attribution Models

GoHighLevel uses two main attribution models to track every contact: First Attribution and Latest Attribution [11].

  • First Attribution captures the very first interaction a contact has with your system. It’s permanent and great for identifying which top-of-funnel channels are driving brand awareness.
  • Latest Attribution updates with each new interaction, making it useful for spotting the touchpoints that are most effective at closing deals [11].
Model Type Stability Best Use Case
First Attribution Permanent; doesn’t change after recording [11] Identifying top-of-funnel acquisition channels [11]
Latest Attribution Dynamic; updates with every new session [11] Pinpointing bottom-of-funnel actions that lead to sales or bookings [11]

To compare these models, set your dashboard widgets to filter for either "First Attribution" or "Latest Attribution" [6]. Use the Table Chart widget and include UTM columns like Campaign, Source, or Medium to see which ad sets perform best under each model [6]. If you’re analyzing data for a specific day, make sure to set the reporting calendar so the "Start" and "End" dates are the same [7][17].

Understanding these attribution models allows you to focus your reports on the channels that matter most.

How to Customize Reports for Your Business

Tailor your reports by selecting data from contacts, pipelines, calendars, surveys, calls, and forms [19]. Use "First" or "Latest" attribution filters, along with UTM parameters like Campaign, Content, Keyword, Medium, and Source, to identify which channels drive results [6]. You can also add these parameters as columns in Table widgets and export them as detailed CSV reports [6].

Adjust display settings to match your reporting cycle – daily, weekly, monthly, or custom [19]. Set up automated email reports using the Report Scheduler so team members or sub-accounts can regularly review KPIs [18]. If you’re managing reports for clients, you can customize dashboards with your branding, including logos and colors, for a polished, professional look [19][20].

For even more customization, you can embed external data sources like Google Sheets, Power BI, or Looker Studio using iframes [19]. Regularly review and update your dashboards to ensure they align with your business goals and metrics [19][20].

Key Takeaways

Setup Process Summary

To connect your marketing efforts with measurable outcomes, start by configuring lead tracking. Use UTM parameters with specific, case-sensitive values like utm_source=adwords for Paid Search and utm_source=fb_ad for Paid Social[1]. Leverage HighLevel’s built-in tools – such as Forms, Surveys, and Calendars – to automatically capture attribution data[1]. Set up pipelines with automated triggers to guide leads through your sales process, and use workflows with attribution variables to segment contacts and send notifications. Customize your reports to analyze First Attribution (the first touchpoint) and Latest Attribution (the last interaction before conversion)[1].

The platform applies attribution rules through an 11-step hierarchy, starting with Google and Microsoft click IDs before checking UTM parameters[1]. To ensure accuracy, you’ll need properly formatted URLs and direct form submissions[1].

Once the system is configured, you’ll be ready to turn these insights into actionable strategies for increasing profit.

Getting the Most from GoHighLevel

With your tracking system in place, accurate attribution transforms assumptions into actionable insights. GoHighLevel ties ads, calls, and email marketing integrations directly to revenue and closed deals[3], shifting your focus from chasing lead volume to driving profitability[5].

Monitor key metrics like Close Rate and Average Deal Size by Source[5]. Remember, low-cost leads are only valuable if they convert effectively. Use standardized dropdown menus for lead sources to keep your reporting clean and consistent[5]. Integrate Google and Meta ad accounts directly into the CRM to compare ad spend and ROI within a single dashboard[3]. Make fields like lead_source and acquisition_cost mandatory in your opportunity pipeline to ensure that every deal includes attribution data[5]. This approach creates a clear trail of interactions, helping you identify where to invest your marketing budget for the best returns[1][21].

FAQs

Why is my lead source showing as Direct or Referral?

When a lead source is labeled as Direct, it means visitors reached your site without any referral data. This can happen when someone types your URL directly into their browser or uses a bookmark. On the other hand, Referral traffic comes from another website. However, tracking this can get tricky if UTM parameters or tracking codes aren’t set up correctly.

To make sure your attribution stays accurate, always include properly implemented UTM parameters and tracking codes in your campaigns and links. This small step can make a big difference in understanding where your traffic is really coming from.

How do I keep UTMs when a visitor clicks to another page?

To keep UTM parameters intact as visitors move through your site in GoHighLevel, start by adding UTM variables to your ad URLs. Then, use hidden fields in your forms to capture these parameters. You can also rely on tools or scripts to store and pass the UTM data across different pages. Make sure your tracking setup ensures the UTMs persist by using hidden fields or URL parameter methods, so the data remains consistent throughout the user’s journey.

How can I tie ad spend to Closed Won revenue in reports?

To link your ad spend directly to Closed Won revenue in GoHighLevel reports, you’ll need to leverage the platform’s attribution and reporting features. Start by creating custom fields for revenue, ad spend, and lead source – these will help you track the necessary data. Next, configure your opportunity pipelines to monitor this information effectively.

You can also automate ROI calculations by setting up workflows that trigger whenever a deal is closed. For precise campaign attribution, integrate tools like UTM parameters, the Facebook Pixel, and the Conversion API. These integrations allow you to tie specific ad spend back to campaigns, ensuring your reports are as accurate as possible.