Typeform integration

Lead source tracking in Typeform.

See where every Typeform response actually came from.

Works with embedded and hosted Typeforms No Hidden Fields, no Custom Variables Live in minutes

Works with every Typeform format

Classic Typeforms Hosted on typeform.com Embedded on your site Logic Jumps Custom branding Outcome-based forms
The gap

Typeform converts. Source data is on you.

Typeform’s conversational UI is some of the highest-converting form design out there. That’s why teams use it. The platform has the mechanics for source capture (Hidden Fields, URL parameters, webhooks via Connect) but stitching them into a working attribution system is a project on your side.

What Typeform offers

The building blocks

  • Hidden Fields for URL parameter passing
  • Webhooks via the Connect panel
  • 30+ native CRM & tool integrations
  • Branching logic (Logic Jumps, Outcomes)
  • Custom subdomains on paid plans
What still needs work

Per form, per channel

  • Hidden Fields added per form, in the builder
  • URL parameters read at form-load only
  • No cross-page session tracking
  • Raw UTMs need interpretation downstream
  • Source data lives in raw response payload, not as analysed attribution
The usual workaround

Hidden Fields. URL parameters. A webhook receiver to make sense of it.

The standard Typeform attribution recipe: add Hidden Fields per form for each UTM key, update every Typeform URL to include those parameters, accept that mobile and cross-page visitors lose their source data, and build a webhook receiver to parse Typeform’s response payload into something useful.

The manual way

  • 01
    Open each Typeform in the builder. Add Hidden Fields for utm_source, utm_medium, utm_campaign, utm_content, utm_term. Repeat for every form.
  • 02
    Update every Typeform URL. In ads, on landing pages, in email footers. To include those parameters in the right format. Test each one.
  • 03
    Accept that URL parameters only read at form load. If a visitor lands on your homepage with UTMs and clicks through to the Typeform, the parameters need to be passed forward by you. They’re lost otherwise.
  • 04
    Connect the webhook to your CRM or a custom receiver. Parse Typeform’s nested JSON response structure to extract the Hidden Field values. Map them to your CRM’s schema. Maintain it.

With Lead Source

  • 01
    Paste one webhook URL into Typeform’s Connect panel. Once per form, or apply to all via Typeform’s API.
  • 02
    We receive every Typeform submission with source, campaign, and full page journey attached. Captured at the moment of submission, not reconstructed later.
  • 03
    Cross-page UTM persistence handled automatically. If the visitor landed on your homepage and clicked through to the Typeform two pages later, we still know.
  • 04
    Source recorded with the campaign name written out: “Google Ads · Local Services Sydney”. Deliverable to your inbox, dashboard, and (optionally) a CRM field via outbound webhook.

// Typeform has the mechanics. We’re the attribution that doesn’t need to be re-built per form.

What you install

One webhook URL. That’s the whole thing.

Sign up, copy your unique webhook URL from the dashboard, paste it into Typeform’s Connect panel. We receive every response and attach the source automatically. The block below shows what the URL looks like. Your real one has your account ID baked in.

example only. Your real webhook URL is in the dashboard
# illustrative. Paste your real webhook URL from app.leadsource.co
https://hooks.leadsource.co/[your-account-id]

The real webhook URL is generated for your account when you sign up. Copy it from the integrations page in your dashboard. Async delivery, retries on failure, signed payloads.

Install in Typeform

Three steps. Done in five minutes.

1

Sign up. Get your webhook URL

Create your free Lead Source account. You’ll see a webhook URL on the integrations page with your unique account ID already in it. Copy it.

No credit card required to start. The signup flow takes about a minute.
2

Add the webhook in Typeform Connect

Open your Typeform in the builder. Go to Connect → Webhooks → Add a webhook. Paste your Lead Source webhook URL. Save and toggle it on. That’s the whole setup.

Webhooks are available on Typeform’s Basic plan and above. Free plan users can still connect via Zapier or a third-party relay. Contact us for setup help.
3

Submit a test through your Typeform

Open your Typeform. Fill it in. Submit. Within a minute or two, the response appears in your Lead Source dashboard with the source, campaign, and page journey attached. Email notification arrives alongside.

Want to test end-to-end? Open your Typeform with ?utm_source=test appended to the URL before starting. That’ll be the source on the lead.
Common questions

Questions, answered.

Will it conflict with my existing Typeform integrations?

No. Typeform supports multiple webhooks and integrations per form. Add the Lead Source webhook URL and your existing connections (HubSpot, Mailchimp, Salesforce, Slack, Zapier, etc.) keep working exactly as configured. We receive a copy of the submission. We don't modify the data or interfere with the response flow.

Does it work with Logic Jumps and Outcomes?

Yes. Lead Source captures the response at the moment of submission. What path the visitor took through the form (Logic Jumps fired, Outcomes assigned) doesn't affect our capture. The full response, including which questions were answered and any computed Outcome, comes through in the webhook payload.

Do I need a paid Typeform plan?

Native webhook delivery via Connect is available on Typeform's Basic plan and above. On the free plan, you can still use Lead Source via Zapier or a similar relay (we accept submissions from any HTTP source). If you're on free and want to set up the relay, get in touch. We'll walk you through it.

Does it work with embedded Typeforms vs Typeforms hosted on typeform.com?

Both. The webhook fires at the Typeform-server level when a response is recorded, so it doesn't matter whether the form was filled inline on your site, in a popup, or directly on typeform.com. All paths reach us. The webhook install is actually the path that works best for hosted Typeforms, since the form page itself isn't on your domain and a script tag wouldn't see the submission.

What about Typeform's quiz scores and Outcome variables?

They come through in the webhook payload alongside the standard response fields. Lead Source captures them as part of the submission data. Useful if you're using Outcomes to qualify leads and want to see source data filtered by Outcome in your dashboard.

Track your Typeform leads. Free to start.

One webhook URL. Every Typeform response. Source, campaign, page journey without adding Hidden Fields to a single form.

Start free

Free to start · no card