Skip to content
SourceLoop

Meeting tracking

UTM tracking and source attribution for every booked meeting

SourceLoop attaches UTM parameters, click IDs (GCLID, fbclid, li_fat_id), referrer, and the visitor's full journey to every meeting booked through Calendly, Cal.com, HubSpot Meetings, SavvyCal, TidyCal, Acuity, and 12+ scheduling tools.

Free 7-day trial. No credit card required.

SourceLoop contact panel showing a booked meeting with first-touch, last-touch, and full journey attribution

Used by 750+ marketing teams, agencies, and SaaS companies

  • Bennett
  • Vectivo
  • Siite
  • Huemor
  • Infludata
  • Wonsulting
  • Orchly
  • PacificCrest
  • ReachTopCPA
  • BrassAnimals
  • TechCXO

What you get

Demo booking attribution, end to end

See where every booked meeting came from before the call starts.

How it works

Three steps to attribute every meeting booking

One script tag, runs alongside your scheduling embed.

  1. <script src="https://cdn.sourceloop.ai/sl.js" defer></script>
    01

    Install the snippet

    Drop one script tag in your <head>. Five minutes, no engineer required.

  2. 02

    We listen to every booking

    SourceLoop detects bookings on Calendly, Cal.com, HubSpot, SavvyCal, TidyCal, Acuity, and 12+ scheduling tools.

  3. A

    [email protected]

    Booked: Demo, Tue 3pm

    • Source LinkedIn / Paid
    • Campaign attribution_q2
    • First touch Google / Organic
    03

    Lead lands in your CRM tagged

    The booking lands in HubSpot, Salesforce, Pipedrive, or your CRM with full attribution and the meeting record linked.

Meeting tracking by platform

Track bookings on Calendly, Cal.com, HubSpot, SavvyCal, and 10+ more

Same snippet, every booking, every platform.

FAQ

Meeting and demo-booking attribution, FAQ

How do I track UTM parameters in Calendly, Cal.com, or HubSpot Meetings?

Install the SourceLoop snippet once on your site. We capture UTM parameters from the URL the visitor first lands on, store them in a first-party cookie, and attach them to every booking, regardless of which scheduling tool you use. Calendly, Cal.com, HubSpot Meetings, SavvyCal, TidyCal, and Acuity all work the same way without per-platform configuration or hidden fields.

Why do my Calendly bookings arrive without source data?

Calendly only sees the URL its embed sits on, or the URL the visitor was on when they followed your scheduling link. By the time someone reads your homepage, browses pricing, and clicks 'Book a demo' on a different page, the original UTM is long gone. SourceLoop captures it on the first page view and persists it across the whole session, so it's still attached when the booking fires.

Can I track GCLID and Google Ads click data on demo bookings?

Yes. We capture GCLID, Wbraid, and Gbraid on landing, persist them through the session, and attach them to the booking. You can then sync those identifiers to Google Ads as offline conversions to feed Smart Bidding with your real demo-book and pipeline events.

How is this different from Calendly's UTM passing or hidden URL parameters?

Calendly's UTM passing requires you to manually thread parameters through every booking link, breaks if the visitor switches pages, and only captures the UTM, not the full journey. SourceLoop captures source, medium, campaign, content, term, click IDs, referrer, landing page, search keyword, and the multi-touch journey, automatically, without any URL gymnastics.

Does this work with inline embeds and pop-up scheduling flows?

Yes. SourceLoop tracks the visitor on your site through to the moment a scheduling embed (inline or pop-up) opens, captures the booking event, and packages the attribution data with the lead handoff payload. Both embedded calendar widgets and modal pop-ups work the same way.

What about meetings booked through email outreach via Outreach or Salesloft?

When the booking link clicks back through your site (or includes a tracking redirect we can read), we capture and attribute that touch. For purely email-to-calendar flows, we attribute the meeting to the original lead's most recent first-party session.

Does this work with consent banners and GDPR?

Yes. We integrate with OneTrust, Cookiebot, Iubenda, Osano, and custom CMPs. When a visitor declines analytics or marketing cookies, we collect only minimal aggregated data in line with GDPR and the ePrivacy Directive. All cookies and local storage are first-party on your domain.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

[email protected]

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

[email protected] · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta