Open Tracked/Integrations/HubSpot CRM conversion tracking app

HubSpot CRM conversion tracking app

HubSpot stores the lead and its stage. Capture the click IDs at the form, then send each stage back to Meta and Google Ads.

5 min read · Updated October 26, 2026

In this guide
Key takeaways
  • HubSpot can store Google and Meta click IDs on the contact, and its workflows can call a webhook on a stage change.
  • HubSpot also has native ad-platform integrations. They depend on your plan, so check what you have before building a custom route.
  • A server container lets you reuse the same stage data for both Meta and Google Ads.
HubSpot formLLifecycle or deal stageMeta and Google Ads

HubSpot is where many small and mid-size teams keep their leads, deals and marketing e-mail. It is also where the truth about which leads became customers lives. The ad platforms do not see it unless you send it. This page covers what HubSpot stores, the native options and the server-side route. For the general pattern see CRM data to Meta with webhooks.

What to capture at the form

  • Click IDs. HubSpot can store the Google click ID and the Meta click ID on the contact when the ad integrations are connected, in properties such as the Google click ID and Facebook click ID. If you use your own forms, add hidden fields.
  • Hashed e-mail and phone. Compute them in the server or the data layer if you will send them from outside HubSpot.
  • The page URL and UTM values, so you can report by campaign.
  • The fbp cookie for Meta, saved in a hidden field.
Set up in minutes

Connected in minutes

Add your domain, install the pixel, connect your ad platforms and watch the first events land.

Native options

HubSpot offers ad integrations that sync audiences and, on some plans, send conversions back to Google Ads and Meta based on lifecycle stages or deal stages. Availability and limits depend on your HubSpot subscription and change, so check HubSpot's current documentation. If a native option does what you need, use it first. Build a server route when you need more control, more platforms or stage data that the native option does not send.

The server route

1

Define the stages

Pick the lifecycle or deal stages that predict revenue, such as sales qualified and closed won.

2

Build a workflow

Trigger it when a contact reaches a stage or a deal moves. HubSpot's "send a webhook" action posts a JSON message; it is available on higher-tier plans.

3

Include identifiers

Send the click IDs, hashed e-mail, stage name, deal value and a stable event ID.

4

Receive it in your server container

A client accepts the webhook and the Meta and Google Ads tags send the conversions.

5

Test

Move a test contact through each stage and check Meta Test Events and the Google Ads conversion status.

Live view

Watch events arrive, live

A sample feed. In Open Tracked you see the same stream for your own store.

Meta and Google Ads details

01

Meta

Send a Conversions API event for each stage, with fbc, fbp, hashed e-mail and phone. See how to set up the Conversions API.

02

Google Ads

Upload the stage as an offline conversion with the Google click ID, or with enhanced conversions for leads using hashed e-mail. See Google Ads offline conversions.

03

Open Tracked

The Data Store and Enricher remember hashed identifiers for returning visitors, and Click ID Restorer and Cookie Keeper keep click IDs and cookies alive until the form is sent. All are on every plan.

Common problems

SymptomClick ID property is empty
Likely causeThe form is not HubSpot's, or the integration is not connected.
FixAdd hidden fields and fill them from the landing page URL and cookies.
SymptomWorkflow fires many times
Likely causeRe-enrolment is on.
FixTurn re-enrolment off or add a condition.
SymptomWebhook action not available
Likely causeYour plan does not include it.
FixUse the native integration, an automation platform, or upgrade.
SymptomMatch rate is low
Likely causeNo identifiers on older contacts.
FixApply the capture to new leads and measure from then on.
0 of 5 done

A worked example: a B2B software company

A software company runs ads on Google and Meta, and every demo request creates a HubSpot contact. Marketing used to report cost per demo request. Sales reported that only one in ten was a good fit. The team added hidden fields for the click IDs, made sure HubSpot stored them, and built a workflow that sends a webhook when a contact becomes a sales qualified lead and another when a deal is won. The server container turns the first into a qualified-lead conversion and the second into a purchase with the deal value. After two months the ad platforms had real signals about which clicks were valuable, and the team could report cost per qualified lead and cost per customer, which was the number the business actually cared about.

Their first attempt failed for a simple reason: the click ID property was empty for most contacts because their forms were not HubSpot forms. Check this before anything else. Create a test lead through the real form and open the contact record. If the click ID is not there, nothing that follows will work.

Works worldwide

Runs on your domain, anywhere

Your tracking runs on your own domain, so a visit from any country is handled the same way.

Frequently asked questions

Can HubSpot send conversions to Google Ads and Meta?

HubSpot has native integrations on some plans and supports webhooks for a custom route. Check the current features on your plan.

Where does HubSpot store the Google click ID?

In a contact property filled when the Google Ads integration is connected, or in a hidden field you add.

Which stage should I send?

The ones that predict revenue: sales qualified and closed won are common.

Do I need a server container?

Not always. It helps when you want one route for several platforms and more control.

Can Open Tracked replace HubSpot?

Open Tracked has a CRM pipeline for lead stages and offline conversions. It is not a full marketing suite. Many teams keep HubSpot and use Open Tracked for the tracking.

Do I need spreadsheets to read my results?

No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.

Is Open Tracked different from Open Track or Open Space Track?

No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source

Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.

Open Tracked
Written by

The Open Tracked team

We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?

Write to us Read the docs

Was this article helpful?

Comments

Loading comments...

Turn better tracking into better marketing performance

Start free