How to track the source of your leads in Elementor.
See exactly where every Elementor Forms enquiry came from, on every submission.
What the submission leaves out
Elementor Forms tells you a lead submitted a form. It does not tell you how that person found you. Not a word.
The submission arrives with a name, an email, whatever else you asked for, and nothing about whether it came from a Google Ad, an organic search, or a link somebody dropped in a Facebook group, not an Elementor defect. Elementor is a page builder, and the form module collects what you put on the form. Source data is not on the form. The visitor does not know it, and would not type it accurately if they did. It has to be captured separately and attached before the form submits.
Why the source disappears
Someone clicks a Google Ad on Tuesday and lands on your page with campaign parameters in the URL. They read for a minute, click through to your services page, come back, and fill in the form. By then the URL is clean. Elementor submits what is in the form fields at that moment, and the campaign data is three page loads behind them.
Two things have to happen for the source to survive. Something has to read the parameters and the referrer on the first page load. Something has to hold that data across the whole session, page changes included, and write it into the form the moment before submission. Both, or neither works.
Using more than Elementor forms?
One script covers every form on the site, whatever built it. Form tracking is the same setup for all of them.
Adding hidden fields to an Elementor form
Elementor supports hidden fields natively, which is the mechanism you need.
Elementor’s Default Value option on a hidden field accepts shortcodes and URL parameters, so it is tempting to drop in a parameter shortcode and call it done. That works only when the visitor submits on the same page load they arrived on. Most real sessions are not that.
Open the form widget
Edit the form widget and open the Form Fields panel.
Add a field and set its type to Hidden
Add a field, then set its Type to Hidden.
Label it something you will recognise
Set the Label to something you will recognise in your CRM. Lead Source does the job.
Set the field ID
Open Advanced on that field and set the ID to lead_source. The ID is what a script writes to, so it matters more than the label.
Repeat for each value you want recorded
A workable minimum is lead_source, lead_campaign and landing_page.
Check your send action includes the hidden fields
Under Actions After Submit, confirm your integration or email notification includes the hidden fields.
Why the fields arrive blank
If your hidden fields fill on a test submission and stay empty on real ones, it is almost always session loss. The parameter was on the landing page, the visitor moved, and nothing carried the value forward.
The other usual cause is the Actions After Submit configuration. The field exists, a script populated it, and the send action was built before the field was added, so it never reaches the payload. Check the payload. Not the builder.
What Lead Source does here
Lead Source installs as a single script in Elementor’s custom code area. On the first page load it records the referrer, any campaign parameters and the landing page. It holds that data for the whole session, and writes the resolved values into your hidden fields the moment before the form submits.
It records the page journey too. The lead record shows the first page the person landed on, every page they viewed, and the page they submitted from. When that lead becomes a customer, you can trace back to the ad or the article that produced them.
The same mechanism sits behind every guide in the form tracking library, whatever you built your forms in.
Lead Source installs in a few minutes and uses the hidden fields already sitting on your Elementor forms. Curious what your forms record right now? Check the source your forms are capturing today first.
Questions, answered.
Does this work with Elementor Pro only?
Hidden fields are available in Elementor Pro. On free Elementor the form widget is not available at all, so the question does not arise. If you are on free Elementor with a separate forms plugin, follow the guide for that plugin instead.
Will this break my existing form submissions?
No. Hidden fields are additive. Existing fields, validations, and send actions are untouched.
What happens if the visitor blocks cookies?
Nothing breaks. Lead Source uses no cookies and no client-side storage. The source is captured server-side at the moment of submission, so ad-blockers, consent refusals and UTM stripping do not take it away. Where a visit carries no usable signal at all, the source is recorded as Unknown rather than guessed at.
Can I see the full page journey, not just the first source?
Yes. The journey is recorded per visitor, first click through to submission, and attached to the lead record.
Track your Elementor leads. Free to start.
One script in Elementor’s custom code area. Every form on the site, with source, campaign and page journey attached.
Start freeFree to start · no card











