How to Capture GCLID in HubSpot and Send Conversions Back
HubSpot can close the loop with Google Ads properly. Here is the field setup, the form wiring, and the upload that makes it work.

By the end of this post your HubSpot portal will capture the Google click ID on every form, carry it through to the deal, and send closed won revenue back to Google Ads so bidding optimises toward customers instead of form fills.
HubSpot is genuinely good at this once it is set up. Most portals are only missing two or three specific pieces.
When this fits
You use HubSpot as your CRM and run Google Ads.
Your deals close days or weeks after the form fill.
Lead quality varies enough that counting form fills is misleading.
If you close everything inside a single website session, you do not need this.
What you will build
Custom properties on Contact and Deal to hold the click ID and UTM data.
Form wiring that populates them.
A workflow that copies the values to the Deal when one is created.
An export or integration that sends closed deals to Google Ads.
Let’s implement it
Step 1: create the properties
In HubSpot settings, open Properties and create these on the Contact object:
Google Click ID, single line text
gbraid and wbraid, single line text
First touch and last touch source, medium and campaign
Original landing page
Make them single line text, not dropdowns. Set field level permissions so users cannot edit them.
Then create matching properties on the Deal object. You need them in both places, and this is the step most portals skip.
Step 2: add hidden fields to your forms
In the form editor, add each property as a hidden field.
Then populate them. The reliable way with HubSpot embedded forms is the onFormReady callback, which runs after the form exists in the DOM. Read your cookie inside it and set each field’s value.
Setting values before the form renders is the most common reason fields arrive empty.
Step 3: copy Contact values to the Deal
Create a workflow that triggers on deal creation and copies the click ID and attribution properties from the associated contact to the deal.
Without this your deals have no click ID and your export has nothing to match on. It is the single most common gap in HubSpot setups.
Step 4: decide what counts as a conversion
Pick one or two stages that represent real progress. A workable set:
Qualified, sent when someone confirms the lead is real and in market
Closed won, sent with the actual deal value
Bid toward Qualified, report on Closed won. The reasoning is here: sending CRM deal stages to Google Ads.
Step 5: send it back
Three routes, in increasing order of effort:
Export a filtered deal list to CSV and upload manually. Fine for testing, nobody sustains it.
Use a connector or Zapier to push on stage change: automating uploads with Zapier
Write to a sheet on stage change and let Google Ads pull it on a schedule: offline conversions with Google Sheets
Before you finish
Click a real ad, submit a real form, and confirm the click ID lands on the contact.
Convert that contact to a deal and confirm the click ID copied across.
Check the property is not truncated.
Run one upload and read the match rate. Below about 70 percent usually means the workflow in step 3 is missing.
Confirm your deal close dates fall inside the 90 day window from the click.
FAQ
Does HubSpot’s native Google Ads integration do this already?
It connects ad spend reporting and can report conversions, and it is not a substitute for uploading your own qualified and closed won stages with values. Most accounts want both.
What if a contact has several deals?
Copy the click ID to the deal at creation and use the deal’s copy for uploads. Otherwise a second deal a year later claims the first deal’s ad click.
My sales cycle is longer than 90 days. What now?
Upload an earlier stage that falls inside the window, and keep closed won for your own reporting. Google Ads cannot attribute a conversion older than its window no matter how you send it.
I am on the free tier with limited properties. Any options?
If HubSpot’s limits are in your way, I wrote a full walkthrough of that for Stape using nothing but a spreadsheet: Google Ads offline conversion tracking without a CRM. Click to read it here.
Need this built properly?
HubSpot does this well once the deal level copy exists. I set up and repair tracking for ecommerce stores and lead generation businesses, so the numbers in your ad accounts match the money in your bank account.
Have a look at what I do, or book a call and we can go through your setup together.



















