How to track lead source in HTML Forms
Wire up source attribution for every HTML Forms entry so each submission carries the campaign, channel, and visitor journey that produced it.
On this page
HTML Forms is the no-frills WordPress plugin for developers who’d rather write their own HTML than wrestle with a visual builder, free, open-source, lightweight, and famously fast. What it doesn’t do (and doesn’t claim to) is tell you which marketing campaign produced each submission. SourceLoop adds that piece without rewriting any of your HTML.
Three steps, around five minutes total, attribution flowing on every submission afterwards.
What SourceLoop captures from HTML Forms
Each HTML Forms submission lands in SourceLoop with this context:
- The visitor’s acquisition channel (organic, paid, referral, social, direct)
- UTM parameters parsed from the landing URL
- Pages visited in chronological order before the submission
- Time on site ahead of the form fill
- Number of distinct sessions before the lead converted
- Email + name extracted from the form fields
- First-touch landing page the visitor first arrived on
- Source attributed to the converting session
- Device, country, browser
Before you start
You’ll need:
- A SourceLoop workspace (free trial)
- WordPress admin access (or another way to add markup to
<head>) - An HTML Forms form active on a published WordPress page
Step 1: Drop SourceLoop’s snippet into WordPress
Inside SourceLoop, head to Setup -> Tracking code in the sidebar and copy the snippet.
Add it to your WordPress <head>. The typical paths:
- A standalone header plugin (Insert Headers and Footers, WPCode)
- Your active theme’s
header.phpjust before</head> - Tag manager firing on All Pages
- For developer-built themes, the
wp_headhook is the right place
Whichever path, the snippet must run on every page that hosts an HTML Forms form.
Step 2: Confirm the form is on a tracked page
HTML Forms doesn’t require any per-form configuration to play nicely with SourceLoop. Once the snippet loads, every HTML Form on every page that includes the snippet is attributable.
Quick sanity pass:
- The form is on a published page or post
- The form includes an email field (SourceLoop uses email to identify the lead)
- Aggressive script-defer rules aren’t reshuffling SourceLoop after your form’s submit handler runs
Step 3: Run a verification submission
Open your form’s page in an incognito tab, append ?utm_source=test&utm_medium=verify&utm_campaign=htmlforms-check to the URL, and submit a test entry with an email you control.
Within seconds, the new lead should appear at the top of the Contacts Hub in SourceLoop with the three test UTM values pinned to the record.
Where to see HTML Forms submissions in SourceLoop
Contacts Hub
Every HTML Forms submission becomes a contact row at app.sourceloop.ai/contacts. Drill into a contact for the visitor’s complete pre-submission journey.
Attribution dashboard
For the broader read, app.sourceloop.ai/dashboards/traffic groups HTML Forms submissions by source, medium, and campaign so you can see what’s converting at a glance.
Funnel reports
In app.sourceloop.ai/funnels, configure a funnel ending in “HTML Forms submission”. Cut by source, landing page, or device to find the highest-converting paths from first visit to form fill.
If paid acquisition is in your mix, forward HTML Forms submissions to Google Ads, Meta, and LinkedIn as offline conversions so the bidding algorithms train on real lead generation, not vanity clicks. Connect your Google Ads account walks through the setup.
Frequently asked questions
-
HTML Forms is a free open-source plugin. Does that affect SourceLoop compatibility?
No. SourceLoop tracks submissions in the browser, independent of how the form plugin is licensed or distributed. The free plugin works exactly the same as any commercial plugin.
-
I built my form with raw HTML inside HTML Forms. Will it still get tracked?
Yes. That's exactly the kind of form the plugin is built for, and SourceLoop attaches attribution to the submission regardless of how custom the HTML is, as long as the form posts back to the page on your site.
-
My HTML Form submits to Mailchimp via the plugin's integration. Does the Mailchimp subscriber still get the source data?
SourceLoop creates an attribution-rich contact record on its own side, independent of Mailchimp. If you want Mailchimp itself to receive UTM data, add hidden form fields for the UTM values and map them to Mailchimp merge fields, alongside (not instead of) SourceLoop.
-
Can I track HTML Forms submissions inside a WordPress page builder (Gutenberg, Beaver, Bricks)?
Yes. The page builder you use to place the form's shortcode is irrelevant. As long as the SourceLoop snippet loads in `<head>` on the page, the submission gets attributed.
-
Does this work if my form posts via AJAX vs full page reload?
Yes. Both submission paths are captured the same way.