Forminator integration

How to track the source of your leads in Forminator.

Forminator’s hidden fields already offer the referrer and the current URL. Both describe the last click. The lead source is usually the first one.

Works with every Forminator form Works alongside your existing hidden fields Live in minutes
Salesforce
HubSpot
Pipedrive
Gmail
Twilio
Google Ads
Gravity Forms
Jotform
Webflow
Wix
Calendly
Typeform

Works with every Forminator feature

AJAX submissions Multi-step forms Conditional logic Calculations Payment forms Polls & quizzes
Two ways to run it

Forminator, with the plugin or the script.

Run the free plugin and each source is saved in wp-admin, a menu away from Forminator's Submissions screen. Run the hosted script and leads go to your Lead Source dashboard, outside WordPress. The capture matches. The storage differs.

Free · WordPress.org

The official plugin

  • Saves the source with each Forminator submission, in wp-admin
  • Two-click install from the directory, no account needed
  • Works alongside your existing Forminator hidden fields, nothing to reconfigure
View on WordPress.org
Hosted · any platform

The one-line script

  • One JavaScript line in your <head>, no plugin and no PHP
  • Leads land in your Lead Source dashboard, independent of WordPress
  • Survives a rebuild, host change or full migration
Start free →
The gap

Forminator handles a lot of what form tools should handle.

Forminator packs a lot into a free form builder for WordPress. Multi-step, calculations, polls, payments. Its hidden-field type even offers URL, HTTP referer and query parameter values, built in. The gap sits between the submission landing and you understanding where the lead actually came from.

What Forminator captures

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
What still needs wiring

The interpretation layer

  • Translating raw UTMs into named campaigns
  • Persisting source across multi-page navigation
  • Every page read before the form
  • AJAX submissions firing GTM data-layer events
  • Rebuilding that hidden-field set on each new form
The usual workaround

Adding hidden fields in Forminator

Forminator’s hidden-field types are better than most on WordPress. They are still hidden fields, which means you add them per form, map them per email template, and debug the AJAX versus non-AJAX hook behaviour when something does not come through.

The manual way

  • 01
    Drop hidden fields into every Forminator form: Embed URL, HTTP Refer URL, plus a Query Parameter field for each UTM key. Call it 5–7 per form.
  • 02
    Discover that a Query Parameter field only looks at the address of the page the form renders on. A visitor who arrived on another page with UTMs brings none with them. Write a cookie script.
  • 03
    Edit 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.
  • 04
    For GTM users: Forminator’s docs note that default AJAX submissions don’t fire data-layer events. Hook forminator:form:submit:success manually in custom JS.

With Lead Source

  • Install the plugin, or add one tag to the header. Forminator's field list is never opened.
  • Lead Source detects every Forminator form on the site automatically. AJAX submissions, multi-step forms, popups, polls, and quizzes are all covered.
  • The source is the one from the visitor's first page, held through the visit, and the campaign reads as a name (“Google Ads · Brand Search”) where a Query Parameter field would store the UTM as typed.
  • No {field-id} tags to map into emails, and the Forminator form you build next month reports its source from the first submission.

Forminator starts you further along than most. The hidden fields still need wiring, per form and per email, before they add up to a source you can report on.

The session problem

Forminator form tracking across a session

Forminator ships more source-adjacent hidden field options than most, the referrer and the current URL included. It is a better starting point than the average plugin.

Every one of those options is read as the form renders. HTTP Refer URL on the contact page is your own blog post, the page they left one click ago. The ad they clicked on Tuesday is three clicks back. On a multi-page visit those are two different answers, and only one of them is the lead source.

Form tracking records the first referrer and campaign of the visit, carries them through the rest of the visit, and gives Forminator's submission the Tuesday answer.

Four failure modes

Why the Forminator lead source is empty

A useless or blank source on a Forminator submission usually traces to one of four causes.

HTTP Refer URL saved a full page address, which no report can group into a channel. The UTMs never left the landing page, so the Query Parameter field on the contact page had none. The hidden field is present but set to a type or parameter name that never fills. Or the Mailchimp or HubSpot integration was mapped before that hidden field was added, so the submission holds it and the connector never sends it.

On Forminator the first cause is the likeliest, because the built-in fields do fill in. A referrer URL is a starting point. Mapping it to a fixed lead source taxonomy is how it becomes a number you can add up.

The hosted option

One script tag. That’s the whole thing.

Would rather skip the plugin? Open an account and copy the tag your dashboard gives you into the site header. Forminator forms are detected from then on, in popups and multi-step layouts, AJAX or not. Its general shape is below, with a placeholder standing in for your site key.

Lead source tracking installs in a few minutes and your Embed URL and HTTP Refer URL fields keep working. For a view of what they catch now, try the source your forms are capturing today.

Your real code is in the dashboard
<!-- Paste your real snippet from app.leadsource.co -->
<script async src="https://app.leadsource.co/ft.js" data-site="YOUR_SITE_KEY"></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.

Install on WordPress

Three steps. Most sites are done in five minutes.

1

Get your tag

Open a free account. The dashboard shows a tag with your site key already filled in, ready to copy.

No credit card required to start. The signup flow takes about a minute.
2

Put it in the head

Any of WPCode, Insert Headers and Footers or Header Footer Code Manager will do it, as will a direct edit to the theme’s header.php. The snippet goes anywhere inside the <head>.

Don’t worry about caching plugins; async scripts don’t need special handling. You don’t need to clear anything.
3

Try a real submission

Submit a Forminator form, a poll or quiz counts too. It is in Forminator's Submissions straight away, and in Lead Source a minute or two later with channel, campaign and page path.

Want to test attribution end-to-end? Add ?utm_source=test to the URL before you submit. That’ll be the source on the lead.
Common questions

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.

Can I use the WordPress plugin instead of the script for Forminator?

Yes. It is free on WordPress.org: in wp-admin, Plugins, Add New, search "Lead Source", install and activate. Forminator submissions then carry a source, stored in your own WordPress admin. Pick the hosted script if you would rather Lead Source held them. Either records the same data.

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?

Yes, all three. The source is attached when the final step submits, so however many steps, calculations or conditional branches came first, the result is the same.

Will it conflict with Forminator's built-in integrations. Mailchimp, HubSpot, ActiveCampaign?

No. Lead Source reads the submit event and leaves the form and the data alone, so Mailchimp, HubSpot and ActiveCampaign keep receiving exactly what you mapped.

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.

Channel, campaign and page path on every Forminator submission, polls and quizzes included. Keep your Embed URL and HTTP Refer URL fields if they feed something. Lead Source runs next to them.

Start free

Free to start · no card