Lead source tracking for Forminator.
See where every Forminator enquiry came from, down to the campaign.
Works with every Forminator feature
Forminator handles a lot of what form tools should handle.
Forminator is genuinely one of the more capable WordPress form builders. Multi-step, calculations, polls, payments. Its hidden-field type even includes URL, HTTP referer, and query parameter values built in. The gap is what happens between the form submission and your understanding of where the lead came from.
Hidden field types that actually help
- Embed URL. The page the form was on
- HTTP Refer URL. The previous page
- Query Parameter. By name (utm_source, etc.)
- Custom values, user IP, user ID
- Form data, entries, and submissions log
The interpretation layer
- Translating raw UTMs into named campaigns
- Persisting source across multi-page navigation
- The full page journey before submission
- AJAX submissions firing GTM data-layer events
- Adding the same five hidden fields to every form
Forminator has the building blocks. They still need to be assembled.
Forminator’s hidden-field types are the best in the WordPress form ecosystem. They’re still hidden fields though, which means you add them per form, map them per email template, and debug the AJAX-versus-non-AJAX hook behaviour when something doesn’t come through.
The manual way
- 01Add hidden fields to every Forminator form. Typically Embed URL, HTTP Refer URL, and one Query Parameter field per UTM key. 5–7 fields per form.
- 02Realise Query Parameter hidden fields only read the URL at form load. If a visitor lands with UTMs and navigates before submitting, the URL is clean. Add a cookie-persistence script.
- 03Edit each form’s email template. Map each hidden field into the email body using its
{field-id}tag, or you’ll never see the values in your inbox. - 04For GTM users: Forminator’s docs note that default AJAX submissions don’t fire data-layer events. Hook
forminator:form:submit:successmanually in custom JS.
With Lead Source
- 01Paste one script tag into your WordPress header. That’s the entire install.
- 02Lead Source detects every Forminator form on the site automatically. AJAX submissions, multi-step forms, popups, polls, and quizzes are all covered.
- 03Source persists across the full visitor journey, not just the URL of the form page. The campaign name is written out (“Google Ads · Local Services Sydney”) rather than left as a raw UTM string.
- 04Your Forminator forms and email templates stay exactly as they are. New form built next month? Already tracked, no additional setup.
Forminator gives you more than most form builders, and there’s still meaningful wiring to do before any of it produces a usable record of where your leads came from.
One script tag. That’s the whole thing.
Sign up, copy the snippet from your dashboard, and paste it into your WordPress header. Every Forminator form on the site gets detected automatically from there, including AJAX submissions, multi-step forms, and forms in popups. The block below shows what the snippet looks like, with placeholder text where your unique site ID will be.
<!-- illustrative. Paste your real snippet from app.leadsource.co --> <script src="https://leadsource.co/s/[your-site-id].js" async></script>
The real snippet is generated for your account when you sign up. Copy it from the install page in your dashboard. Under 50ms execution. Async, so it doesn’t block your page. No dependencies.
Three steps. Most sites are done in five minutes.
Sign up and get your script tag
Create your free Lead Source account. You’ll see a snippet on the dashboard with your unique site ID already in it. Copy it.
Paste it into your WordPress header
Use a header plugin like WPCode, Insert Headers and Footers, or Header Footer Code Manager. Or edit your theme’s header.php directly if you’re comfortable. The snippet goes anywhere inside the <head>.
Submit a test through any Forminator form
Open a page with a Forminator form on it. Fill it in. Submit. Within a minute or two, the lead appears in your Lead Source dashboard with the source, campaign, and page journey attached.
?utm_source=test to the URL before you submit. That’ll be the source on the lead.Questions, answered.
Do I still need to add Forminator's hidden fields if I'm using Lead Source?
No. Lead Source captures source data independently of your form fields, so the Embed URL, HTTP Refer URL, and Query Parameter hidden fields aren't required for us to work. If you already have them in place and they're feeding a CRM or workflow, leave them. We don't conflict.
Does it work with Forminator's default AJAX submissions?
Yes, AJAX is Forminator's default and Lead Source handles it natively. We hook the forminator:form:submit:success event for AJAX submissions and fall back to the standard form-submit event for non-AJAX setups.
What about multi-step Forminator forms, calculations, and conditional logic?
Works with all of them. Lead Source captures attribution at the moment of final submission. The path that got there doesn't matter. We see the success event, we attach the source.
Will it conflict with Forminator's built-in integrations. Mailchimp, HubSpot, ActiveCampaign?
No. Lead Source observes the submission event but doesn't modify the form or intercept the submission. Forminator's connector integrations all keep working exactly as configured.
I'm a WPMU DEV member with Forminator Pro. Does that change anything?
No. Lead Source works identically with free Forminator and Forminator Pro. Pro features (payment integrations, advanced conditional logic, file uploads to cloud storage) all continue to function.
Track your Forminator leads. Free to start.
One script handles every Forminator form on your site, with source, campaign, and page journey captured on every submission. Your existing hidden fields keep working if you want them; Lead Source runs alongside, not in place of.
Start freeFree to start · no card