Tutorials

Tracking Multiple HubSpot Forms in a Scalable Way - Without Destroying Your Data

January 16, 2026

If your website uses multiple HubSpot forms - for lead generation, partnerships, support, newsletter subscriptions, demo requests, and more - each one represents a completely different user intent.

And in any serious measurement framework, different intent must translate into different events:

  • A demo request is not a newsletter signup.
  • A partnership inquiry is not a support ticket.
  • A high-intent sales form is not a top-of-funnel content download.
  • etc..

Yet in many setups, all of them are tracked as the same generic event, usually form_submission or generate_lead.

That is where data starts losing its value.

Why Generic Form Tracking Breaks Your Optimization

When all form submissions are grouped into one event:

  • You cannot differentiate between high and low intent actions
  • Ad platforms optimize toward volume instead of quality
  • Smart bidding algorithms learn the wrong signals
  • Your CRM attribution becomes less actionable
  • Your reporting loses business meaning

If you are serious about revenue attribution, pipeline quality, and real performance optimization, intent must be preserved all the way from the website to your CRM and ad platforms.

Common Solutions - And Why They Don’t Scale

When teams realize this issue, they usually try one of the following approaches:

1. Mapping Form IDs in GTM

You build a lookup table inside Google Tag Manager and map each HubSpot form ID to a specific event name.
Or you hard-code that mapping directly inside your JavaScript listener.

This works… until it doesn’t.

Every time a new form is created:

  • Someone has to remember to update GTM
  • Someone has to publish a new container version
  • Someone has to QA the mapping

As your form library grows, maintenance becomes friction.
That is not scalable.

2. Triggering Based on Page URL

You might fire events based on the page path.
But what happens when:

  • A single page contains multiple forms?
  • A form is reused across multiple pages?
  • Marketing launches a new landing page without telling you?

Page-based logic assumes structural discipline that rarely survives real-world marketing velocity.

3. Using Naming Conventions

Another approach is parsing the form name and triggering based on a keyword like:

  • "demo"
  • "support"
  • "newsletter"

This creates dependency on human consistency.

One typo.
One renamed form.
One new team member unaware of the naming rule.

And your tracking silently breaks.

Again - not scalable.

A Cleaner Architecture - Built for Scale

Here is a more resilient approach.

Step 1 - Add a Hidden Field to Each Form

Inside every HubSpot form, add a hidden field that explicitly defines the tracking intent.
For example:

This field exists purely for measurement purposes.

It is not visible to the user.
It does not rely on page structure.
It does not rely on naming discipline.

It defines intent at the source.

Step 2 - Let Your JS Listener Read the Value Dynamically

Your JavaScript listener inside GTM can capture the form submission event and extract the value of that hidden field.
Instead of firing a hard-coded event name, you dynamically use the field value as the event name.

That means:

  • No lookup tables
  • No manual mapping
  • No container updates for every new form

If marketing creates a new form and assigns the hidden tracking value correctly, the system just works.

Step 3 - Fire Multiple Events if Needed

You can even structure it so that:

  • One generic form_submission event always fires
  • And one intent-specific event fires alongside it

This keeps both high-level volume tracking and granular optimization intact.

Why This Architecture Wins

This approach:

  • Moves intent definition to the form layer
  • Removes GTM maintenance dependency
  • Reduces human-error risk
  • Works across pages, templates, and landing builders
  • Scales as fast as your marketing team can create forms

It is simple.

But more importantly - it scales cleanly.

And scalable measurement is what allows ad platforms to optimize toward revenue instead of vanity metrics.

When tracking form intent, the goal is not just to collect data.

It is to preserve business meaning from the moment a user clicks submit - all the way through optimization, reporting, and revenue attribution.