Tracking External Forms with GoHighLevel

Modified on: Thu, 6 Nov, 2025 at 4:09 PM

External Tracking lets you place one lightweight script into external websites (WordPress, Wix, Squarespace or custom built sites) to capture form submissions and page views directly into HighLevel. This article walks you through setting up external tracking, troubleshooting the installation and viewing submissions in HighLevel.


TABLE OF CONTENTS


What is External Tracking?


External Tracking collects activity from websites you don’t host in HighLevel. After you add a small script to those website pages, HighLevel records page views and captures supported form submissions. Each submission apprears in the forms submissions dashboard and syncs to a contact record with attribution details, making it easier than ever to understand where leads come from and take action with automation.


Key Benefits of External Tracking


  • Keep your Current Forms: Capture leads from existing third-party forms without rebuilding in HighLevel.

  • Automatic CRM Sync: Submissions create or update Contacts so your team can follow up immediately.

  • Attribution Visibility: UTMs and source details are attached to contacts for easy tracking.

  • Page Views + Forms Together: Track both page visits and form submissions in one place for more complete context.

  • Combined Analytics: Consolidate analytics for both HighLevel and non-HighLevel forms

Contact & Attribution Details


HighLevel attaches events and attribution data to contact records so you can see what pages were visited, what form was submitted, and what drove the visit.


  • Timeline events: You’ll see Page Visited and Form Submitted entries for tracked pages/forms.

  • Activity details: Open a submission in the contact’s activity to view captured fields and page metadata (page title, URL, medium/source if available, etc.).

  • Tagging: Contacts may be tagged with the external form name (e.g., external form: {form_name})



How To Set Up External Tracking


Follow these steps end-to-end to install the script, confirm that page views and forms are being tracked, and see the data arrive in HighLevel.



Step 1: Open External Tracking


From within your sub-account:

  • Navigate to SettingsExternal Tracking

  • Under the Installation tab, click CopyScript 


The script will look like this:


<script 
  src="https://link.gohighlevel.com/js/external-tracking.js"
  data-tracking-id="tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
</script>


Important: The data-tracking-id is unique to your account. Do not edit it.




Step 2: Add the Script to Your Website


Paste the script into the footer, just before the closing </body> tag.


Examples


Custom HTML Site


...
<!-- Paste GoHighLevel tracking script here -->
<script 
  src="https://link.gohighlevel.com/js/external-tracking.js"
  data-tracking-id="tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
</script>
</body>
</html>



WordPress


  • Go to Appearance → Theme Settings → Footer (if available), or

  • Install a plugin like Insert Headers and Footers and paste into the Footer Scripts box



Wix / Squarespace / Webflow


Go to Site Settings → Custom Code → Footer Code Injection and paste the script.



Step 3: Make Sure Your Form is Compatible


Your form must:


  • Use a <form> tag

  • Include an email input field:

    <input type="email" name="email" />


  • Include a submit button:

    <button type="submit">Submit</button>


  • Not be inside an <iframe>

  • Not block submission with custom JavaScript (unless it re-triggers a standard submit)


Example Minimal Form


<form action="#" method="post">
  <input type="email" name="email" placeholder="email@example.com" required />
  <button type="submit">Submit</button>
</form>



Step 4: View Submissions


Once the script is installed and your form is compatible:


  • Go to SitesFormsSubmissions

  • Use the filter External: “Form Name”

  • Review and export submissions as needed



Advanced Troubleshooting & Diagnostics


If submissions are not showing or tracking isn’t working, use these checks.



Enable Debug Mode


Add data-debug="true" to your script:


<script 
  src="https://link.gohighlevel.com/js/external-tracking.js"
  data-tracking-id="tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  data-debug="true">
</script>


Reload your page, open the console (Cmd/Ctrl + Option/Alt + J), and look for [LC Tracking] logs such as:


  • Tracker initialized successfully

  • SessionId stored in cookie

  • Event sent successfully: external_script_page_view


If logs do not appear:


  • Confirm the script is on the page

  • Verify the data-tracking-id value

  • Check for ad blockers or CSP errors



Network & API Checks


In the browser Network tab, check:


  • Page view requests succeed with 2xx status

  • No CORS errors

  • Response shows success acknowledgement



Cookies & Session


The script sets a cookie with a session ID.


  • Look in ApplicationStorageCookies

  • Confirm a session cookie is created

  • If missing, check browser privacy settings or third-party iframe restrictions



Common Issues


  • No console logs → Add data-debug="true", confirm script placement

  • CORS errors → Verify endpoint and server CORS config

  • Form not tracked → Ensure it uses <form>, has email input, and a submit button

  • Tracking ID errors → Confirm data-tracking-id matches your account

  • Single Page Apps → Initial load is tracked, but route changes may require manual hooks



Quick Diagnostic Checklist


  • Script tag has a valid data-tracking-id

  • Debug mode enabled for testing

  • Console shows [LC Tracking] logs

  • Network requests succeed (2xx)

  • Session cookie is present

  • Forms meet structure requirements



Example Setup With Extra Fields


<form name="abc">
  <label for="first_name">First Name</label>
  <input type="text" name="first_name" id="first_name" />

  <label for="last_name">Last Name</label>
  <input type="text" name="last_name" id="last_name" />

  <label for="email">Email</label>
  <input type="email" name="email" id="email" />

  <label for="phone">Phone</label>
  <input type="tel" name="phone" id="phone" />

  <label for="company_name">Company Name</label>
  <input type="text" name="company_name" id="company_name" />

  <input type="submit" value="Submit">
</form>


Frequently Asked Questions


Q: Do I have to rebuild my forms in HighLevel?
No. External Tracking captures information from compatible existing forms on your site. If you’d prefer, you can also embed a HighLevel form instead.


Q: How do I automate follow‑up?
Use the Form Submitted workflow trigger to send notifications, apply tags, and kick off campaigns once external submissions sync in.


Q: Why don’t I see UTMs on some contacts?
Attribution depends on cookies and URL parameters being present. Strict browser privacy settings or missing UTMs can limit available data.


Q: What types of forms are compatible with external tracking?

With external tracking, you can track activity from HTML forms and Formspree.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article