# How to track lead source in Fillout

Bake the marketing channel, campaign, and full journey into every Fillout form submission, with attribution data living right next to the visible answers.

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

---

Fillout has become a favorite of teams who want a powerful form builder with conditional logic, database lookups, payment integrations, and a clean visual editor. The piece it leaves to you is **attribution**: Fillout records what was submitted, but not what brought the visitor to the form. This guide bakes the marketing data right into the form submission.

Four steps, about ten minutes. Works on every Fillout plan.

## What SourceLoop captures from Fillout

After setup, each Fillout submission arrives with these hidden URL parameter values populated automatically:

- **Channel** + **Latest Source**, **Medium**, **Campaign**, **Term**, **Content** (closing session's UTMs)
- **Latest Landing Page** (where the closing session began)
- Optional **First-touch** equivalents for multi-touch attribution
- Plus the visitor's regular form answers (email, name, etc.) unchanged

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **Edit access** to the website where the Fillout form will be embedded
- A **Fillout account** with at least one form built

## Step 1: Install the SourceLoop tracking script

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

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

Paste the snippet inside the `<head>` of your site so every page (especially the one where you'll embed Fillout) loads the tracker.

## Step 2: Register URL Parameters in Fillout

Fillout calls hidden fields **URL Parameters**. Each one must be registered in the form settings before its value can carry into the submission.

**The repeatable workflow:**

1. Open your form in Fillout.
2. Go to the **Settings** page.

![Fillout form Settings page](/help/screenshots/c2yg01ip1yj.png)

3. Navigate to the **URL Parameters** section and click **Add New**.

![Fillout URL Parameters section with Add New button](/help/screenshots/aho878sr0a.png)

4. Set the **Name** to one of the parameters from the table below.

![Fillout new URL Parameter with a name entered](/help/screenshots/retk0inute.png)

5. Click **Save**. Repeat for each parameter you want to track.

**Latest-touch parameters (recommended baseline):**

| URL Parameter Name | What it carries |
| --- | --- |
| `channel` | High-level acquisition channel |
| `attribution_source` | Latest session's UTM source |
| `attribution_medium` | Latest session's UTM medium |
| `attribution_campaign` | Latest session's UTM campaign |
| `attribution_term` | Latest session's UTM term |
| `attribution_content` | Latest session's UTM content |
| `landingpage` | Page the closing session began on |

> **Lowercase, no spaces, exact spelling**
> Parameter names are case-sensitive and must match exactly. Use lowercase alphanumeric characters and underscores only. Fillout silently drops any parameter it hasn't seen registered.

## Step 3: Track first-touch attribution (optional)

Skip this step unless you want multi-touch attribution, the ability to compare the original acquisition channel against the most recent one. To track first-touch, register these additional parameters following the same workflow as step 2:

| URL Parameter Name |
| --- |
| `first_channel` |
| `first_source` |
| `first_medium` |
| `first_campaign` |
| `first_term` |
| `first_content` |
| `first_landingpage` |
| `firstseen` |

With both touch sets in place, every Fillout submission carries the complete picture, the channel that originally found the prospect and the channel that finally converted them.

## Step 4: Embed the Fillout form on your website

The form needs to live on a page where the SourceLoop tracking script is also running.

1. In Fillout, open your form and click **Share**.

![Fillout form with the Share button](/help/screenshots/r6ilmipgz4.png)

2. Choose **Standard** (inline iframe) as the embed type.

![Fillout Share dialog with Standard embed selected](/help/screenshots/y9raotnnaqe.png)

3. Copy the embed code and paste it on your website where the form should appear.

![Fillout embed code ready to copy](/help/screenshots/h3h96zs2adk.png)

Submit a test form and check the results page in Fillout, the URL parameter values you registered should appear alongside the visible field answers.

![Fillout results page showing attribution URL parameter values on a submission](/help/screenshots/1b6r2d0rdxy.png)

> **Direct Fillout URLs aren't attributable**
> Submissions made through a raw `forms.fillout.com/<form-id>` link **won't carry attribution data**. The visitor never lands on a page with the tracker, so the URL parameters arrive empty. Route campaigns through a landing page that embeds the form.

## Where to see Fillout submissions in SourceLoop

Beyond the attribution data living inside each Fillout submission, three SourceLoop views give you complementary cuts:

### Contacts Hub

Every Fillout submission becomes a contact row at [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts). Expand any row to see the visitor's full pre-submission timeline.

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

### Attribution dashboard

[app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) groups your Fillout submissions by source, medium, and campaign for a high-level read on which channels produce leads.

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

### Funnel reports

Build a funnel in [app.sourceloop.ai/funnels](https://app.sourceloop.ai/funnels/) ending in "Fillout submission". Slice by source or landing page to find your top-converting acquisition paths.

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

For paid teams, push Fillout submissions to **Google Ads, Meta, and LinkedIn as offline conversions** so the bidding algorithms learn from real lead generation. [Connect your Google Ads account](/help/connect-google-ads/) covers that setup.

## Frequently Asked Questions

### Why does Fillout call hidden fields "URL Parameters"?

Fillout's terminology, the same concept other form tools call hidden fields. Each URL parameter you register acts as a hidden field that gets populated from the corresponding URL query string. Same effect, different name.

### Do I have to register every parameter? That looks like a lot.

No. Start with the latest-touch set in step 2, that's the baseline view. The click-ID parameters are only useful if you run paid ads. The first-touch parameters in step 3 are only needed if you want multi-touch attribution. Register what you'll actually use.

### What if I miss-spell a URL parameter name?

Fillout silently ignores any URL parameter that hasn't been registered. The value reaches the page but never makes it into the form data. Always double-check the spelling against the names in this guide.

### I share my Fillout direct URL on social media. Do those submissions get attribution?

No. Submissions through a raw `forms.fillout.com/<form-id>` URL won't carry attribution because the visitor never visits a page that has the SourceLoop tracker. Embed Fillout on your own site to capture the data.

### Will SourceLoop's hidden parameters interfere with my form's logic or scoring rules?

No. The parameters live as hidden values in the submission and don't affect Fillout's logic blocks, scoring, or branching. They flow through to your submission data as ordinary fields.
