Skip to content

Why Conversions Show as Unknown or Direct

Conversions land under Unknown or Direct when AnyTrack can't match them to a tracked click. Learn the common causes and how to fix attribution.

In the Campaign Report, a conversion shows under Unknown or Direct when AnyTrack received the conversion but could not match it back to a tracked ad click. The conversion is real — AnyTrack just has no click and no UTM data to attribute it to a specific campaign.

AnyTrack uses click-based attribution: when a visitor lands on a page that has the Tracking Tag, the tag collects the click ID and UTM parameters and stores them as first-party data. When a conversion fires later, AnyTrack matches it to that stored session. No tracked session means no attribution.

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 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).
  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 → GoHighLevel. Tools: Zapier, GoHighLevel. Zapier maps the click ID into the _atid custom field of the GoHighLevel contact. Data: click ID → _atid (present).
  3. GHL "Contact created" → AnyTrack. 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 → 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".
  3. GHL "Contact created" → AnyTrack. 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.

This Applies to Any CRM + External Form Setup

Section titled “This Applies to Any CRM + External Form Setup”

This is not specific to GoHighLevel and Zapier. The same break happens in any flow where a contact is created outside a tracked browser session — for example HubSpot, GoHighLevel, or any CRM fed by Typeform, Jotform, an external form builder, or a no-code automation like Zapier or Make.

The native HubSpot and GoHighLevel integrations work because contact creation happens on the platform’s own forms or native integration, where the AnyTrack Tracking Tag is present and the click ID is collected at session time. On GoHighLevel, the native form must also carry the _atid field, or the click ID never reaches the contact — see GoHighLevel Integration. The moment you move form collection to an external form, or push the contact in through Zapier, that built-in link is gone — you have to recreate it yourself.

CauseWhat happens
Contact created server-to-serverA lead pushed in by Zapier, Make, or another app never had a tracked session, so there is no click ID to match.
Ad URLs have no UTM templateIf the ad click that started the session carried no UTM (or only fbclid), AnyTrack has no campaign to credit.
Tracking Tag missing on the landing pageIf the page where the click landed has no Tracking Tag, the session is never collected.
External form or CRM without the click IDA HubSpot, GoHighLevel, or other CRM contact created from an external form (Typeform, Jotform) or a Zapier-type automation needs the click ID passed as a hidden field to carry attribution.
Intermediate source overwrote UTMA redirect through PayPal, an email tool, or a checkout can replace the UTM. Use Ignored Sources to protect attribution (Personal plan and above).
  1. Confirm how the conversion is created. If it comes from an automation (Zapier, Make, a webhook), the click ID must be passed with it. Collect the lead on a Tracking-Tag page instead, or map the original click ID into the contact’s _atid field. On a GoHighLevel native form, also add the _atid field to the form itself — see GoHighLevel Integration.
  2. Apply a UTM template to every ad. Each paid campaign URL should include utm_source, utm_medium, utm_campaign, and utm_id. See Facebook UTM Parameters.
  3. Verify the Tracking Tag is on every landing page, including funnel and thank-you pages.
  4. Check the date range. Conversions from before you connected the pixel or added UTM parameters cannot be attributed retroactively — narrow the report to dates after setup.
  5. Allow up to 72 hours. Attribution can lag, so very recent conversions may show as Unknown until processing catches up.

FAQ & Troubleshooting

FAQ was last reviewed on 2026-10-05

My lead has UTM data in my CRM but still shows as Unknown. Why?
UTM data sitting on the CRM contact is not the same as a tracked AnyTrack session. If the contact was created server-to-server (for example by Zapier), there was no browser session for AnyTrack to match, so it stays Unknown. The click ID must travel with the lead — collect it on a Tracking-Tag page or pass it into the _atid field.
Is an Unknown conversion lost?
No. The conversion is still recorded and still sent to your ad platforms via the Conversion API. It just is not credited to a specific campaign in the AnyTrack Campaign Report.
Will reapplying my UTM template fix existing Unknown conversions?
No. Attribution cannot be applied retroactively. New conversions will attribute correctly once the click ID and UTM are collected at session time, but past Unknown conversions stay as they are.
Why do some conversions show as Direct instead of Unknown?
Direct means the session started with no referrer and no UTM — the visitor arrived without a trackable source. Unknown means AnyTrack could not match the conversion to any session at all. Both point to missing click or UTM data.
Does this only affect GoHighLevel and Zapier?
No. It affects any CRM (HubSpot, GoHighLevel, and others) when the contact is created outside a tracked browser session — for example from an external form like Typeform or Jotform, or through a Zapier or Make automation. The native CRM integrations work because contact creation happens on the platform's own forms where the Tracking Tag runs; on GoHighLevel the form must also carry the _atid field. For any external form or automation, follow the Form Tracking guidelines and pass the click ID through to the CRM. See the HubSpot and GoHighLevel integration guides for native setup.