Skip to content

When a lead is collected on an external form (Typeform, Elementor, Calendly, LeadsHook, Unbounce) and then sent to a CRM (HubSpot, GoHighLevel, LeadByte, or a custom integration), you must pass the AnyTrack Click ID into the CRM's field — otherwise the conversion lands under Unknown.

When a lead is collected on an external form — Typeform, Elementor, Calendly, LeadsHook, Unbounce, and others — and then sent on to a CRM such as HubSpot, GoHighLevel, or LeadByte, attribution only survives if the AnyTrack Click ID travels with the lead and lands in the right field in the destination.

This page is the one rule that ties those two halves together, plus the exact parameter to use for each platform.

Why attribution breaks between a form and a CRM

Section titled “Why attribution breaks between a form and a CRM”

AnyTrack merges the session (what happens on your website after the ad click: UTM parameters, traffic source, first-party data) with offline events (what happens next away from the browser: CRM events, backend and shop orders, invoices, and affiliate network conversions that have no thank-you page).

The merge happens through parameters that travel from the browser to the destination platform (a form, a CRM, a shop). The main parameter is the AnyTrack Click ID, which AnyTrack generates automatically for each tracked event, such as a click or a form submit. Each destination has its own rules to ingest these parameters, and AnyTrack already maps them for supported destinations. In a custom setup (for example, your own form + HubSpot), you must tell the form to pass the value to the destination.

AnyTrack uses click-based attribution. When a visitor lands on a page that has the Tracking Tag, the tag collects the Click ID and stores it as first-party data. When a conversion occurs later, AnyTrack matches it back to that session.

A contact created inside your CRM from an external form or a Zapier/Make automation never had a tracked browser session of its own. So unless the Click ID is carried across with the lead, the CRM-side events — Lead, deal stages, lifecycle changes — have nothing to match on and land under Unknown.

Two steps, on every external-form → CRM flow:

  1. Collect the Click ID on the form. AnyTrack appends it to the form through AutoTag or a hidden field whose value is the --CLICK-ID-- token. Each form platform exposes it under its own parameter (see the table below).
  2. Map it into the CRM’s field. However the lead reaches the CRM — a native connector, a webhook, or Zapier/Make — map that Click ID value into the destination field AnyTrack reads.

The value is the 34-character AnyTrack Click ID. On some platforms the field holds a shorter form. The LeadsHook atclid field holds the 30-character Page Click ID of that minute, and the HubSpot property holds the 26-character Property ID and Client ID. AnyTrack accepts all three forms. They match differently: 34 characters match one exact event, 30 characters match the latest event of the visitor, and 26 characters match the latest event of the visitor before the conversion. See Server-Side Client ID. The field name changes per platform.

Form / funnelParameter that carries the Click ID
Typeformat_click_id
Unbounceclick_id
Elementorclick_id (hidden field, value --CLICK-ID--)
Calendlyutm_term or sfid
ClickFunnelsclick_id
LeadsHookatclid (a field that the Tracking Tag fills)
Any standard HTML forma hidden field you name, with value --CLICK-ID-- (Form Tracking)
Destination CRMField that receives the Click ID
HubSpotthe AnyTrack Click ID contact property
GoHighLevelthe _atid custom field (field key contact.atclid)
LeadBytec3
Any custom CRMa custom field you create to hold the value (custom integration)

In GoHighLevel, AnyTrack creates the custom field when you connect the app. Do not create it yourself. When a backend or an automation creates the contact, set the field in the same request. See Set the Click ID When You Create Contacts Through the API.

When an automation moves the lead from the form to the CRM, the Click ID is just another field to map:

  1. Make sure the form passes the Click ID (the hidden field is present and populated — for Typeform that is at_click_id).
  2. In your Zap or Make scenario, find that field in the form’s output.
  3. Map it into the CRM field from the table above — for example, into the HubSpot AnyTrack Click ID property.
  4. Turn the automation on and submit a test lead.
  1. Visit the page where the form loads from a tracked source (or simulate one with UTM parameters), in an incognito window.
  2. Submit a test lead through the form.
  3. Confirm the Click ID reached the form — for Typeform, check that at_click_id is populated in the submission.
  4. Open the contact in your CRM and confirm the destination field (for example, the HubSpot AnyTrack Click ID property) holds a value like IBTO9lOfAMybrKiiB1U9YG91IFjs3Dv9AV.
  5. In the AnyTrack Conversions Report, confirm the conversion is attributed to the correct campaign instead of Unknown.

FAQ

FAQ was last reviewed on 2026-11-13

Do I need this if I use the form's native CRM connection?
Yes. A native connection between an external form and a CRM (for example Typeform to HubSpot) moves the lead, but it only carries the Click ID if you map it. Add the Click ID parameter to the connection so it lands in the CRM field.
My lead has UTM data in the CRM but still shows as Unknown. Why?
UTM values stored on the CRM contact are not the same as a tracked AnyTrack session. Attribution matches on the Click ID, not the UTM values. If the Click ID did not travel into the CRM field, the conversion stays Unknown. See Why Conversions Show as Unknown.
What value should the field contain?
The AnyTrack Click ID, a 34-character string such as IBTO9lOfAMybrKiiB1U9YG91IFjs3Dv9AV. AnyTrack substitutes the --CLICK-ID-- token, or the platform parameter (for example Typeform's at_click_id), with this value automatically. Some fields contain a shorter form instead: the LeadsHook atclid field holds the 30-character Page Click ID, and the HubSpot property holds the 26-character Property ID and Client ID. AnyTrack accepts all three forms, and all three start with the same Property ID and Client ID.
How does AnyTrack match a 34-, 30- or 26-character value?
AnyTrack matches a 34-character value to one exact event. It matches a 30-character value to the latest event of the visitor, up to 2 minutes after the minute in the value. It matches a 26-character value to the latest event of the visitor before the conversion. See Server-Side Client ID for the full rules.
Which field names does the Custom integration accept for the Click ID?
The Custom integration accepts click_id, clickid, click-id and click. It does not accept atclid or _atid. If your form tool names the field _atid or atclid, map its value into a field named click_id before the webhook sends it.
My CRM is not in the table. What do I do?
Create a custom field on the CRM contact to hold the Click ID, then map the form's Click ID parameter into it. See Custom Integrations and Form Tracking.