Offline Conversion Tracking with GoHighLevel

GoHighLevel runs a lot of agency funnels and loses a lot of attribution. Here is how to capture click IDs and report real outcomes.

This post shows you how to capture click IDs in GoHighLevel and send real outcomes back to Google Ads and Meta, so your campaigns optimise toward booked and closed rather than toward opt ins.

GoHighLevel runs a huge number of agency funnels, and a huge number of them report opt in volume to clients while the actual sales stay invisible.

When this fits

  • You run funnels and pipelines in GoHighLevel for yourself or for clients.

  • The money event is a booked call, a show, or a closed deal, not the opt in.

  • You are reporting lead counts and getting asked awkward questions about lead quality.

What you will build

  1. Custom fields on the contact and opportunity.

  2. Funnel form wiring that captures click IDs.

  3. A workflow that fires on pipeline stage change.

  4. A feed into Google Ads and Meta.

Let’s implement it

Step 1: create custom fields

In Settings, then Custom Fields, add text fields for Google Click ID, gbraid, wbraid, fbclid, and your first and last touch UTM values.

Create them at contact level, and mirror the click ID onto the opportunity so repeat buyers do not reuse an old click.

Step 2: capture in the funnel

GoHighLevel funnels let you add custom fields to forms and hide them. Add your fields, then add a tracking code block to the funnel that reads the URL, writes cookies, and fills the hidden inputs on page load.

Two GoHighLevel specific gotchas:

  • Two step funnels can lose URL parameters between steps. Capture on the first page into a cookie rather than reading the URL on the form page.

  • If you use the same funnel across several domains, make sure your cookie domain matches each one.

Step 3: workflow on stage change

Build a workflow triggered by opportunity stage change. On Qualified or Won, send a webhook containing the click ID, the stage, the value and the timestamp.

Point that webhook at your own endpoint, at Make, or at a sheet: automating with Make.

Step 4: send it onward

For Google Ads, upload against the click ID. For Meta, send an offline event through the Conversions API with fbclid, hashed email and hashed phone.

Because GoHighLevel holds verified phone numbers for most contacts, your Meta match rates here are usually better than average. Use that.

The agency angle

If you manage several client accounts, build this once as a template funnel and workflow, then clone it per client. The capture script and field names stay identical, only the ad account IDs change.

That turns a per client project into a ten minute setup, and it is the difference between reporting opt ins and reporting revenue.

Before you finish

  • Real ad click, real funnel submission, click ID on the contact.

  • Move an opportunity to Won and confirm the webhook fired with the right payload.

  • Check match rates in both platforms after a test batch.

  • Confirm multi step funnels still carry the values.

  • Confirm the cookie domain matches every domain the funnel runs on.

FAQ

Does GoHighLevel have a native Google Ads conversion upload?

Integrations vary and change. Whatever the current state, the webhook plus sheet or webhook plus automation route always works and does not depend on a feature staying supported.

What about calls booked through the built in calendar?

Treat the booking as a conversion stage and fire the workflow on it. Booked calls are usually the strongest mid funnel signal you have.

Can I do this without any code at all?

Almost. You need a small tracking snippet in the funnel to capture the click IDs. Everything after that is workflows and automation tools.

My client has no CRM, just a spreadsheet.

No CRM at all, and you want the simplest possible version? 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?

Report revenue instead of opt ins and the lead quality conversation ends. 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.

Need accurate tracking?

Its Free

500+ Happy Clients ⭐️

Keep Reading

See exactly where you’re wasting ad spend and how better tracking can double your sales.

See exactly where you’re wasting ad spend and how better tracking can double your sales.

Tracking in 3 Hours

Tracking in 3 Hours

I Manage Everything

I Manage Everything

24/7 Expert Support

24/7 Expert Support

TESTIMONIALS

Trusted by 500+ satisfied clients

Discover how we’ve driven growth and innovation.

500+ Tracking

500+ Tracking

Adélaïde De Vos

3,922 followers

I had the pleasure to work with Abdul and I can say that he exceeded my expectations. He was professional, patient, and clear in his explanations and committed to client satisfaction. If you're looking for someone who is not only highly skilled but also reliable and committed to client satisfaction, I highly recommend Kayium!

Dean Watson

1,030 followers

Kayium setup our tracking for Google Ads and Meta Ads, which helped us get 20%+ more conversions on the same ad spend. He didn’t just handle the technical setup,he also took the time to explain why it works and how it improves results. If you’re looking for someone skilled, reliable, and committed to delivering real results, I highly recommend him!

David Friend

CEO: Profitable Sites

Kayium set up accurate tracking that helped us scale ads fast and boost conversions by over 25%. He gave us clear insight into which ads drive revenue.

Lalita Sundari

7,924 followers

I've worked with Kayium; his strategic mindset and expertise in GTM, GA4, Pixel & Server Side Tracking, are invaluable! I highly recommend Kayium!