Skip to content
ceaksan
gtm

Typeform Conversion Tracking Guide: GTM, Hidden Fields, and CRM Integration

Set up conversion tracking for Typeform forms with GTM, hidden fields, and UTM parameters. Comprehensive guide including HubSpot integration and cross-domain tracking.

Mar 27, 2026 4 min read
TL;DR

Typeform conversion tracking goes beyond counting form submissions. It means knowing which channel, campaign, and source drove each submission. This guide covers GTM integration with cross-domain tracking, hidden fields for source enrichment, UTM parameters for campaign attribution, and HubSpot CRM integration for end-to-end data flow.

Typeform is a popular SaaS form platform known for its user experience focused design. But creating forms is just the beginning; the real value lies in accurately tracking form submissions and flowing that data into your CRM.

This guide covers end-to-end conversion tracking for Typeform: dataLayer events, Google Tag Manager integration, cross-domain tracking, hidden fields, UTM parameters, and source attribution in HubSpot.

Typeform and dataLayer Events

Typeform pushes TypeformQuestionPassed after each question is completed and TypeformSubmit when the form is successfully submitted, both via dataLayer.push()1 2. These events form the foundation of conversion tracking.

Event structure:

  • Event Category: Typeform ID
  • Event Action: TypeformSubmit (form submission) or TypeformQuestionPassed (question completion)
  • Event Label: Form title
Typeform dataLayer Events
Typeform dataLayer Events

When these events fire, you can trigger conversion tags for Google Ads, GA4, or any other platform.

GTM Integration and Cross-domain Tracking

Typeform has its own Google Analytics integration3. However, for full control and customization, Google Tag Manager is the best option.

Why Cross-domain Is Necessary

Typeform forms typically live on a different domain. A typical flow looks like:

  • example.com (main site)
  • example.typeform.com (form)
  • app.example.com (post-form redirect)
Typeform Cross-domain Flow Diagram
Typeform Cross-domain Flow Diagram

Without cross-domain setup, each domain transition starts a new session, and conversions cannot be attributed to the correct source.

GTM Cross-domain Setup

Steps for cross-domain tracking:

  1. Store all domains in a GTM constant variable
  2. Enable linker settings and automatic domain linking in your GA4 tag configuration
  3. Verify GTM connection continuity in Preview mode

With these steps, the _ga parameter is carried across domains and session integrity is preserved. If domains appear as direct/(none) in the source/medium field, add the relevant domain to the Referral Exclusion list.

Typeform GTM Integration
Typeform GTM Integration

Creating Conversion Tags in GTM

Define TypeformSubmit as a custom event trigger in GTM. Create tags (GA4 Event, Google Ads Conversion, etc.) that fire when this trigger activates.

GTM Event Tag Setup
GTM Event Tag Setup
GA4 Conversion Verification
GA4 Conversion Verification

Test the entire flow using GTM Preview mode. Google Tag Assistant can record the full event sequence and generate reports for both GTM and GA4.

Enriching Data with Hidden Fields

Typeform lets you create hidden fields that don’t appear in the form flow but capture values through URL parameters and pass them along with the form submission4 5. These fields are created via Logic > Advanced > Hidden Fields.

Source Tracking

Define a source hidden field to track which channel drove the form submission:

https://example.typeform.com/to/formID?source=email
https://example.typeform.com/to/formID?source=facebook
https://example.typeform.com/to/formID?source=linkedin
Typeform Hidden Fields
Typeform Hidden Fields
Typeform Source Hidden Field
Typeform Source Hidden Field

Personalization

When sharing form links in email newsletters, you can pass recipient details as parameters. Typeform’s recall feature lets you use these values within the form itself6:

https://example.typeform.com/to/formID?name=Joe+Doe&email=joe@example.com
Typeform Form Summary
Typeform Form Summary

Hidden fields are grouped and displayed in Typeform reports. You can directly see which channel generates more form submissions.

UTM Parameters and Source Attribution

Typeform supports UTM (Urchin Traffic Monitor) parameters7. These are critical for attributing ad campaign traffic to form conversions.

Enabling UTM Tracking

Enable UTM tracking from the form’s Settings > UTM Tracking page.

Typeform UTM Tracking Settings
Typeform UTM Tracking Settings

Usage with Ad Campaigns

To track traffic from Google Ads or other platforms through Typeform, use UTM parameters on the landing page8 9:

https://example.com/?utm_source=google&utm_medium=cpc&utm_campaign=brand&gclid=...

Typeform captures these parameters and includes them with the form submission. UTM and hidden fields can be combined:

https://example.typeform.com/to/formID?utm_source=google&utm_medium=paid&utm_campaign=ppc#source=cpc

CRM Integration: HubSpot

Passing source data alongside form submissions into your CRM ensures sales and marketing teams work with accurate attribution data. HubSpot is one of the most common integrations for this10.

Integration Setup

Set up the integration via Typeform > Connect > HubSpot. Map fields across three categories:

  1. Standard fields: Email, first name, last name
  2. UTM fields: utm_source, utm_medium, utm_campaign
  3. Hidden fields: source and other custom fields
Typeform HubSpot Integration Setup
Typeform HubSpot Integration Setup
Typeform HubSpot Field Mapping
Typeform HubSpot Field Mapping
Typeform HubSpot Connection Complete
Typeform HubSpot Connection Complete
note

This process may require reconfiguring existing Typeform-HubSpot integration fields. In that case, the current integration must be removed and reconnected.

Source Tracking and Traffic Analytics

Add Source columns under HubSpot Contacts to see where each contact originated11. Without proper integration, incoming data gets labeled as (not set), undefined, or direct.

HubSpot Source Tracking
HubSpot Source Tracking

When UTM parameters are properly configured, HubSpot Traffic Analytics also categorizes form entries by source12 13.

HubSpot can also be linked to your Google Ads account14. This allows you to optimize campaign performance and ad spend tied to HubSpot Pages, and attribute form conversions back to specific ad campaigns.

HubSpot Google Ads Connection
HubSpot Google Ads Connection

Testing and Verification

After completing all setup, run through these checks:

  1. GTM Preview: Verify TypeformSubmit appears in the dataLayer when the form is submitted
  2. Cross-domain: Confirm the _ga parameter carries in the URL across domain transitions
  3. Hidden fields: Add parameters to the form URL (e.g., ?source=test), submit, and verify they appear in Typeform reports
  4. UTM: Navigate to the form through an ad link with UTM parameters and confirm they transfer to Typeform
  5. CRM: Check that the new HubSpot contact shows the correct source information

Use Google Tag Assistant to record the full flow and generate reports for both GTM and GA4.

Footnotes

  1. How to add Facebook pixel to a typeform. Typeform Help Center
  2. Google Analytics and tracking. Typeform Help Center
  3. Connect. Typeform
  4. Hidden fields explained. Typeform Help Center
  5. How to use Hidden Fields (Classic builder)
  6. Recall Information (Classic builder)
  7. What is UTM tracking? Typeform Help Center
  8. Tagging your Google Ads final URLs. Google Ads Help
  9. About automatic tagging. Google Ads Help
  10. HubSpot. Typeform Connect
  11. Contact’s ‘Original source’ value changed
  12. Understand HubSpot’s traffic sources in the traffic analytics tool. HubSpot Knowledge Base
  13. Understand ‘Original source drill-down’ properties
  14. Connect your Google Ads account to HubSpot. HubSpot Knowledge Base
Key Takeaways
  • 01 Typeform automatically fires TypeformSubmit and TypeformQuestionPassed events via dataLayer.push()
  • 02 Without cross-domain tracking, each domain transition starts a new session and conversion attribution breaks
  • 03 Hidden fields carry source, email, and campaign data through the form URL into the submission payload
  • 04 UTM parameters combined with hidden fields enable ad campaign attribution to form conversions
  • 05 HubSpot contacts appear as (not set) or direct when UTM and hidden field mapping is not configured during integration
Frequently Asked Questions (FAQ)
+ How do I set up Typeform conversion tracking with GTM?

Typeform pushes a TypeformSubmit event to the dataLayer when a form is submitted. Create a Custom Event trigger in GTM for this event, then attach GA4 Event or Google Ads Conversion tags. For cross-domain tracking, enable linker settings in your GA4 tag configuration.

+ What are Typeform hidden fields used for?

Hidden fields are invisible form fields that capture values from URL parameters and pass them with the submission. You can add source, utm_source, email, and other data to the form URL. These values appear in Typeform reports and flow into CRM integrations as source attribution data.

+ Why does HubSpot show (not set) as the source for Typeform contacts?

When the integration is set up without proper UTM and hidden field mapping, HubSpot creates contacts without source information. The integration setup requires field mapping across three categories: standard fields, UTM fields, and hidden fields.

+ Why is cross-domain tracking necessary for Typeform?

Typeform forms typically live on a different domain (example.typeform.com). Without cross-domain setup, the user session breaks across domain transitions, each transition starts a new session, and conversion source attribution is lost.