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.
On this page
- What SourceLoop captures from Fillout
- Before you start
- Step 1: Install the SourceLoop tracking script
- Step 2: Register URL Parameters in Fillout
- Step 3: Track first-touch attribution (optional)
- Step 4: Embed the Fillout form on your website
- Where to see Fillout submissions in SourceLoop
- Contacts Hub
- Attribution dashboard
- Funnel reports
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)
- 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.
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:
- Open your form in Fillout.
- Go to the Settings page.
- Navigate to the URL Parameters section and click Add New.
- Set the Name to one of the parameters from the table below.
- 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 |
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.
- In Fillout, open your form and click Share.
- Choose Standard (inline iframe) as the embed type.
- Copy the embed code and paste it on your website where the form should appear.
Submit a test form and check the results page in Fillout, the URL parameter values you registered should appear alongside the visible field answers.
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. Expand any row to see the visitor’s full pre-submission timeline.
Attribution dashboard
app.sourceloop.ai/dashboards/traffic groups your Fillout submissions by source, medium, and campaign for a high-level read on which channels produce leads.
Funnel reports
Build a funnel in app.sourceloop.ai/funnels ending in “Fillout submission”. Slice by source or landing page to find your top-converting acquisition paths.
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 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.