# How to track lead source in WeForms

Stamp every WeForms submission with the marketing source, campaign, and visitor journey so you can see exactly which channel produced each lead.

Source: https://sourceloop.ai/help/track-lead-source-in-weforms/
Updated: 2026-05-28

---

WeForms is the WordPress form plugin from weDevs, the same team behind Dokan and ERP, which means it's particularly well-suited to multivendor stores, vendor onboarding, and HR-style workflows. The marketing piece is what it doesn't try to do. SourceLoop adds attribution to every submission with no WeForms-side changes.

Three steps, under ten minutes, attribution flowing on every form fill afterwards.

## What SourceLoop captures from WeForms

For each WeForms submission, SourceLoop attaches:

- **The visitor's acquisition channel** (organic, paid, referral, social, direct)
- **Full UTM stack** parsed from the landing URL
- **Pages visited** in order before the form fill
- **Time on site** ahead of the submission
- **Number of distinct sessions** before conversion
- **Email + name** from the WeForms fields
- **First-touch landing page** of the visitor's history
- **Source attributed to the converting session**
- **Device, country, browser**

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **WordPress admin** access (or another way to edit `<head>` markup)
- A **WeForms** form embedded on a published WordPress page

## Step 1: Install SourceLoop's snippet on WordPress

Inside SourceLoop, open **Setup -> Tracking code** in the left sidebar and copy the snippet.

![SourceLoop Setup page with the tracking code snippet ready to copy](/help/screenshots/sourceloop-tracking-code-script.png)

Add it to the `<head>` of your WordPress site:

- A header-injection plugin like Insert Headers and Footers or WPCode
- Your active theme's `header.php`, just before `</head>`
- The "Custom Code" panel in any SEO plugin
- Google Tag Manager firing on All Pages

The snippet should run on every page where a WeForms form might appear.

## Step 2: Confirm the form is on a published page

There's no per-form switch to flip in WeForms. Once the snippet loads site-wide, every WeForms form on every published page is attributable automatically.

Quick sanity pass:

- The form is on a **published** page or post (not a draft)
- The form **collects an email address**, used by SourceLoop to identify the lead
- Performance plugins aren't deferring SourceLoop past the form's submit handler

> **Unpublished or private pages can't be attributed**
> Drafts, scheduled future posts, and password-protected pages typically don't expose the SourceLoop snippet to anonymous visitors. WeForms still records the submission but SourceLoop won't have a marketing source to attach.

## Step 3: Send a verification submission

Open the form's page in an **incognito tab** with `?utm_source=test&utm_medium=verify&utm_campaign=weforms-check` glued to the URL. Submit a real entry using an email you can check.

Within seconds, the lead should appear at the top of the **Contacts Hub** in SourceLoop with the three test UTM values stamped on the record.

## Where to see WeForms submissions in SourceLoop

### Contacts Hub

Every WeForms submission becomes a contact row at [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts). Open a contact to see the visitor's complete pre-submission browsing path.

![SourceLoop Contacts Hub showing a WeForms submission with the lead's full journey](/help/screenshots/sourceloop-lead-journey-demo.webp)

### Attribution dashboard

For the rollup, [app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) groups WeForms submissions by source, medium, and campaign so you can quickly see what's converting.

![SourceLoop attribution dashboard with WeForms submissions grouped by source and campaign](/help/screenshots/sourceloop-attribution-dashboard.webp)

### Funnel reports

Build a funnel at [app.sourceloop.ai/funnels](https://app.sourceloop.ai/funnels/) ending in "WeForms submission". Slice by source, content, or device to find the routes that actually convert.

![SourceLoop funnel report ending in a WeForms submission conversion step](/help/screenshots/sourceloop-funnel.png)

For paid acquisition, forward WeForms submissions to **Google Ads, Meta, and LinkedIn as offline conversions** so the bidding algorithms train on real form fills, not vanity clicks. [Connect your Google Ads account](/help/connect-google-ads/) covers the wiring.

## Frequently Asked Questions

### Does this work with the free WeForms plugin?

Yes. SourceLoop's tracking is browser-side and works the same on the free plugin as on any WeForms Pro tier.

### I run a multivendor marketplace built on Dokan with WeForms for vendor signups. Does that get attributed?

Yes. The vendor-signup submission is the conversion event, and SourceLoop attaches attribution to the lead exactly the same way as a standard contact form fill, complete with the visitor's pre-signup browsing journey.

### My WeForms forms have multi-step pages and conditional logic. Anything different?

No. WeForms' in-form behavior runs entirely inside the plugin. SourceLoop only captures the final submission, so multi-step flows behave the same as single-page forms.

### Will my WeForms MailChimp, ActiveCampaign, and webhook integrations still fire?

Yes. WeForms continues to forward submissions to every connected destination. SourceLoop saves an attribution-rich copy of the lead independently, no overlap.

### Can SourceLoop track WeForms used in a popup or modal?

Yes. Popup, modal, and inline placements all fire the submission event the same way. As long as the host page loads the SourceLoop snippet, attribution attaches.
