Skip to content

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.

SymptomCauseFix
Leads show as Unknown or Direct in the Campaign ReportThe contact has no Click IDLeads Show as Unknown
Leads from Typeform, Jotform, Zapier, or Make show as UnknownThe Click ID does not reach the _atid fieldPass the Click ID from an External Form
Contacts from a CSV import do not create a lead, or manual and API contacts show as UnknownAnyTrack skips CSV imports, and manual or API contacts have no click IDWhich Contacts Create a Lead
Recurring Can't find match for IP errors in the Events LogEvents arrive without the Click IDRecurring IP-Match Errors
Meta shows OrderFormPurchase with no valueGoHighLevel sends the event from its own Meta Pixel fieldStop the OrderFormPurchase Event
Pipeline stage events do not reach Facebook AdsThe stage or the custom event is unmappedPipeline 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

When a GoHighLevel lead comes from an external form, the AnyTrack click ID decides if the lead becomes an attributed conversion or lands under Unknown.

Shared start:

  1. Visitor lands from an ad. 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).
  2. 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_id in Typeform, a hidden field in Jotform.

The path splits here: is the click ID attached?

Path 1, working path: Click ID attached.

  1. Form submits with the click ID. The click ID leaves with the email and the answers. Data: email + data (present), click ID (present).
  2. Zapier creates the contact. Tools: Zapier, GoHighLevel. Zapier maps the click ID into the _atid custom field of the GoHighLevel contact. Data: click ID → _atid (present).
  3. "Contact created" sends a Lead. Tools: GoHighLevel, AnyTrack. The Lead event arrives with the click ID. Data: _atid (present).

Path 2, broken path: Click ID dropped.

  1. 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.
  2. Zapier creates the contact. Tools: Zapier, GoHighLevel. Zapier creates the contact server-to-server, with no browser session and no click ID. Data: sessionSource: "Third Party", medium: "zapier".
  3. "Contact created" sends a Lead. Tools: GoHighLevel, AnyTrack. The Lead event 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.

AnyTrack treats a new GoHighLevel contact differently, based on how the contact enters GoHighLevel.

How the contact enters GoHighLevelWhat AnyTrack does
Native GoHighLevel funnel form with the _atid fieldRecords a Lead and attributes it to the ad click.
CSV importRecords no event. AnyTrack skips the Contact created event for a contact that GoHighLevel marks as a CSV import.
Manual entry, API, Zapier, or MakeRecords a Lead. If the contact has no click ID, AnyTrack checks up to 4 times for one. Then AnyTrack matches the contact by phone number or email address. If no match exists, AnyTrack creates a server-side click ID, and the lead shows as Unknown.

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:

  1. Best: collect the lead on a native GoHighLevel funnel form. Add the _atid field 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.
  2. If an automation must create the contact: pass the original click ID through the automation into the _atid custom field of the contact. Set the field in the same request that creates the contact. See Pass the Click ID from an External Form and Set the Click ID When You Create Contacts Through the API.

For the same problem on other CRMs, see Why Conversions Show as Unknown or Direct.

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 _atid field. Add the field to each form (see Step 4).
  • GoHighLevel form embedded on another website. Add the _atid field 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 _atid custom field.
  • Backend or API. A server that creates the contact through the GoHighLevel API must set the custom field with the field key contact.atclid. See Set the Click ID When You Create Contacts Through the API.

Each source platform gives the Click ID under its own parameter:

Source platformClick ID parameterDestination in GoHighLevel
Typeformat_click_id_atid custom field
Unbounceclick_id_atid custom field
Elementorclick_id_atid custom field
Calendlyutm_term or sfid_atid custom field
LeadsHookatclid_atid custom field
Any standard HTML formhidden field, value --CLICK-ID--_atid custom field

In GoHighLevel, _atid is the display name of the custom field. The field key is contact.atclid.

Set the Click ID When You Create Contacts Through the API

Section titled “Set the Click ID When You Create Contacts Through the API”

This section applies when a developer, an automation, or a backend creates GoHighLevel contacts. Examples are a quiz backend and a Zapier or Make scenario. These contacts have no tracked browser session, so the Click ID must travel with the request.

Property of the fieldValue
Display name_atid
Field keyatclid (full key contact.atclid)
  1. Connect the AnyTrack app to your GoHighLevel sub-account. AnyTrack creates the contact custom field when it connects. Do not create the field yourself. A new field with the key _atid is a different field, and AnyTrack does not read it.
  2. Collect the Click ID on your page. See Pass the Click ID from an External Form.
  3. Send the Click ID to your backend with the lead data.
  4. Set the AnyTrack custom field to the Click ID in the same request that creates the contact. Use the field key contact.atclid to identify the field.

For the request format, read the GoHighLevel API documentation. AnyTrack documents only the field that it reads. 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:

  1. A native form has no _atid field. 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).
  2. An embedded or external form does not pass the click ID. Map the original click ID into the _atid custom field of the contact. See Pass the Click ID from an External Form.
  3. 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:

  1. Open the funnel settings in GoHighLevel and clear the Meta Pixel ID. GoHighLevel labels the field Facebook Pixel ID.
  2. Open the order form settings and clear the Meta Pixel ID.
  3. Open Settings > Integrations and disconnect the Facebook connection.
  4. Republish the funnel.
  5. Run a test purchase. Confirm that Purchase arrives in Meta Events Manager with the Source Conversions 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-11-14

Why does the Events Log show errors after installation?
Check three things. Verify that the AnyTrack Tracking Tag is in the head section of each funnel. Verify that the AnyTrack app is connected. Verify that you selected the correct GoHighLevel sub-account.
Why are my GoHighLevel conversions not appearing in AnyTrack?
Verify that the AnyTrack app is installed on the correct GoHighLevel sub-account. Then verify that the Tracking Tag is on the funnel.
Do I add the _atid field to a 1-Step Order Form?
Only if the element offers Add Object Fields. If the 1-Step Order Form does not offer that option, you cannot add the _atid field to it. AnyTrack can still track the purchase. Keep the Tracking Tag in the head section of the funnel. Keep the AnyTrack app connected to the correct sub-account. If an earlier opt-in form supports custom fields, add the _atid field to that form. The contact then holds the Click ID. Without a Click ID on the contact, AnyTrack matches the purchase with reference data such as email, then with the IP address. These matches are less reliable than a Click ID. Run a test purchase, then verify the event in the Events Log.
Why does the _atid value change between my funnel pages?
The _atid URL parameter carries the AnyTrack Page Click ID. The Tracking Tag writes the value when the page loads, and the value includes the current minute. The Property ID and the Client ID stay the same; only the final 4 characters change, when the minute changes. 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.