Revset
Book a Free Audit

30-minute call · No obligation

HomeGHL HubCRM & ContactsHow to Set Up Call Tracking Number Pools in GoHighLevel
REVSET LABS · EXPERT GUIDE·CRM & Contacts

How to Set Up Call Tracking Number Pools in GoHighLevel

1,329 words·6 min read·Updated 27 April 2026·beginner·
Arsalan ZaffarArsalan ZaffarLinkedIn

👉 Start your 30-day GoHighLevel free trial.

Start 30-Day Free Trial
Quick Answer

To set up a call tracking number pool, go to Sub-Account Settings → Phone Numbers → Add Number → Tracking Number Pool. This process typically takes about 15-20 minutes, not including website integration time.

Key Takeaways
  • A minimum of 4 numbers is required per pool to ensure effective attribution across various traffic sources.
  • Always test number swapping using an incognito browser to confirm the tracking script functions correctly.
  • Integrate the GoHighLevel tracking script into your website's `<body>` section for accurate number replacement.
  • Use Group IDs to manage multiple number pools on the same website, enabling distinct tracking for different ad campaigns.
  • Configure keyword tracking in Google Ads by appending `?keyword={keyword}` to your ad's Final URLs.

Understanding Call Tracking Number Pools

Call tracking number pools are a powerful GoHighLevel feature. They automatically swap out the phone numbers displayed on your website based on where a visitor came from. This allows you to accurately attribute phone calls to specific marketing channels, campaigns, or even keywords. You gain crucial insights into which of your marketing efforts drive the most valuable phone calls.

How to Create a Call Tracking Number Pool

Setting up your call tracking number pool in GoHighLevel involves a few key steps. You will define the pool's purpose, select its numbers, and designate where calls will forward. This ensures every incoming call is correctly routed and tracked.

1
Access Phone Numbers SettingsFrom your sub-account dashboard, click Settings in the left sidebar. Then, select Phone Numbers from the settings menu to view your existing numbers.
2
Add a New NumberOn the Phone Numbers page, click the Add Number button located in the top right corner. This opens the options for acquiring new phone numbers or setting up tracking.
3
Choose Tracking Number PoolSelect Tracking Number Pool from the available options in the pop-up window. This tells GoHighLevel you want to create a pool of numbers for attribution.
4
Configure Pool DetailsFill in the required details for your new number pool. Provide a descriptive Friendly Name (e.g., 'Website Tracking - Google Ads') and choose a Location (country) for the numbers.
5
Set Pool Size and ForwardingSpecify the Pool Size, with a minimum of 4 numbers required. Enter the Forward Calls To number; this is the main destination for all calls to the pool numbers.
6
Select Tracking OptionChoose your Tracking Option: 'All' (tracks all visitors), 'All Except Direct' (tracks only visitors from external sources), or 'Google Ads' (tracks only Google Ads visitors). 'All Except Direct' is recommended for most general website tracking.
7
Save Your Number PoolReview all your settings to ensure accuracy. Click Save to create your new call tracking number pool. GoHighLevel will then provision the necessary numbers.

⚠️ Each number in a pool is billed monthly, similar to standard phone numbers. A minimum of 4 numbers is required, meaning you will incur charges for each number in the pool.

🔥 Pro Tip

Start with 'All Except Direct' as your tracking option. This prevents number swapping for visitors who directly type your URL, providing cleaner attribution for marketing channels.

How to Integrate the Call Tracking Script on Your Website

For the number pool to function, you must embed a small tracking script into your website. This script detects the visitor's source and automatically swaps out the displayed phone numbers on your site with one from your pool.

1
Locate Your Number PoolGo back to Settings → Phone Numbers. Find the newly created number pool in your list and click on it. This action opens its detailed configuration page.
2
Copy the Tracking ScriptInside the number pool details, look for the Tracking Script section. Copy the entire provided script to your clipboard, ensuring you get all characters.
3
Access Your Website's CodeOpen your website's backend or CMS (e.g., WordPress, GoHighLevel Website Builder, custom HTML). Navigate to the section where you can edit the global header or footer code for your entire site.
4
Paste the Script into the BodyPaste the copied tracking script just before the closing `` tag of your website's HTML. This placement ensures the script loads after your content but before the page fully renders.
5
Save Website ChangesSave your website's code changes and publish them if required by your platform. The tracking script is now active across your website.

✅ For GoHighLevel Funnels/Websites, navigate to Sites → Funnels/Websites → Settings → Custom CSS/HTML. Paste the script into the Footer Code section and save.

🔥 Pro Tip

If your website builder has a global 'Footer Code' or 'Custom HTML' section, use it. This ensures the tracking code is on every page without needing manual page-by-page edits.

How to Test Number Swapping Functionality

After integrating the tracking script, it's crucial to verify that numbers are swapping correctly. This confirms your setup is working as intended and calls will be attributed accurately.

1
Open an Incognito/Private BrowserLaunch a new incognito or private browsing window in your web browser. This prevents existing cookies from interfering with the test, ensuring a clean session.
2
Simulate a Referral SourceIf your tracking option is 'All Except Direct', do not type your URL directly. Instead, link to your website from another page (e.g., a simple HTML file or another site) and click that link. If 'All' or 'Google Ads' is selected, you can type your URL directly.
3
Observe Number ChangeOnce your website loads, carefully examine all displayed phone numbers. They should have swapped from your original number to one from your GoHighLevel tracking pool.
4
Verify Script PresenceRight-click on your webpage and select 'View Page Source' or 'Inspect Element'. Search for the GoHighLevel tracking script (e.g., 'gohighlevel_tracking') to confirm it's loaded correctly in the ``.
GoHighLevel screenshot
0
🔥 Pro Tip

For 'All Except Direct' tracking, create a simple HTML file with a link to your website. Open this file locally and click the link to easily simulate a referral without direct URL entry.

Try GoHighLevel Free

Start your 30-day GoHighLevel free trial

Everything in this guide is in your free trial. 30 days, no credit card — the platform behind 78+ revenue systems.

Start 30-Day Free Trial

Some links are affiliate links — if you sign up we may earn a commission, at no extra cost to you. We only recommend GoHighLevel because we build on it every day.

How to Set Up Keyword Tracking for Google Ads

To see which specific keywords drove a call from your Google Ads campaigns, you need to add a special parameter to your ad URLs. This allows GoHighLevel to capture and display the keyword in your call reports.

1
Access Your Google Ads AccountLog in to your Google Ads account. Navigate to the specific campaign and ad group where you want to enable keyword tracking.
2
Edit Your Ad URLFor each ad, locate the Final URL field. You will append a tracking parameter to this existing URL.
3
Add the Keyword ParameterAppend `?keyword={keyword}` to the end of your existing ad URL. For example, `yourwebsite.com/landingpage` becomes `yourwebsite.com/landingpage/?keyword={keyword}`.
4
Save Ad ChangesSave the updated ad URL in Google Ads. This ensures that when someone clicks your ad, the keyword information is passed to your landing page and captured by GoHighLevel.
GoHighLevel screenshot
0
🔥 Pro Tip

Use URL tracking templates in Google Ads at the campaign or ad group level to apply this parameter universally. This saves significant time and reduces the chance of errors across multiple ads.

How to Swap Numbers in Website Buttons

If you have phone numbers embedded within buttons on your website, you can ensure they also swap correctly. This involves using a standard HTML anchor tag with the `tel:` protocol.

1
Locate Button HTMLAccess the HTML code for the button containing the phone number you wish to track. This might be in your website builder's custom HTML block or directly in your site's code.
Example ImplementationFor instance, use `Call Us Now`. Replace `9724215139` with your original phone number and `Call Us Now` with your desired button text. The tracking script will then swap this number.

How to Use Group IDs for Advanced Tracking

Group IDs allow you to manage multiple call tracking number pools on the same website. This is useful when you want different numbers to display based on specific ad campaigns or traffic sources, providing granular attribution.

1
Edit Your Number PoolNavigate to Settings → Phone Numbers and click on the specific number pool you want to assign a Group ID to. This opens the pool's configuration settings.
2
Add/Edit Group IDWithin the number pool settings, click on Add/Edit Group ID. A pop-up window will appear, allowing you to manage your groups.
3
Name the Group IDEnter a unique and descriptive name for your Group ID (e.g., 'Google_Campaign_A'). Click Update to save your new group.
4
Copy Group SnippetAfter saving, click the information icon next to your Group ID. Copy the provided Group snippet code to your clipboard.
5
Integrate Snippet into WebsitePaste this Group snippet into the footer of the specific webpages or sections where you want this particular number pool to be active. This snippet overrides the default tracking script for that section.

✅ Group IDs ensure that only one number from a specific pool is swapped, preventing conflicts when multiple pools are active on a single site or for different sources.

🔥 Pro Tip

Use Group IDs when running A/B tests on different landing pages for specific ad campaigns. Each campaign can have its own Group ID and number pool, providing distinct call attribution.

Troubleshooting Common Issues

⚠️ Numbers are not swapping on your website.
Ensure the tracking script is correctly placed just before the `` tag. Verify you are testing in an incognito browser, especially if your tracking option is 'All Except Direct' and you're simulating a referral.
⚠️ Keyword data is not appearing in call reports.
Check your Google Ads ad URLs. Confirm that `?keyword={keyword}` is correctly appended to the Final URL for each ad. Ensure your tracking number pool's 'Tracking Option' is set to 'Google Ads' or 'All'.
⚠️ Calls are not being forwarded to the correct number.
Review your number pool settings in GoHighLevel. Make sure the 'Forward Calls To' number is accurately entered and active. Check your GHL phone number settings to ensure the forwarding number is not restricted.
⚠️ Only one number on the page is swapping, but others are not.
Verify that all phone numbers on your website, including those in images or custom HTML, are displayed as plain text or within `tel:` anchor tags. The script cannot swap numbers embedded in images.
⚠️ Website is loading slowly after script integration.
Ensure the script is placed at the end of the `` tag. Scripts placed higher up can block rendering. Check for conflicts with other website scripts, though this is rare with GHL's lightweight script.

Common Mistakes to Avoid

  • Placing the tracking script in the `` section instead of just before the `` tag.
  • Not testing number swapping in an incognito browser, which can lead to false negative results.
  • Forgetting to add `?keyword={keyword}` to Google Ads URLs, preventing keyword-level attribution.
  • Setting the 'Tracking Option' to 'Google Ads' but expecting attribution from other non-Google Ads sources.
  • Using phone numbers embedded in images or as part of complex JavaScript, which the tracking script cannot reliably detect or swap.

Frequently Asked Questions

QWhy is a minimum of 4 numbers required for a call tracking pool?
A minimum of 4 numbers is required to ensure effective A/B testing and accurate source attribution. When a visitor lands on your site, one of these numbers is randomly assigned. This pool size helps GoHighLevel effectively differentiate between various traffic sources and track unique visitor sessions, providing reliable data for your marketing analytics.
QHow does GoHighLevel attribute call sources if a visitor comes from different channels?
GoHighLevel uses cookies and URL parameters (like `gclid` for Google Ads) to identify the visitor's source. When a visitor lands, the tracking script assigns a number from the pool. If they call that number, the system matches the call to the visitor's cookie data, attributing the call to the original source and keywords before the call was initiated.
QWhat is the cost associated with a call tracking number pool?
Each number within a pool is billed at the same rate as a standard phone number in your account. Since a minimum of 4 numbers is required, you will incur charges for each of those numbers. For LC-Twilio users, standard Twilio pricing applies (e.g., $1/month per U.S. number plus usage). Larger pools will cost more, so choose your pool size based on traffic volume.
QCan calls made to a number pool be forwarded to multiple destination numbers?
No, currently, calls made to a GoHighLevel Number Pool can only be forwarded to a single designated 'Forward Calls to' number. You cannot set up multiple forwarding destinations directly within the number pool configuration. If you need complex routing, you might consider using GHL's call forwarding rules or external services.
QWhat is the primary benefit of using Group IDs in call tracking?
Group IDs are primarily beneficial for managing multiple distinct call tracking scenarios on the same website. For example, if you run two different ad campaigns targeting separate audiences, you can assign each campaign its own Group ID and number pool. This ensures that calls from 'Ad Campaign A' are tracked separately from 'Ad Campaign B', providing precise campaign-level attribution.
Try GoHighLevel Free

Start your 30-day GoHighLevel free trial

Everything in this guide is in your free trial. 30 days, no credit card — the platform behind 78+ revenue systems.

Start 30-Day Free Trial

Some links are affiliate links — if you sign up we may earn a commission, at no extra cost to you. We only recommend GoHighLevel because we build on it every day.

Arsalan Zaffar
Arsalan Zaffar
Revset Labs · Revenue Systems · 78+ GHL Builds

Arsalan writes GHL guides from real build experience — 78+ systems, $9.2M in client pipeline. Wharton, CXL & Google certified.

Connect on LinkedIn
Tags:GoHighLevelCall TrackingNumber PoolMarketing AttributionGoogle AdsAnalytics