Skip to content
SourceLoop
Web form tracking

How to track lead source in FormAssembly

Bring marketing attribution into FormAssembly without compromising compliance. Every submission still flows where it always did, just with the source and campaign attached.

On this page
  1. What SourceLoop captures from FormAssembly
  2. Before you start
  3. Step 1: Install SourceLoop’s tracking snippet
  4. Step 2: Embed FormAssembly with the JavaScript embed on a tracked page
  5. Step 3: Run a verification submission
  6. Where to see FormAssembly submissions in SourceLoop
  7. Contacts Hub
  8. Attribution dashboard
  9. Funnel reports

FormAssembly sits at the enterprise end of the form-builder market, the choice when forms touch regulated data, Salesforce, or compliance-heavy workflows. The compliance and routing story is well-handled. The marketing-attribution story isn’t, you can see what was submitted, never how the submitter arrived. SourceLoop adds that layer without touching FormAssembly’s plumbing.

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

What SourceLoop captures from FormAssembly

For each FormAssembly submission, SourceLoop attaches:

  • The visitor’s acquisition channel (organic, paid, referral, social, direct)
  • UTM parameters parsed from the landing URL
  • Pages visited in chronological order before submission
  • Total time on site ahead of the conversion
  • Visit count before the lead finally submitted
  • Email + name read from the FormAssembly fields
  • First-touch landing page of the visitor’s history
  • Source of the converting session specifically
  • Device type, country, browser

Before you start

You’ll need:

  • A SourceLoop workspace (free trial)
  • Edit access to the public page where you embed your FormAssembly form
  • A FormAssembly account with a form configured to embed via the JavaScript snippet

Step 1: Install SourceLoop’s tracking snippet

Inside SourceLoop, click Setup -> Tracking code in the sidebar and copy the snippet shown.

SourceLoop Setup page with the tracking code snippet ready to copy

Add it to your marketing site’s <head>. WordPress: header-injection plugin or header.php. Marketing-cloud-style CMS (Adobe, Sitecore, Drupal): global template / layout. Webflow / Framer: site-level Custom Code. Tag manager: an All Pages tag.

The snippet should run on every public-facing page where a FormAssembly form might appear.

Step 2: Embed FormAssembly with the JavaScript embed on a tracked page

In FormAssembly, open your form, click Publish and choose the JavaScript embed (not the iframe). Copy the snippet and paste it into the page where your form should appear, alongside the SourceLoop snippet from step 1.

Step 3: Run a verification submission

Visit the form’s host page in an incognito tab with ?utm_source=test&utm_medium=verify&utm_campaign=formassembly-check appended to the URL. Submit a test entry using an email you can check.

Within seconds, the lead should appear in the Contacts Hub in SourceLoop with the three test UTM values attached.

Where to see FormAssembly submissions in SourceLoop

Contacts Hub

Each FormAssembly submission becomes a contact row at app.sourceloop.ai/contacts. Drill into a contact for the full timeline, every page visited, every session, every campaign that touched the lead.

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

Attribution dashboard

For executive reporting, app.sourceloop.ai/dashboards/traffic groups FormAssembly submissions by source, medium, and campaign. Useful for justifying marketing spend at quarterly reviews.

SourceLoop attribution dashboard with FormAssembly submissions grouped by source and campaign

Funnel reports

Build a funnel at app.sourceloop.ai/funnels ending in “FormAssembly submission”. Slice by source, content, or device to expose your highest-converting routes through the site.

SourceLoop funnel report ending in a FormAssembly submission conversion step

For paid campaigns, mirror FormAssembly submissions back to Google Ads, Meta, and LinkedIn as offline conversions so the bidding algorithms train on real qualified leads instead of clicks. Connect your Google Ads account walks through it.

Frequently asked questions

  1. We use FormAssembly because of HIPAA / GDPR compliance. Does adding SourceLoop affect that?

    No. FormAssembly's compliance posture (HIPAA, GDPR, FERPA, etc.) covers how it stores and routes form data. SourceLoop runs on your marketing site, capturing visitor session metadata for non-PHI attribution purposes. The two systems don't share infrastructure.

  2. I embed FormAssembly via JavaScript vs iframe. Does it matter?

    The JavaScript embed is preferred because the form renders inline on your page, so attribution is straightforward. Iframe embeds isolate the form in a separate browsing context, which can make attribution less reliable depending on your iframe permissions.

  3. Our FormAssembly forms push directly to Salesforce, Microsoft Dynamics, or our data warehouse. Anything affected?

    No. FormAssembly's downstream connectors continue to push data exactly where they always have. SourceLoop captures attribution independently in its own backend, no overlap with your CRM or warehouse routing.

  4. We use FormAssembly's Hidden Fields to pre-populate UTMs into Salesforce. Should we keep doing that?

    You can. The two approaches complement each other, Hidden Fields put UTMs onto the Salesforce record, SourceLoop attaches the visitor's full pre-submission journey to a contact in its own dashboard. Use whichever surface the data needs to live in.

  5. Are FormAssembly's Workflow forms (multi-form processes) tracked?

    The final submission of the workflow is what SourceLoop captures, since that's the conversion. Intermediate steps in the workflow don't create new contacts.

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