Skip to content
SourceLoop
Web form tracking

How to track lead source in Ninja Forms

Pair every Ninja Forms submission with the marketing channel that produced it, plus the visitor's full browsing path before they filled out the form.

On this page
  1. What SourceLoop captures from Ninja Forms
  2. Before you start
  3. Step 1: Install the SourceLoop tracking script
  4. Step 2: Confirm your form is on a tracked page
  5. Step 3: Verify it’s working
  6. Where to see Ninja Forms submissions in SourceLoop
  7. Contacts Hub
  8. Attribution dashboard
  9. Funnel reports

Ninja Forms is a long-running staple of the WordPress form-plugin space, free, extensible, and popular with developers who like add-on driven setups. Where it leaves a gap, like every form builder, is on the marketing side: you see every entry but never the channel that earned it. This guide closes that gap.

Three steps, around five minutes, no Ninja Forms-side configuration required.

What SourceLoop captures from Ninja Forms

Once installed, every Ninja Forms submission shows up in SourceLoop with:

  • Source and medium of the visitor’s session, plus their UTM parameters
  • Full page-by-page path taken before they submitted
  • Total time on site leading up to the form fill
  • Number of prior visits before this conversion
  • Email and name lifted from the Ninja Forms fields
  • First-touch landing page along with the original referrer
  • Source attributed to the converting session (often different from first-touch)
  • Device, country, and browser of the submitter

Before you start

You’ll need:

  • A SourceLoop workspace (free trial)
  • Admin access to your WordPress site, or the ability to add code to <head>
  • A Ninja Forms form embedded on a published WordPress page

Step 1: Install the SourceLoop tracking script

In SourceLoop, head over to Setup -> Tracking code in the left sidebar and copy the snippet provided.

SourceLoop Setup page with the tracking code snippet ready to copy

On WordPress, you have a few good options for placing it in <head>:

  • A header-injection plugin like “Insert Headers and Footers” (one paste, done)
  • Your active theme’s header.php, just before </head>
  • The “Custom Code” panel that most SEO plugins (Yoast, Rank Math, SEOPress) expose
  • A tag manager set to fire on all pages

Whichever path you choose, the script needs to load on every page that hosts a Ninja Forms form.

Step 2: Confirm your form is on a tracked page

No per-form switches to flip. Once the snippet is loading site-wide, every Ninja Form on every published page is automatically eligible for tracking.

A handful of quick checks:

  • The form is embedded on a published page or post, not a draft
  • The form includes an email field, SourceLoop uses email to identify the lead
  • Aggressive caching or script-defer rules aren’t reordering SourceLoop after the form loads

Step 3: Verify it’s working

Open the page hosting your Ninja Form in an incognito tab, append ?utm_source=test&utm_medium=verify&utm_campaign=ninja-check to the URL, and submit a real test entry using an email address you can check.

Within seconds, the submission should land on the Contacts Hub in SourceLoop with the test UTM values stamped on the record.

Where to see Ninja Forms submissions in SourceLoop

Contacts Hub

Every Ninja Forms submission lands as a row at app.sourceloop.ai/contacts. Click into any row to see the visitor’s entire pre-submission timeline, every page, every prior session, every campaign touchpoint.

SourceLoop Contacts Hub showing a Ninja Forms submission with the lead's full journey

Attribution dashboard

Open app.sourceloop.ai/dashboards/traffic to roll up Ninja Forms submissions by source, medium, and campaign. Quick read on which channels are pulling their weight.

SourceLoop attribution dashboard with Ninja Forms submissions grouped by source and campaign

Funnel reports

In app.sourceloop.ai/funnels, build a funnel that ends in “Ninja Forms submission”. Slice it by source, landing page, or device to find which paths reliably convert.

SourceLoop funnel report ending in a Ninja Forms submission conversion step

Running paid? Pipe Ninja Forms submissions to Google Ads, Meta, and LinkedIn as offline conversions so the ad platforms optimise toward real form completions, not just clicks. Connect your Google Ads account walks through the setup.

Frequently asked questions

  1. Does this work on the free Ninja Forms plugin or do I need a paid add-on?

    It works on the free plugin. SourceLoop's tracking is browser-side, completely independent of Ninja Forms' add-on architecture, so every tier is supported, free Lite included.

  2. Will my Ninja Forms add-ons (Mailchimp, Constant Contact, Salesforce, Webhooks, etc.) keep working?

    Yes. SourceLoop sits next to your existing add-ons, not in front of them. Submissions still flow to every connected destination, and SourceLoop layers attribution on top.

  3. Ninja Forms submits via AJAX by default. Does that affect tracking?

    No. AJAX submissions and traditional page-reload submissions are both captured the same way.

  4. I use multi-part Ninja Forms with conditional logic. Anything different?

    Nothing changes. SourceLoop only cares about the final submit, the number of steps or conditional branches in between is irrelevant.

  5. Does this work with the Ninja Forms Layout & Styles add-on or custom form templates?

    Yes. Visual customisations don't affect the submission event, so attribution gets attached regardless of how the form is styled.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta