GoHighLevel Troubleshooting
Fix GoHighLevel tracking problems in AnyTrack. Find out why leads show as Unknown, pass the Click ID from an external form, stop recurring IP-match errors in the Events Log, and stop the GoHighLevel OrderFormPurchase event in Meta.
Use this page to fix GoHighLevel tracking problems in AnyTrack. Find your symptom in the table, then follow the fix in its section. To set up the integration, see GoHighLevel Integration. For the list of events and their default mapping, see GoHighLevel Events.
| Symptom | Cause | Fix |
|---|---|---|
| Leads show as Unknown or Direct in the Campaign Report | The contact has no Click ID | Leads Show as Unknown |
| Leads from Typeform, Jotform, Zapier, or Make show as Unknown | The Click ID does not reach the _atid field | Pass the Click ID from an External Form |
Recurring Can't find match for IP errors in the Events Log | Events arrive without the Click ID | Recurring IP-Match Errors |
Meta shows OrderFormPurchase with no value | GoHighLevel sends the event from its own Meta Pixel field | Stop the OrderFormPurchase Event |
| Pipeline stage events do not reach Facebook Ads | The stage or the custom event is unmapped | Pipeline and Opportunity Tracking |
Leads Show as Unknown in the Campaign Report
Section titled “Leads Show as Unknown in the Campaign Report”Your GoHighLevel leads land under Unknown (or Direct) in the Campaign Report, but the contacts have UTM values in GoHighLevel. The most common cause is the way the contact enters GoHighLevel.
AnyTrack attributes a lead by matching it back to the browser session where the ad click happened. That session stores the click ID (_atid) and UTM data as first-party data. If an app creates the contact server-to-server (for example, Zapier or Make), the contact never had that tracked session. AnyTrack has no session to match the contact to, so AnyTrack reports the contact as Unknown. The Unknown source is the expected result, not a tracking error.
The diagram shows one lead on two paths. When the click ID travels with the form submission, AnyTrack attributes the lead. When the click ID is lost, the lead lands under Unknown.
The Click ID Fork: One Lead, Two Outcomes
Shared start:
- Visitor lands from Facebook. Tools: Facebook Ads. Tracking Tag fires. AnyTrack starts a session, collects the click ID and UTM parameters, and stores them as first-party data on the visitor. Data: click ID collected (present), utm parameters (present), first-party session (present).
- Visitor fills an external form. Tools: Typeform, Jotform. The form sends the email and the answers. It sends the click ID only if the form collects it:
at_click_idin Typeform, a hidden field in Jotform.
The path splits here: is the click ID attached?
Path 1, working path: Click ID attached.
- Form submits with the click ID. The click ID leaves with the email and the answers. Data: email + data (present), click ID (present).
- Zapier → GoHighLevel. Tools: Zapier, GoHighLevel. Zapier maps the click ID into the
_atidcustom field of the GoHighLevel contact. Data: click ID → _atid (present). - GHL "Contact created" → AnyTrack. Tools: GoHighLevel, AnyTrack. The
Leadevent arrives with the click ID. Data: _atid (present).
Path 2, broken path: Click ID dropped.
- Form submits without the click ID. Only the email and the answers leave. Data: email + data (present), click ID (missing). Break point: The form does not collect the click ID, so the click ID is lost here. The connection to the next step breaks here.
- Zapier → GoHighLevel. Tools: Zapier, GoHighLevel. Zapier creates the contact server-to-server, with no browser session and no click ID. Data: sessionSource: "Third Party", medium: "zapier".
- GHL "Contact created" → AnyTrack. Tools: GoHighLevel, AnyTrack. The
Leadevent arrives with no click ID to match. Data: _atid (missing).
Both paths return to AnyTrack
Path 1 result: Attributed conversion. AnyTrack matches the click ID to the Facebook ad click, credits the campaign, and sends the conversion to your ad platform through the Conversion API.
Path 2 result: Unknown. AnyTrack records the lead but has no click ID to match. The lead lands under Unknown with no campaign credit, even when the contact has UTM values in GoHighLevel.
One field makes the difference. AnyTrack attributes the lead with the click ID, not with the UTM values on the GoHighLevel contact. Collect the click ID on the form and map it through Zapier into the _atid custom field: the same lead then becomes an attributed conversion.
To confirm the cause, open the attribution source of the contact in GoHighLevel. A contact that a third-party tool created shows values such as sessionSource: "Third Party", medium: "zapier", and an empty _atid.
To fix it, make sure that the click ID travels with the lead:
- Best: collect the lead on a native GoHighLevel funnel form. Add the
_atidfield to that form (see Step 4: Add the Click ID Field to Your Forms). The Tracking Tag supplies the Click ID value, and GoHighLevel stores it on the contact. - If an automation must create the contact: pass the original click ID through the automation into the
_atidcustom field of the contact. See Pass the Click ID from an External Form.
For the same problem on other CRMs, see Why Conversions Show as Unknown or Direct.
Pass the Click ID from an External Form
Section titled “Pass the Click ID from an External Form”AnyTrack joins two records:
- The session on your funnel or website: UTM parameters, traffic source, and first-party data.
- The offline events that GoHighLevel reports: contacts, orders, invoices, and opportunities.
The AnyTrack Click ID connects the two records. The Tracking Tag writes the Click ID onto the page URL as the _atid parameter, and GoHighLevel stores it in the _atid custom field of the contact.
The path of the Click ID to the _atid field depends on where the lead fills in the form:
- Native GoHighLevel form. The Tracking Tag supplies the value when the form carries the
_atidfield. Add the field to each form (see Step 4). - GoHighLevel form embedded on another website. Add the
_atidfield to the form, and install the Tracking Tag on the page that hosts the form. See Tracking Embedded Forms on External Websites. - External form, Zapier, or Make. GoHighLevel has no tracked session for the lead. Map the Click ID from the source platform into the
_atidcustom field.
Each source platform gives the Click ID under its own parameter:
| Source platform | Click ID parameter | Destination in GoHighLevel |
|---|---|---|
| Typeform | at_click_id | _atid custom field |
| Unbounce | click_id | _atid custom field |
| Elementor | click_id | _atid custom field |
| Calendly | utm_term or sfid | _atid custom field |
| LeadsHook | atclid | _atid custom field |
| Any standard HTML form | hidden field, value --CLICK-ID-- | _atid custom field |
For the Elementor integration, see Elementor. If your Elementor forms send leads to GoHighLevel without the Elementor integration, see GoHighLevel and Elementor. For the full pattern across every platform, see Pass the Click ID from External Forms to Your CRM.
Recurring Can’t Find Match for IP Errors
Section titled “Recurring Can’t Find Match for IP Errors”Recurring Can't find match for IP (No IP Match) errors in the Events Log mean that the conversions from GoHighLevel arrive without the AnyTrack click ID. AnyTrack then falls back to low-accuracy IP matching. AnyTrack does not send events with errors to your ad platforms, so recurring errors also lower your conversion counts in Facebook Ads and Google Ads.
Check these causes in order:
- A native form has no
_atidfield. Without the field, the contact holds no click ID, and every GoHighLevel event drops to IP matching. Add the field to each form (see Step 4). - An embedded or external form does not pass the click ID. Map the original click ID into the
_atidcustom field of the contact. See Pass the Click ID from an External Form. - A legacy manual-webhook setup sends the events. Old manual webhooks send conversions without the click ID. Install the AnyTrack app from the Integration Catalog, authenticate, and select your GoHighLevel sub-account. Run a test purchase, and verify an OK status in the Events Log. Then disable the old manual webhooks.
Meta Shows a GoHighLevel OrderFormPurchase Event
Section titled “Meta Shows a GoHighLevel OrderFormPurchase Event”GoHighLevel carries its own Meta Pixel field. When that field holds a Pixel ID, GoHighLevel triggers an OrderFormPurchase event on the order form. The browser sends that event. OrderFormPurchase is a GoHighLevel event. AnyTrack does not send it.
GoHighLevel sends the event without a value and without a currency. Meta then reports data-quality warnings on your dataset, and lists the price-data actions as High priority.
You can confirm the sender in Meta Events Manager. Open the Overview tab and read the Source column. OrderFormPurchase shows the Source Meta Pixel, because the browser sent it. AnyTrack conversions show the Source Conversions API. See Identify Which System Sent an Event.
To stop the event:
- Open the funnel settings in GoHighLevel and clear the Meta Pixel ID. GoHighLevel labels the field Facebook Pixel ID.
- Open the order form settings and clear the Meta Pixel ID.
- Open Settings > Integrations and disconnect the Facebook connection.
- Republish the funnel.
- Run a test purchase. Confirm that
Purchasearrives in Meta Events Manager with the SourceConversions API, a value, and a currency.
If you set up your Facebook Pixel in Tracking Pixels, AnyTrack loads it on your funnel pages. Your browser tracking then continues after you clear the field.
FAQ
FAQ was last reviewed on 2026-10-05
Why does the Events Log show errors after installation?
Why are my GoHighLevel conversions not appearing in AnyTrack?
Why does the _atid value change between my funnel pages?
_atid URL parameter carries the AnyTrack page Click ID. The Tracking Tag generates a new value on each page load. The Property ID and the Client ID stay the same; only the final characters change. AnyTrack identifies the visitor by the Client ID, so a changing value does not affect attribution. On a 2-step order form the page does not reload between the steps, so the value stays the same on both steps. A lead shows as Unknown only when the contact has no click ID at all, not when the value changes from page to page. See AnyTrack Identifiers.