WS Form lead tracking

How to track lead source in WS Form

WS Form runs everything inside the form. Lead Source adds everything that happened before it loaded: the campaign, the landing page and the pages read on the way.

No hidden fields REST submits covered Free to start
app.leadsource.co · lead record
Dana Okafor
Okafor & Co
Channel
Google Ads
Campaign
cyber-security-audit
Landing page
/managed-it
WS Form
Quote request
Page journey
  1. /managed-it
  2. /blog/managed-it-costs
  3. /contact
Salesforce
HubSpot
Pipedrive
Gmail
Google Ads
Gravity Forms
Jotform
Webflow
Wix
Typeform

WS Form submissions, with their story

Every field you designed, plus the channel, campaign and route behind it.

WS Form, no #query_var upkeep

No hidden field per form, no parameter on every link. Keep any you already built.

WS Form REST submits, credited

The default no-reload submit stays on. The lead names its source regardless.

WS Form covered in three steps

Header code once. Conditional logic and calculations run exactly as before.

What lands on the lead

WS Form submissions, with their story

WS Form passes over every field submitted, the form it came from and the page it sat on. Lead Source attaches the before. Source and channel, the campaign with its complete UTM set, click IDs, landing page and referrer, plus first visit, last visit and every page viewed on the way in.

  • Your WS Form fields arrive exactly as designed.
  • The campaign and its UTM values on that same lead.
  • Pages read before the form, in order.
one WS Form submission, two records
What WS Form gives
Name
Dana Okafor
Form
Quote request
Page
/contact
What Lead Source adds
Channel
Google Ads
Campaign
cyber-security-audit
Click ID
gclid captured
Landing page
/managed-it
logic and calculations, as you built them.
two ways to capture a campaign
The #query_var route
Hidden fields
one per value, per form
Links
parameters on each one
Organic visits
no parameters to read
The Lead Source route
Hidden fields
none
Links
as they are
Organic visits
Organic search
one snippet in the header. nothing per form.
#query_var

WS Form, no #query_var upkeep

WS Form can do the manual method properly. Hidden fields fill themselves from the URL with its #query_var variable, and the form passes the values onward. Because it can, people build it, then look after it across every form and every link that opens one, forever. Lead Source captures the visit separately, so there is no field to build and none to maintain.

  • No hidden field per tracked value.
  • Links and buttons left exactly as they are.
  • Existing #query_var fields keep working beside it.
First and last touch

WS Form leads, first visit to final submit

Lead Source keeps both ends of every lead: the visit that brought them in and the visit that ended in a submission. Put money behind whichever campaign does the opening. Then back whichever does the closing.

REST API submission

WS Form REST submits, credited

Out of the box, WS Form submits through the WordPress REST API with no page reload. Leave it that way. A conversion tag that only fires on a thank-you page skips these, because no new page ever loads. Lead Source has already matched the visit, and the submission lands on it with both touches attached.

  • Default submit settings stay on.
  • No redirect to a thank-you page required.
  • First and last touch on every REST submission.
app.leadsource.co · lead record
Dana OkaforREST submit, no reload
First touchOrganic search/blog/managed-it-costs
Last touchGoogle Adscyber-security-audit
Page journey
  1. /blog/managed-it-costs
  2. /managed-it
  3. /contact
Your real code is in the dashboard
<script async src="https://app.leadsource.co/ft.js" data-site="YOUR_SITE_KEY"></script>
Setup

WS Form covered in three steps

  1. Install the free WPCode plugin from the WordPress plugin directory.
  2. Open Code Snippets, then Header and Footer, paste the Lead Source tracking code into the Header section and save.
  3. Clear your page cache. WS Form pages run the code from their next uncached load.

Inside WS Form, nothing moves: no field, no action, no logic to touch. The wider plugin list lives on WordPress lead tracking.

Start free

5-minute install · no card

How do I capture the campaign behind a WS Form submission?

Put the Lead Source tracking code in your site header through WPCode, then clear the page cache. From then on, each submission reaches Lead Source carrying its UTM values, click IDs, landing page and page journey, with no hidden field in sight.

Which WS Form submissions come in with partial attribution?

Submissions from a visitor Lead Source never saw before they submitted. Attribution on those is limited or unknown. Pages still served from an old cache join in once you clear it.

Common questions

WS Form questions, answered.

Can I keep my existing hidden fields?

Yes. Lead Source does not read them or interfere with them.

Does it work with conditional logic and calculations?

Yes. Those run inside the form and nothing about them changes.

Do I need WS Form Pro?

No. The tracking code works whatever licence you run.

Track every WS Form submission. Free to start.

Your logic stays yours. Each submission arrives with the campaign and the pages behind it.

Start free

Free to start · no card

WordPress lead trackingIntegrations