Booking Tools Free basic code Advanced version available

HubSpot Meetings GTM Event Listener

HubSpot Meetings GTM Event Listener
Video 1

How to install the free HubSpot Meetings listener

Free code

Free HubSpot Meetings GTM listener code

Copy this into a Custom HTML tag in Google Tag Manager. It pushes hubspot_meeting_success to the dataLayer when someone books through HubSpot Meetings.

GTM Custom HTML · HubSpot Meetings
<script>
/* HubSpot Meetings listener by MD Niamul - mdniamul.com */
(function () {
  window.dataLayer = window.dataLayer || [];
  var lastPush = 0;

  window.addEventListener('message', function (event) {
    // Only trust messages from HubSpot's meetings iframe (meetings.hubspot.com, meetings-eu1.hubspot.com)
    var host = '';
    try { host = new URL(event.origin).hostname; } catch (e) { return; }
    if (!/(^|.)hubspot.com$/.test(host)) return;

    var data = event.data;
    if (typeof data === 'string' && data.charAt(0) === '{') {
      try { data = JSON.parse(data); } catch (e) { return; }
    }
    if (!data || typeof data !== 'object') return;
    if (data.meetingBookSucceeded !== true && data.meetingBookSucceeded !== 'true') return;

    // One push per booking, even if HubSpot sends the message twice
    var now = new Date().getTime();
    if (now - lastPush < 2000) return;
    lastPush = now;

    var payload = data.meetingsPayload || {};
    window.dataLayer.push({
      event: 'hubspot_meeting_success',
      form_id: payload.formGuid || '',
      page_path: window.location.pathname
    });
  });
})();
</script>

This code is also on GitHub with a README and version history: github.com/mdniamul0/hubspot-meetings-gtm-listener

GTM triggerCustom EventEvent namehubspot_meeting_success
Quick install in 3 steps
  1. In GTM, go to Tags → New → Custom HTML, click Copy code above and paste it in.
  2. Set the trigger to All Pages and save the tag.
  3. Create a Custom Event trigger named hubspot_meeting_success, use it on your GA4, Google Ads or Meta tag, then Preview and Publish.
See the full step-by-step guide
Example output

What you’ll see in GTM Preview

After you install the code and send a test entry, this is the data that shows up in GTM. You don’t need to paste it anywhere. Use it to check the listener works and to create Data Layer Variables such as form_id.

Example: dataLayer outputExample only. You don’t paste this anywhere.
{
  event: 'hubspot_meeting_success',
  form_id: '8f2b1c3a-11aa-4c9e-9b7f-1234567890ab',
  page_path: '/book-a-call/'
}
Step by step

How to set up the HubSpot Meetings listener in GTM

How to install the free HubSpot Meetings listener

  1. Embed the calendar on your page. In HubSpot go to Sales → Meetings Scheduler, pick your meeting link, click Share → Embed and copy the code. Paste it into your page (in Elementor use the HTML widget). The booking has to happen on your page, not on meetings.hubspot.com.
  2. Add the code to GTM. In Google Tag Manager go to Tags → New → Custom HTML, paste the free code from this page and set the trigger to All Pages.
  3. Create the trigger. Go to Triggers → New → Custom Event and type hubspot_meeting_success as the event name.
  4. Create one variable. Go to Variables → New → Data Layer Variable, name it DLV - form_id and use form_id as the Data Layer Variable Name.
  5. Add your conversion tag. Fire your GA4 event (for example generate_lead), Google Ads conversion or Meta Pixel event on the hubspot_meeting_success trigger.
  6. Test and publish. Open GTM Preview, book a test meeting, check that hubspot_meeting_success shows up in Tag Assistant, then publish your container.
Compare

Basic vs advanced HubSpot Meetings listener

The free code tells GTM that a lead happened. The advanced code tells your ad platforms who the lead is and where they came from.

What you getBasic FreeAdvanced Paid
Fires only on a successful submit or bookingYesYes
Form or platform ID in the dataLayerYesYes
UTM source, medium, campaign, term and contentNoYes
Ad click IDs (gclid, wbraid, gbraid, fbclid, ttclid, msclkid)NoYes
SHA-256 hashed email, phone and nameNoYes
First-party cookies (_fbp, _fbc, _ga, _gcl_aw)NoYes
Device, browser and visitor locationNoYes
event_id for Pixel and CAPI deduplicationNoYes
Ready for Google Ads Enhanced Conversions and Meta CAPINoYes
Install help from MD NiamulNoYes
Advanced version

Get the advanced HubSpot Meetings listener

Built for agencies and brands that run paid ads. Every lead carries the data that Meta, Google Ads, TikTok and GA4 need to match the person and credit the right campaign.

Data it collects

  • Booked contact's email, first name, last name and phone, plain and SHA-256 hashed
  • Meeting details: organizer, date, start and end time, length in minutes, paid or free, link type
  • Traffic source, medium and campaign from UTM values, click IDs or the referrer
  • 17 ad click IDs: gclid, gbraid, wbraid, dclid, fbclid, ttclid, msclkid, li_fat_id and more
  • First-party cookies: _ga, _gid, _gcl_au, _fbp, _fbc, _uetsid, _uetvid, _ttp and hubspotutk
  • Visitor IP, country, region, city and postal code, with two backup providers
  • A unique event_id so Pixel and Conversions API bookings count once
  • GA4 client_id, session_id and a stable external_id
  • Device, browser, screen, language, landing page and referrers
  • Consent switch: click IDs, IP and location are only collected after consent
  • One dataLayer push ready for GA4, Google Ads, Meta, TikTok and server-side GTM

What it fixes

  • Higher Meta Event Match Quality. More matching keys (hashed email, phone, fbp, fbc, IP and browser) on every Lead event.
  • More Enhanced Conversions matches. Google Ads gets hashed user data with each conversion, not just a count.
  • Correct attribution. UTM values and click IDs are saved with each lead, so you know which ad and keyword brought it.
  • Server-side ready. One clean event with an event_id that works with Meta CAPI, TikTok Events API and server-side GTM.
Pricing

Pick how you want it

One-time price. Start with the code, or let me set everything up for you.

$0
Free basic codeFires the event when the form is sent or the call is booked. Copy it from any listener page or from GitHub.
Get the free code →

Advanced code

You install it yourself

$89$100one-time
  • Advanced listener code, licensed to you
  • PDF setup guide: variables, triggers and tags
  • GTM import file: tag, trigger and variables in one go
  • Step-by-step setup video in your client portal
  • Free updates when the platform changes
Most popular

Code + setup call

We set it up together

$179$200one-time
  • Everything in Advanced code
  • 30-minute setup help on WhatsApp or a booked call
  • I check your GTM Preview and fix what does not fire
  • GA4, Google Ads and Meta tags explained step by step

Done for you: GA4 + Google Ads

I install and test it

$299one-time
  • Everything in Advanced code
  • I install the listener in your GTM
  • GA4 key event with the lead or booking details
  • Google Ads conversion with Enhanced Conversions
  • Tested in GTM Preview, GA4 DebugView and Google Ads

Done for you: full server-side

Browser + server tracking

$449$500one-time
  • Everything in GA4 + Google Ads
  • Meta Pixel + Meta Conversions API with event_id deduplication
  • Server-side GTM on Stape.io
  • Consent Mode v2 check
  • Tested in Meta Test Events and GA4 DebugView

Stape.io plan paid separately

Need a different kind of tracking?The packages above are for GTM event listeners. I also set up ChatGPT Ads conversions, Meta CAPI, TikTok Events API, Microsoft and LinkedIn Ads, offline CRM conversions (HubSpot, GoHighLevel, Salesforce), Shopify and WooCommerce server-side tracking, and Looker Studio reports.

Server-side: Server-side tracking runs on Stape.io. The Stape plan is not included: you pay Stape directly (they have a free plan for small sites). I set it up on your account. Get Stape (global) · Stape EU server

One-time prices in USD. You pay me directly and get an invoice in your client portal.

Not sure which one fits? Message me and I will tell you what you need.

Already bought the advanced code? Get it in your client portal.

FAQ

HubSpot Meetings listener: common questions

Does this work with the meetings.hubspot.com link?

No. It works when the HubSpot calendar is embedded on your own page. On HubSpot's own meetings page your GTM does not load, so nothing can fire.

Is the HubSpot Meetings listener code free?

Yes. The basic code is free to copy and use on your own and your clients' sites. It fires hubspot_meeting_success with the meeting form ID and page path.

Does it work with EU HubSpot accounts?

Yes. It accepts messages from meetings-eu1.hubspot.com and every other hubspot.com address, and ignores messages from anywhere else.

How do I get the advanced version?

Message me on WhatsApp. After payment I add it to your client portal with the code, a setup video, a PDF guide and a GTM import file.

Is the HubSpot Meetings listener code really free?

Yes. The basic code on this page is free to copy and use on your own or your clients’ sites. It fires the hubspot_meeting_success event when the HubSpot Meetings form is sent.

What is the difference between the basic and advanced version?

The basic version only tells GTM that a lead happened. The advanced version also sends UTM values, ad click IDs, hashed email and phone, first-party cookies, device and location data and an event_id, so Meta CAPI, Google Ads Enhanced Conversions and GA4 get much better data.

How do I get the advanced version?

Message me on WhatsApp, book a call or use the contact form. It is a paid, one-time purchase, and I can install it for you if you like.

Do I need to change my form?

No. The listener runs inside Google Tag Manager and listens for the form’s own success signal. You don’t need to edit the form or your theme.

🚀 Need Help With Advanced HubSpot Meetings Tracking Setup?

💬 Want this implemented without mistakes?

I’ve completed 850+ projects for 600+ businesses and 15+ agencies, helping clients generate $11M+ in revenue with accurate client-side & server-side tracking and business automation.

⮏ My core services include:

⨭ GoHighLevel Automation — build CRM pipelines, WhatsApp automation, AI voice workflows & automated follow-ups end-to-end.
⨭ AI Agent Automation — deploy AI chatbots & agents for 24/7 lead qualification and support.
⨭ Paid Ads Management — Google Ads, Meta Ads.
⨭ Full Stack SEO/GEO/AEO Manager.
⨭ CRO-Focused Web Development — Landing Pages on WordPress, Shopify, Wix, Squarespace.
⨭ Google Tag Manager (GTM) — manage data layers & (Marketing platform Tag, Trigger & Variables).
⨭ Custom Code by GTM — HTML, CSS & JavaScript for advanced marketing platform tracking.
⨭ Server-Side Tracking — recover data lost to ITP & ad blockers (Official Stape Partner).
⨭ Google Analytics 4 (GA4) — visualize customer journeys.
⨭ Multi-Channel CAPI — Facebook, TikTok, Pinterest & Snapchat Conversion API & Klaviyo email marketing tools.
⨭ Third Party Checkout Conversion Tracking — Shopify, Stripe, GoKwik, Shiprocket, PayPal or more.
⨭ Google Consent Mode (GCM) — maintain GDPR compliance.
⨭ Marketing Automation — streamline workflows (Zapier/n8n/Make).
⨭ CRM Conversion Tracking — link offline sales to ads.
⨭ Tag Management — GTM & Third-Party Checkout Tracking.
⨭ Offline & CRM Tracking — HubSpot, Salesforce, Zoho, Pipedrive, Odoo, Webhook & Sheet.
⨭ Advanced Analytics — GA4, Google Looker Studio & BigQuery (SQL) for deep data visualization.

If you want your HubSpot Meetings Tracking done right the first time, message me.