Calendly Source Tracking

I’m wondering if there’s any updates regarding hubspot calendar tool showing source and browsing data? I’m currently using calendly but the source data just shows offline source, integration or just “calendly”. If I switched over to hubspot’s booking tool will we be able to see the lead source and browsing data?

Hi @ZInc,

I’m not aware of any upcoming updates to how HubSpot handles original source bucketing. These rules apply and that unfortunately means that integrations will fall under offline: Understand HubSpot's traffic sources in the web traffic analysis tool

Meetings booked through HubSpot’s meeting tool should populate sources as expected, not within offline, correct. I’m saying “should” as sometimes cookie policies or privacy settings interfere, but generally yes.

Best regards!

Hi @ZInc, I understand the frustration with the “offline source” or “integration” labels when a Calendly booking comes into HubSpot, as that really strips away the valuable marketing attribution data you need, and you’re right that switching to HubSpot’s native booking tool would generally resolve that by leveraging its built-in tracking script and cookie data.

However, if you want to stick with Calendly for scheduling, the most robust and future-proof method to capture detailed source and browsing data in HubSpot is a technical integration involving the Calendly API, the HubSpot API, Google Tag Manager, and a server-side solution like Stape or Google Cloud Platform.

The reason this combination is the best solution is that it creates a reliable, server-side data pipeline that bridges the gap between the client-side browsing activity and the final conversion event.

When a visitor lands on your site and interacts with the embedded Calendly widget, you first use Google Tag Manager to capture all the critical client-side information, such as the full page URL, UTM parameters, and the HubSpot tracking cookie’s user token (utk).

This information, which defines the user’s source and browsing history, is stored temporarily, often in the browser’s data layer, right up until the point the meeting is booked.

The crucial next step uses the Calendly API, or more specifically, a webhook for the `invitee.created` event, which sends a secure, server-to-server notification as soon as the booking is confirmed.

This webhook, which contains the invitee’s email, is sent to your server-side environment, which is where Stape or a custom solution on Google Cloud Platform comes in.

This server-side environment then acts as the central hub.

Upon receiving the Calendly webhook, your server-side solution uses the invitee’s email to look up the corresponding client-side data captured earlier by Google Tag Manager, which includes the utk.

Finally, the server-side solution calls the HubSpot API to either create a new contact or update an existing one.

Critically, it sends the booking as a reliable, server-side custom behavioral event, or it can update standard properties like the Original Source property.

Since you’re sending the event from your server using the HubSpot API and including the utk token, HubSpot is able to properly attribute the conversion back to the original session, allowing you to see the true lead source, like “Organic Search” or a specific “Paid Social” campaign, along with the full browsing history, instead of just the generic “Integration” label.

This server-side approach minimizes data loss due to browser privacy features or ad blockers, making it significantly more accurate and reliable than client-side-only methods.

This comment was generated with the assistance of an AI tool, incorporating my expertise in conversion tracking.