The standard install and what’s missing

Forminator is excellent at form building and email notifications. What it doesn’t do out of the box: fire Lead events to Meta Pixel, GA4, or Google Ads with the right metadata. Without that, your forms work but your ad accounts are blind.

The complete stack has five pieces working together. Get any one wrong and the chain breaks.

Piece 1: UTM capture before form submit

When a paid visitor lands on your site, their UTMs are in the URL: /?utm_source=facebook&utm_medium=cpc&utm_campaign=spring2026. Forminator doesn’t capture these by default.

The fix: hidden form fields named utm_source, utm_medium, utm_campaign, utm_term, utm_content. Populate them via JavaScript on page load — pull from URL params, store in sessionStorage, write into the form’s hidden fields when the form is submitted. Many UTM-capture plugins do this automatically — UTM Capture Field Extension for Forminator, or a small custom snippet via WPCode.

Piece 2: Meta Pixel Lead event with deduplication

On form submit success, fire a Lead event to the Meta Pixel. Use Forminator’s “Custom JavaScript on submit” hook (in the form’s Behaviour settings):

fbq('track', 'Lead', {
  content_name: 'Contact Form',
  content_category: 'Inquiry',
  value: 0,
  currency: 'USD'
}, { eventID: 'lead_' + new Date().getTime() });

The eventID is critical — it lets Meta deduplicate this browser-side event with the server-side CAPI event you’ll fire next.

Piece 3: CAPI from the WordPress server

Use a plugin like PixelYourSite Pro, Pixel Manager Pro, or the Meta Conversions API plugin. Configure it to fire a Lead event on Forminator submit, server-side, with the same eventID as the browser event.

Verify in Meta Events Manager > Test Events. You should see two Lead events with matching IDs — Meta will deduplicate them and report one Lead with high Event Match Quality.

Piece 4: GA4 conversion event

In Forminator’s submit JavaScript, also fire a GA4 event:

gtag('event', 'generate_lead', {
  form_id: 'contact-main',
  form_destination: window.location.pathname
});

In GA4, mark generate_lead as a conversion. Now your GA4 reports include lead conversions and you can attribute them by source/medium/campaign across all channels, not just paid.

Piece 5: Google Ads conversion tag

Create a Lead conversion action in Google Ads. Generate the gtag snippet. Fire it from Forminator’s submit JavaScript using the same pattern. Like the Meta side, this should ideally be paired with a server-side conversion via offline conversion uploads from your CRM — but the client-side fire alone gets you 80% of the value immediately.

Piece 6: CRM integration with full data passthrough

Forminator → HubSpot/Pipedrive/etc. via Forminator’s native integration or a Zapier/Make connector. Map every form field to a CRM contact property. Crucially, also map the UTM hidden fields — utm_source goes to your “Original Source” CRM field, utm_campaign to “Original Campaign,” and so on.

Now when a lead lands in HubSpot, the attribution travels with it. You can build the closed-won-by-source report from the previous article, and it actually has data in it.

The verification checklist

After setup, submit a real test form and verify:

The thank-you page move

Configure Forminator to redirect to a /thank-you page on success. Two reasons: it gives you a clean second pixel fire opportunity, and it lets you set up a Google Ads conversion based on a page view if your client-side event tracking gets blocked. Belt and braces.

The maintenance reality

Plugins update. Themes change. WordPress core updates break things. Once a month, run the verification checklist again. Once a quarter, send a real test lead through and confirm it lands in CRM with UTMs intact. Things drift. The discipline of checking is what separates a tracking setup that works for a year from one that breaks silently in week three.

Leave a Reply

Your email address will not be published. Required fields are marked *