Skip to main content
HubSpot FormsForms

Your HubSpot form fills up, but which ads bring clients you'd actually call back?

Google Ads and Meta both report leads from your HubSpot form, yet many of those fills are job seekers, vendor pitches and spam, and nobody can say which campaign sent the contract you signed. HubSpot's own ad conversion events and a tag added in GTM can both claim the same fill, and the deal amount never makes it back to bidding. Fixed means one conversion per genuine submission, a click ID you can see on every ad lead, and qualified stages and won deals sent back to Google and Meta.

Free30 minutesNo obligation

HubSpot Forms · what breaks

What goes wrong with HubSpot Forms and your ads

  1. 01

    Every submission counts as a lead, even the junk

    Supplier pitches, job applications and existing customers asking for service fire the same HubSpot submission conversion, so Google's bidding learns to buy more of them with your budget.

  2. 02

    Meta and Google show more leads than HubSpot has

    HubSpot can send form events to Meta through the Conversions API and to Google through Enhanced Conversions. Leave a hand-added Pixel or a GTM conversion tag on the same form and one fill gets counted twice, so you pay for leads that were never there. HubSpot itself warns that a manually installed Pixel next to its own causes duplicate events.

  3. 03

    You can't tell which ad a contact came from

    HubSpot says it sets the Google ad click ID property automatically, but if that field is empty on your ad leads, a signed deal can't be matched to the click that paid for it. Every offline upload and lifecycle sync then rests on email and phone alone.

  4. 04

    Big jobs and small inquiries look identical

    A commercial roofing bid and a gutter question both report as one fill. HubSpot's lifecycle events for Google carry one fixed value and its deal amount option is gone, so the campaign winning contracts looks no better than the one bringing price shoppers.

HubSpot Forms · the fix

What changes after the fix — HubSpot Forms

  • One conversion per genuine HubSpot submission

    For each ad platform, either HubSpot's native conversion event or your GTM container reports the fill, never both, and spam, vendors and job seekers never reach the qualified-lead conversion.

  • Bidding trained on qualified contacts

    SQL and opportunity stages reach Google through HubSpot's sync or our server container, and reach Meta through our server container, since HubSpot's own Meta lifecycle sync covers only lead ad contacts.

  • Signed work tied to the ad that started it

    Closed-won deals go to Google and Meta with their real amount, matched on the stored click ID or hashed email and phone, from your HubSpot records through a first-party server container.

HubSpot Forms · architecture

The hooks HubSpot Forms gives us to work with

Everything here comes from HubSpot's knowledge base and developer docs. Where they're silent, we test on your account.

  1. 1

    Global form events in the browser

    Forms from HubSpot's updated editor emit events such as hs-form-event:on-submission:success. Legacy forms send hsFormCallback messages instead, so a GTM trigger built for one won't fire on the other.

  2. 2

    Click ID properties and hidden fields

    HubSpot documents that it sets its Google ad click ID and Facebook click ID properties automatically. Hidden fields also fill from a URL query string named after the property, which is our backup for gclid and UTMs when the native property is empty.

  3. 3

    Native ad conversion events

    On Marketing Hub Starter and up, form submissions and lifecycle changes sync to Google through Enhanced Conversions and to Meta through the Conversions API. Only HubSpot-built forms qualify, and Google won't sync form data for MCC-managed accounts.

  4. 4

    Workflow webhooks

    A workflow can post contact data out on a stage change, our trigger for server-side deal events. HubSpot lists webhooks under Data Hub Professional and Enterprise, so we confirm your plan.

  5. 5

    Tracking code and allowed domains

    Submissions from domains missing in your tracking settings are marked as spam, and the non-HubSpot forms tool skips hidden fields and anything inside an iframe.

HubSpot Forms · diagnose

Where HubSpot Forms tracking breaks, checked in this order

On a HubSpot form the usual fault is a lead counted twice or credited to nobody, so we start with ownership.

  1. 01

    Count conversions fired by one test submission

    Send one test fill from a gclid-tagged URL with Tag Assistant and Meta's test events open side by side.

  2. 02

    Check which editor built each form

    Updated and legacy forms emit different events, so a migrated form quietly breaks old triggers.

  3. 03

    Open the new contact and look for the click ID

    If the Google ad click ID property is empty after an ad-tagged test, HubSpot's Google sync and any offline upload can only match on contact data.

  4. 04

    Review HubSpot's ad conversion events

    Which forms and stages sync to which conversion actions, and whether Google sits under a manager account.

  5. 05

    Check that your website domain is in HubSpot's tracking settings

    HubSpot marks embedded-form submissions from unlisted domains as spam, so real leads can sit in the wrong view.

  6. 06

    Compare qualified contacts with what Meta receives

    Per HubSpot, Meta only takes lifecycle data from lead generation campaign contacts, so website-form leads need another route.

HubSpot Forms · prove

How we prove the HubSpot fix works

Every check uses a live submission on the page where your HubSpot form is embedded, never the form editor's preview mode.

Source of truth

HubSpot form submissions and contact records, with lifecycle stage, stored click IDs and associated deal amounts

  • One submission from a gclid-tagged URL, with the click ID visible on the HubSpot contact.
  • Exactly one conversion per submission in Google Ads and Meta Events Manager, with matching event IDs.
  • Spam and job-seeker tests that reach HubSpot but never count as qualified leads.
  • A lifecycle change to SQL showing up against the right conversion action.
  • A closed-won deal arriving with its real amount.
  • Qualified contacts reconciled one by one against each platform over a closed window.
  • Run again after 30 days, and again whenever a form moves from the legacy editor to the updated one.

HubSpot Forms · free audit

What we check in the free audit

  • Count conversions fired by one test submission
  • Check which editor built each form
  • Open the new contact and look for the click ID
  • Review HubSpot's ad conversion events
  • Check that your website domain is in HubSpot's tracking settings
  • Compare qualified contacts with what Meta receives

Checked against

HubSpot form submissions and contact records, with lifecycle stage, stored click IDs and associated deal amounts

Get my free conversion tracking audit

Free30 minutesNo obligation

HubSpot Forms · when not to buy

When you don't need us for HubSpot Forms

Some HubSpot setups need only a settings review, and we'll say so.

  • If HubSpot's native Google or Meta events are the only thing reporting your form and their counts track your real submissions, there's nothing for us to fix.
  • If most of your leads phone in rather than fill the form, fix call tracking first; the form isn't where the money is.
  • If you run only Meta lead generation campaigns synced into HubSpot, the website form plays a small role and HubSpot's lifecycle sync may be enough.
  • If a hand-added Pixel sitting next to HubSpot's connected one is the whole problem, HubSpot's own advice is to delete the manual code, and you can do that today without us.

HubSpot Forms · what we deliver

What we track from each HubSpot form

  • Form rendered

    From HubSpot's ready event. Used for diagnostics, never as a conversion.

  • Form submitted successfully

    Fired on HubSpot's success event, not a button click, with one event ID shared by the browser and server copies.

  • Contact qualified

    Lifecycle stage moving to lead, MQL or SQL. Spam, job seekers, vendors and current customers are filtered out first.

  • Estimate or site visit booked

    The opportunity stage or a new pipeline deal, the main bidding signal for long sales cycles.

  • Deal won

    Closed-won with the real amount, matched on the stored gclid or hashed email and phone.

  • Resubmissions and returning clients

    Kept in HubSpot and excluded from acquisition conversions.

Written guarantee

95%+ tracking accuracy

Measured against HubSpot form submissions and contact records, with lifecycle stage, stored click IDs and associated deal amounts. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

HubSpot Forms questions, answered

Yes. With a Marketing Hub subscription, HubSpot can create form submission and lifecycle stage conversion events that sync through Enhanced Conversions. It covers HubSpot-built forms only, and form data won't sync if the Google account is managed under a manager account.

Free · 30 min

Find out which HubSpot form fills your ads really paid for

Free30 minutesNo obligation