Learn · How-To
How to Send CRM Lead Outcomes Back to Google Ads
A form submission is the cheapest thing to count and the least useful. For a B2B business with a sales cycle, the number that matters happens later, in the CRM: the lead was qualified, became an opportunity, or was won. Until that outcome reaches Google Ads, automated bidding optimises towards form fills, including the ones your sales team never calls back. This guide covers sending those outcomes back. It is based on Google's own documentation, which changed in 2026: Google now recommends starting with enhanced conversions for leads, and from 15 June 2026 offline conversion uploads moved to the Data Manager API and are blocked in the Google Ads API. If you built an import script before that date, check that it is still running.
- 1
Decide which outcomes are worth sending back
Pick the stages that mean something commercially: a qualified lead, an opportunity, a closed sale. Send each as its own conversion action rather than one blended count, so you can see how many form fills never became anything. Sending every status change dilutes the signal bidding learns from. Two or three stages is usually enough.
- 2
Choose the route Google recommends
Google's guidance is that if you have not already adopted offline conversion import, you should start with enhanced conversions for leads. It combines hashed first-party data from your form, such as an email address, with the offline outcomes you import. If you already import by click ID alone, Google describes upgrading to enhanced conversions for leads as the path forward, and it reports a median 10% increase in conversions for advertisers using first-party data alongside click IDs compared with standard offline import. That is Google's figure, not ours.
- 3
Check whether an older upload has stopped
From 15 June 2026, offline conversion import and enhanced conversions for leads uploads moved to the Data Manager API and are blocked in the Google Ads API. Google also states that developer tokens with no requests between January and June 2026 will not be allowlisted for legacy access. If a script, connector or agency built your original import, ask whoever owns it which API it uses. A script that was not migrated will be rejected, and unless someone is watching for the errors the visible symptom is a conversion count that simply stops growing.
- 4
Capture the identifiers at the form
Two things must be recorded when the lead arrives. First, the click ID: add a hidden field to the form that stores the gclid from the landing page URL, and keep it exactly as received, because it is case sensitive and any system that changes its capitalisation breaks the match. Second, the user-provided data on the form, such as email address or phone number, which your Google tag or Tag Manager configuration hashes before sending. Google normalises and matches that data on its side.
- 5
Store them on the CRM record, with timestamps
The click ID and the lead's contact details must live on the contact or deal in your CRM, alongside the date the lead was created. Then make sure the CRM records the date each status change happened, not just the current status. Uploading a conversion needs to say when it occurred. If your CRM only keeps the latest status, add a field or workflow that stamps each transition.
- 6
Create the conversion actions in Google Ads
Create one conversion action per outcome you chose in step one, using the import option for CRM or other data sources, and enable enhanced conversions for leads in your conversion settings. Menu names in Google Ads change often, so follow the current help page rather than any screenshot. Set a value for each stage that reflects its worth to you, and decide deliberately whether it should be a primary action that bidding optimises towards or a secondary one you only observe.
- 7
Automate the upload through the supported route
Send the outcomes, with the click ID where you have it and the hashed user data, through the Data Manager API or a connector that uses it. Manual spreadsheet uploads work for a first test but are not a process. Confirm your CRM vendor or integration partner supports the current route before you commit. Google publishes time windows for how long after a click an upload is accepted; check the current figure on its help page rather than relying on a number quoted elsewhere.
- 8
Read the diagnostics and reconcile against the CRM
Google's enhanced conversions diagnostics report flags problems such as missing or badly formatted user data and incorrect in-page code, and it links to an implementation checklist. After the first week, compare the number of outcomes you sent with the number Google recorded, and both with the CRM. Gaps are normal; unexplained gaps are the finding. Also confirm you have a lawful basis for sending customer data. That is a question for your own legal adviser, not this guide.
Pro tips
- Do not switch bidding to a late-stage outcome on day one. Let imported conversions accumulate and run them as secondary first, so you can see the volume before bidding depends on it.
- If your CRM keeps only the current status, you cannot upload the date a lead was qualified. Fix that before anything else.
- We have not verified a step-by-step GoHighLevel configuration. The principle applies to any CRM: capture the click ID in a hidden form field, store it on the contact, and record a timestamp whenever the lead status changes. Check how your own CRM exposes those fields.
Related reading
Want help putting this into practice?
Take our 2-minute quiz to see where your business stands, or talk to a specialist about getting this done for you.