# How to track lead source in Typeform

Connect every Typeform submission back to the channel that produced it, ad, post, email, podcast, with the visitor's full pre-submission journey saved on each lead.

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

---

Typeform is the go-to form builder for teams who care about how a form feels: conversational layouts, smooth transitions, branded design. Marketing and product teams use it for everything from waitlist signups to demo requests to NPS surveys. What Typeform doesn't surface, though, is **which marketing investment produced each submission**. This guide fills that gap.

The setup runs four steps and takes about ten minutes. The webhook step requires Typeform on a paid plan (Basic or higher).

## What SourceLoop captures from Typeform

After setup, every Typeform submission lands in SourceLoop with:

- **First-source channel**: the discoverable origin (which campaign, ad, or referral first brought the visitor in) plus the full UTM parameter set
- **Path through your site** ahead of the form submission, every page in order
- **Time on site before submission**, summed across sessions
- **Sessions to conversion**: how many separate visits the respondent made before submitting
- **Respondent email** captured from the Typeform fields
- **Original landing destination** and the referring URL from session one
- **Source of the converting session** (which often differs from the very first-touch source)
- **Device, geography, and browser**

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **Edit access** to the website where you'll embed the Typeform
- A **Typeform account on a paid plan** (Basic or higher, for webhook support) with at least one form published

## Step 1: Install the SourceLoop tracking script

Open SourceLoop, click **Setup** in the sidebar, and choose the **Tracking code** tab. Copy the snippet shown.

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

Paste the snippet into the `<head>` of every page on your site. Site-wide installation is best, that way SourceLoop sees a respondent's complete journey, not just their visit to the form page.

## Step 2: Add the sl_aid URL parameter to your Typeform

Typeform's **Workflow** tab is where you pull data from URL parameters into the form. Add one parameter called `sl_aid` so SourceLoop can match each submission to the visitor's tracked journey.

1. From your workspace, open the form you want to track.

![Typeform workspace with a form selected](/help/screenshots/htbqxhz8w8.png)

2. Inside the form builder, click the **Workflow** tab in the top navigation.

![Typeform builder with the Workflow tab highlighted](/help/screenshots/auulps0ofiq.png)

3. Click the **+** button on the "Pull data in" card.

![Typeform Workflow tab showing the Pull data in card](/help/screenshots/qpbw57c0l7s.png)

4. Click **Add new parameter**.

![Typeform parameter configuration with Add new parameter button](/help/screenshots/9r7gv6sl5gv.png)

5. Add `sl_aid` as the parameter name and save.

![Typeform parameter name set to sl_aid](/help/screenshots/4o02gbkucrf.png)

That's the only parameter you need. SourceLoop fills in the channel, source, journey, and other attribution details on its side using this single identifier.

## Step 3: Embed the Typeform on your site

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

1. At the top of your Typeform editor, click the **Share** button.

![Typeform editor with the Share button highlighted](/help/screenshots/tiv4147tiz.png)

2. Choose **Embed on website**.

![Typeform Share dialog with Embed on website option](/help/screenshots/x7ymelpqhkr.png)

3. Click **Start embedding** and pick the embed style (inline, popup, slider, side tab, full page). Any of them works for attribution.

![Typeform embed picker showing multiple embed styles](/help/screenshots/b0m5zuc6p5a.png)

4. Copy the embed code and paste it onto the page on your site where you want submissions to happen.

![Typeform embed code ready to copy](/help/screenshots/f4eq2pr9s2.png)

> **Direct Typeform links can't be attributed**
> Submissions made through a raw `<your-handle>.typeform.com/to/<form-id>` link, the kind you'd drop into an email blast or paste into a tweet, **won't carry attribution data**. The respondent never lands on a page with the tracker, so the `sl_aid` parameter never gets a value. Route campaigns through a landing page that embeds the Typeform.

## Step 4: Configure the Typeform webhook

The webhook is what delivers each Typeform response to SourceLoop, where it gets matched to the visitor's journey and turned into a fully-attributed lead.

1. In SourceLoop, go to **Setup -> Incoming Webhooks** and copy your webhook URL.

![SourceLoop Setup page on the Incoming Webhooks tab](/help/screenshots/rupclnrhxpj.png)

2. Inside the Typeform builder, click the **Connect** tab in the top navigation.

![Typeform builder with the Connect tab highlighted](/help/screenshots/nm3pmtseao.png)

3. Under Connect, click the **Webhooks** tab.

![Typeform Connect section showing the Webhooks tab](/help/screenshots/m1ow7ep1nab.png)

4. Click **Add a webhook**, paste the SourceLoop webhook URL, and save.

![Typeform Add a webhook dialog with the webhook URL field](/help/screenshots/em55x2fpvs8.png)

Submit a test response on your embedded form to confirm the conversion arrives in SourceLoop as a form submission with channel, source, and landing page populated.

## Where to see Typeform submissions in SourceLoop

Once the integration is live, your Typeform data shows up across three SourceLoop views:

### Contacts Hub

Open [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts) and each Typeform submission appears as a contact row. Click any row to unpack the respondent's full pre-submission timeline: the channel that brought them in, the content they consumed, and how many sessions they took before filling the form.

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

### Attribution dashboard

Open [app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) to roll up your Typeform submissions by source, medium, and campaign. Useful for answering questions like "is our LinkedIn paid campaign generating qualified leads, or just traffic?"

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

### Funnel reports

Head to [app.sourceloop.ai/funnels](https://app.sourceloop.ai/funnels/) and configure a funnel ending in "Typeform submission". Cut it by source or by landing page to see which paths actually convert visitors into completed forms.

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

For teams running paid acquisition, push the Typeform submissions to **Google Ads, Meta, and LinkedIn as offline conversions** so the bidding algorithms optimize for completed forms instead of clicks. [Connect your Google Ads account](/help/connect-google-ads/) walks through that wiring.

## Frequently Asked Questions

### Does this work on Typeform's Free plan?

The hidden-field and embed steps work on every Typeform plan, but the webhook step requires a paid plan (Basic and above). On Free, you can still set up the parameter but submissions won't reach SourceLoop without webhooks enabled.

### My form uses Logic Jumps and conditional pages. Does that affect tracking?

No. The setup is independent of the form's internal flow. Logic Jumps, hidden questions, conditional branches, and multi-page layouts all work the same way for attribution.

### What if I share my Typeform via its direct typeform.com link instead of embedding?

Submissions made via a direct `<your-handle>.typeform.com/to/<form-id>` link won't carry attribution data, because the visitor never lands on a tracked page first. Embed the form on your own site to capture those leads with their source.

### Will SourceLoop conflict with Typeform's native HubSpot, Mailchimp, or Slack integrations?

No. SourceLoop runs alongside Typeform's connectors without touching them. Your existing automations continue to fire, and SourceLoop adds attribution data on top.

### Does adding SourceLoop slow down the Typeform embed?

No. The SourceLoop script is small and loads asynchronously, so it has no measurable impact on how quickly the Typeform iframe initializes or responds.
