How do I set up conversion tracking with a CRM (HubSpot / Pipedrive / etc.)?
- Jesse Heslinga
- 2 days ago
- 8 min read
Your CRM tracks deals. Google Ads tracks form fills. If those two systems are not connected, Smart Bidding is optimizing for form submissions, not for the customers that came out of them. That's a meaningful difference, and it shows up in lead quality over time.
Connecting your CRM to Google Ads tells the algorithm which leads actually became customers, so it can find more of those and fewer of the ones that go cold. In accounts I manage where this loop is working, the mix of incoming leads is noticeably better than in accounts where Smart Bidding is flying on form fills alone.
The setup is not complicated, but it does require a bit of coordination between your marketing setup and your sales team.
The Short Answer
The most reliable method: capture the GCLID (Google Click ID) in a hidden form field, store it in your CRM, and upload it back to Google Ads when a deal closes.
HubSpot, Pipedrive, and Salesforce all have native Google Ads integrations that handle most of this automatically.
Upload the conversion event that matters most to your business: lead qualified, appointment booked, or deal closed won.
Google allows uploads up to 90 days after the original click. Timestamps must match the actual conversion time.
Why CRM-connected tracking changes what Google optimizes for
When Smart Bidding only sees form fills, it optimizes for form fills. It bids higher on the searches and audiences that produce lots of form submissions, regardless of what happens to those leads afterwards.
When you feed it closed deals, the signal changes. Smart Bidding starts recognising which searches, times of day, devices, and audience segments produce the people who actually became customers. It then skews budget toward those patterns. The volume of form fills might drop slightly. The close rate on the ones that do arrive tends to go up.
This is the difference between optimising your ads for the top of your funnel (form fills) versus your actual business outcome (customers). The CRM connection is what makes that possible.
For context on what to count as a conversion action and why, see What conversion actions should count as a lead in Google Ads?
Verdict: CRM-connected tracking is what makes Smart Bidding optimise for your business, not just your form submit button.
Step 1: Capture the GCLID in your form
The GCLID (Google Click ID) is a unique identifier appended to your landing page URL when someone clicks a Google Ad. It looks like: ?gclid=Cj0KCQjw....
To pass it through the conversion journey, you need to capture it in a hidden field on your contact form.
How to do it:
Most form builders (Gravity Forms, Typeform, HubSpot Forms, Contact Form 7) support hidden fields. Add a hidden field named gclid and set it to auto-populate from the URL parameter gclid.
In most form plugins this is a setting on the hidden field: "Get value from URL parameter" or "Dynamic value: URL parameter: gclid".
Once set up, every time someone arrives via a Google Ad and submits the form, the GCLID travels with the submission and lands in your CRM alongside their name, email, and phone number.
Pro Tip: Test this is working by clicking one of your own ads, filling in the form, and checking whether the GCLID field populated in your CRM record. If the field is empty, the hidden field is not capturing correctly.
Step 2: Store the GCLID in your CRM as a custom field
Your CRM needs a custom field to hold the GCLID. The name can be anything (most people call it "Google Click ID" or "GCLID"). It needs to be a text field, long enough to hold the full GCLID string (usually 50-100 characters).
In HubSpot: Go to Settings > Properties > Contact Properties > Create property. Type: Single-line text. Name: Google Click ID.
In Pipedrive: Go to Settings > Data Fields > Add field on the Contact (Person) object. Type: Text.
In Salesforce: Go to Object Manager > Lead > Fields > New. Type: Text. Length: 255.
Map your form's GCLID field to this CRM property during the form-to-CRM integration setup. Once mapped, every inbound lead should arrive in your CRM with the GCLID attached to their contact record.
Step 3: Upload closed conversions to Google Ads
When a deal closes (or reaches a key stage), you export the contact record with its GCLID and upload it to Google Ads. Google matches the GCLID to the original ad click and records a conversion.
The upload format (manual method):
A CSV file with these columns:
Google Click ID (the GCLID)
Conversion Name (must match the conversion action name in Google Ads exactly)
Conversion Time (the date and time the deal closed, in the format YYYY-MM-DD HH:MM:SS+TZ)
Conversion Value (optional: the deal value in your account currency)
In Google Ads: Goals > Conversions > Uploads > + Upload.
Google requires the upload within 90 days of the original click. Conversions uploaded after that window are rejected.
Keep in Mind: The Conversion Time field must reflect when the deal actually closed, not when you uploaded the file. Google uses this timestamp to attribute the conversion to the correct campaign and time period. Uploading with today's date when the deal closed three weeks ago skews your historical data.
Native integrations: HubSpot, Pipedrive, Salesforce
For most businesses, a native integration handles the GCLID capture and upload automatically, without needing manual CSV exports.
CRM | Integration method | What it automates |
HubSpot | Native Google Ads integration (Marketing > Ads) | Syncs contact activity to Google Ads; creates audiences; reports on ad-influenced deals |
Pipedrive | Zapier or LeadBooster integration | Triggers on deal stage change; sends conversion event to Google Ads |
Salesforce | Google Ads for Salesforce (free managed package) | Full offline conversion sync; opportunity stage = conversion event |
Other CRMs | Zapier, Make, or manual CSV | Flexible but requires configuration per trigger |
HubSpot setup (the most commonly asked about):
In HubSpot, go to Marketing > Ads > Connect Account > Google Ads.
Authorise with your Google account.
Under "Reporting", enable "Track offline conversions".
Map HubSpot deal stages to Google Ads conversion actions (e.g., Deal Stage: "Closed Won" = Conversion: "Customer acquired").
Once connected, HubSpot automatically sends deal stage changes to Google Ads without manual exports. The GCLID is captured by HubSpot tracking cookies on your site, so the hidden form field step is handled for you if you're using HubSpot Forms.
For a detailed comparison of how HubSpot and Pipedrive handle this setup, see HubSpot vs Pipedrive for Google Ads offline conversion tracking.
What conversion events to upload and when
You can upload conversions at multiple stages of your pipeline. Each one becomes a separate conversion action in Google Ads.
Pipeline stage | Conversion action name | When to use |
Form submitted | "Lead form submitted" | Already tracked by GTM tag (see note) |
Lead qualified | "Qualified lead" | When a sales rep marks the lead as a real prospect |
Appointment booked | "Appointment booked" | For service businesses with a booking step |
Deal closed won | "Customer acquired" | The highest-value signal; use this as Primary |
The most common setup: keep the form submission tracking in GTM as an intermediate signal, and upload "Closed Won" deals from the CRM as the Primary conversion action. This gives Smart Bidding two layers: a fast signal (form fills, available immediately) and a high-quality signal (customers, available with a delay).
For a full guide on the GTM side of form tracking, the offline conversion tracking setup covers the complete picture: How do I set up offline conversion tracking in Google Ads?
Pro Tip: If your average deal cycle is long (more than 30 days), upload qualified leads or appointments booked as the primary signal rather than waiting for Closed Won. Smart Bidding needs data within the conversion window to act on it.
Common mistakes that break CRM-to-Google Ads tracking
GCLID not captured in the hidden form field. This is the most common failure point. The GCLID needs to be in the URL at the moment the form loads. If your landing page redirects or uses a multi-step form that loses the URL parameters, the GCLID is gone before it can be captured. Test every form with a real ad click.
Auto-tagging disabled in Google Ads. GCLIDs are only appended to URLs when auto-tagging is enabled. In Google Ads: Settings > Account settings > Auto-tagging. If this is off, no GCLIDs are ever generated.
Uploading conversions past the 90-day window. Google Ads won't process GCLID uploads older than 90 days. If your sales cycle is longer than three months, upload earlier pipeline stages (qualified lead, proposal sent) rather than waiting for deal close.
Conversion name mismatch. The Conversion Name in your CSV must match the conversion action name in Google Ads exactly, including capitalisation and spaces. A mismatch causes silent rejection: the file uploads successfully but no conversions are recorded.
Uploading with the current date instead of the actual conversion date. This skews your reporting and can affect Smart Bidding's attribution model.
How I handle this for lead-gen clients
Most clients I work with have a CRM and are not using it to close the feedback loop with Google Ads. They're tracking form fills. Smart Bidding is optimising for form fills. And they're frustrated that "Google Ads sends too many junk leads."
The first step I take is checking whether the GCLID is being captured at all. Often it isn't, because the form plugin or landing page builder doesn't pass URL parameters through to hidden fields by default.
Once the GCLID is captured and stored, I set up either the native integration or a simple Zapier flow to push deal closures back to Google Ads. For clients with HubSpot, the native integration covers most of it. For Pipedrive, Zapier is usually the fastest path.
The quality shift starts showing in the data after about 60 to 90 days. That's enough time for Smart Bidding to collect real signal from the closed deals and start adjusting where it spends.
Ready to close the loop between your CRM and Google Ads?
Frequently Asked Questions
What is a GCLID and why does it matter?
GCLID stands for Google Click ID. It's a unique string that Google appends to your landing page URL when someone clicks a Google Ad. It identifies which ad, keyword, and campaign drove that click. Capturing and storing this ID is what allows you to match a form submission (or a closed deal) back to the specific Google Ad that started the journey.
Does auto-tagging need to be enabled for this to work?
Yes. Auto-tagging is what generates the GCLID in the first place. Without it, no GCLID is appended to your landing page URLs and the whole system falls apart. Check it in Google Ads under Settings > Account settings > Auto-tagging.
Can I use this if my form builder doesn't support hidden fields?
Some form builders, particularly those running in iframes (Typeform embedded, Calendly), don't pass URL parameters through. In that case, the options are: use the platform's own Google Ads integration if it has one, switch to a form on your own domain that supports hidden fields, or use a server-side approach where your developer captures the GCLID via cookies.
How long does it take before Smart Bidding acts on the CRM data?
Smart Bidding needs roughly 30 to 50 conversion events in a 30-day period to optimise reliably. If you upload 10 closed deals per month, the system can start adjusting, but the signal is thin. Uploading qualified leads as a mid-funnel signal alongside closed deals gets you to that threshold faster.
What if I use a tool other than HubSpot or Pipedrive?
The GCLID method works with any CRM that can store a text field and export it. The manual CSV upload approach works for any system. For automation, Zapier and Make both have Google Ads integrations that can trigger on deal stage changes in most CRMs.
Does this work with lead forms on Google Search itself (lead form assets)?
Google's own lead form assets capture leads directly in the SERP without a landing page click. These bypass the GCLID capture method entirely because there's no visit to your site. For offline conversion tracking with leads from Google's native forms, use the Google Ads API or Google's Data Manager to push conversions back directly.
About the author
Jesse Heslinga | Google Partner | 7+ Years Google Ads | Lead-Gen Expert

I run Google Ads for lead-gen service businesses at Groove Media across clinics, home services, and professional services, working with clients directly, no account-manager layer. I build every account around one question: is this spend turning into real customers, not just cheap form fills?



Comments