Skip to content
TraceLead

Elementor form UTM tracking through the field ID you already set

Set a Hidden field's ID to tl_channel in the Form widget and TraceLead fills it with where the visitor first came from. The value is in the submission, the notification email and the webhook, under the ID you chose.

No card needed. No lead caps on any plan.

  • Elementor Pro forms and WordPress plugin: Tested on every release against the builder's markup
  • How we test
Added to your Elementor submission Sample data

Added by TraceLead's hidden fields. The name and email stay in your form.

Channel
Paid search
Source / medium
google / cpc
Campaign
brand-uk
Click ID
gclid
Arrived from

Why an Elementor hidden field for UTM tags loses the campaign

The usual setup fills the Hidden field's default value with the Request Parameter dynamic tag for utm_source. That reads the address of the page the form is on, at that moment.

So it works for a landing page with the form on it. Send the ad traffic to a service page, or let visitors find the form in your header popup three pages later, and the tags are gone. Search and social visits never carried any.

Two visits, one enquiry Sample data
  1. Monday Clicks a Google ad, lands on /pricing?utm_source=google&utm_medium=cpc&utm_campaign=brand-uk&gclid=…, leaves.
  2. Thursday Types your address, opens /contact, sends the Elementor form.
Hidden field Read from the URL Filled by TraceLead
tl_channel empty paid_search
tl_source empty google
tl_utm_campaign empty brand-uk
tl_gclid empty Cj0KCQjw…
tl_landing_page /contact /pricing?utm_source=google&utm_medium=cpc

TraceLead keeps the first visit in a first-party cookie on your domain once your banner allows it, and fills the field on whichever page, or popup, the form is sent from.

How to add UTM tracking to Elementor forms

Elementor names its inputs form_fields[<ID>], so the field ID is the handle. The plugin finds Hidden fields whose ID starts with tl_ and marks them for TraceLead.

The full Elementor guide
  1. Install the TraceLead WordPress plugin, 1.1.0 or later

    Upload and activate the plugin and paste your site ID under Settings → TraceLead. Version 1.1.0 added the Elementor hook (elementor_pro/forms/render/item/hidden); earlier versions leave Elementor fields alone.

  2. Add a Hidden field per value

    Edit the Form widget, add an item and set its type to Hidden. Give it a label you will recognise in submissions, such as "Channel", and leave the default value empty.

  3. Set the field ID under Advanced

    On the field's Advanced tab, set ID to tl_ plus the field:

    Channel        → tl_channel
    Source         → tl_source
    Campaign       → tl_utm_campaign
    Google click   → tl_gclid
    Landing page   → tl_landing_page

    The input renders as form_fields[tl_channel] with data-tracelead="channel", and the snippet fills it.

  4. Use the values in your actions after submit

    In the Email action, place each field's shortcode where you want it, for example [field id="tl_channel"]. The Webhook action and CRM actions receive the fields with the rest of the form. Connect consent in Settings → TraceLead, then visit a page with ?utm_source=test&utm_medium=cpc, accept cookies and submit from another page.

What arrives in Elementor submissions and webhooks

Each field holds one plain value, saved in Elementor's form submissions and passed to every action under its ID. Use as many as you need.

Also available: utm_term, utm_content, gbraid, wbraid, Microsoft, Meta, LinkedIn, TikTok and X click ids, and optionally the last touch and the number of visits before the enquiry.

Field ID Holds
tl_channel The channel the first visit came from
tl_source Where it came from
tl_medium How it came
tl_utm_campaign The campaign name from your UTM tags
tl_gclid Google Ads click id, for offline conversion import
tl_referrer_host The site that sent the visit
tl_landing_page The first page seen, sensitive parameters removed
tl_first_touch_at When the first visit happened

Attribution without personal data. No names, emails, form values, IP addresses or user agents. Ever.

No privacy workarounds. Nothing before consent, no fingerprinting, no ad-blocker bypass, no cross-site identity.

Made in the UK. GBP pricing, UK consent rules in mind, and a person who answers email.

Questions, answered

Anything else? Email us and a person replies.

How do I pass UTM parameters to an Elementor hidden field?

In the Form widget, add a field of type Hidden and set its ID, under Advanced, to tl_utm_campaign (or tl_utm_source, tl_channel and so on). With the TraceLead WordPress plugin 1.1.0 or later installed, the field is filled from the visitor's first visit, whichever page they submit from.

Why does the Request Parameter dynamic tag leave my hidden field empty?

It reads the address of the page the form is on. If the visitor landed on another page from your ad and then opened the contact page, the UTM tags are no longer there. Visits from search and social never had them. Leave the default value empty and let TraceLead fill the field instead.

How do I track lead source in Elementor Pro forms?

Add Hidden fields with the IDs tl_channel, tl_source and tl_medium. Every submission then records the first visit's channel (paid_search, organic_search, organic_social, email, referral, direct and so on), source and medium.

Do the values reach the email, webhook and CRM actions?

Yes. They are ordinary form fields, so every action after submit receives them under their ID: the Email action through the field's shortcode, the Webhook action with the other fields, and any CRM action you map them in. They are also saved in Elementor's form submissions.

Can Elementor forms capture the gclid?

Yes. Add Hidden fields with the IDs tl_gclid, tl_gbraid and tl_wbraid. The Google Ads click id is kept from the first visit for the lifetime you set, 90 days by default, so it reaches the submission even when the enquiry comes days later.

Does it fill forms inside Elementor popups?

Yes. Forms that appear after the page loads, in a popup or after an AJAX reload, are filled when they appear. Nothing is filled before your cookie banner signals consent, and the form submits either way.

Do I need Elementor Pro?

Yes. The Form widget is part of Elementor Pro, and the TraceLead plugin marks its Hidden fields through Elementor Pro's own render hook. The plugin must be version 1.1.0 or later.

Your next Elementor submission, with its source.

Install the plugin, add Hidden fields with tl_ IDs, send a test submission.

No card needed. Cancel any time.

The whole install v1.4.0
Form widget → Hidden field → Advanced → ID
tl_channel
tl_source
tl_utm_campaign
tl_gclid

Email action: Source: [field id="tl_channel"]