Cometly
AcademyModule 02 · Sales-Led Growth Reports
SLGPlaybookLesson 2.5·8 min read

Solving the Calendly iframe UTM problem

Why your demos book as 'Direct' — and the two-step fix.

If your top demo source is 'Direct,' a Calendly iframe is almost certainly the reason. The fix is mechanical and takes about 20 minutes. Once it’s in, most teams see 30–50% of their demo bookings move out of Direct and back into the channels that actually drove them.

Why this matters

An embedded Calendly iframe is sandboxed by the browser. The parent page’s UTMs and Cometly’s identifiers don’t cross the iframe boundary, so when Calendly fires the booking confirmation back to your site, it arrives without any of the attribution context that was on the original page. Solving this single problem usually moves more demo attribution out of Direct than any other change.

Section 01

The two-step fix

Step one: add a short pre-Calendly form on your booking page. Capture name and email before showing the Calendly widget. The form fires the Comet Pixel’s Lead event with the source attribution intact, so even if the Calendly booking later fails to round-trip, you still have the visitor’s identity tied to their original source.

Step two: configure the Calendly event type to 'Redirect to an external site' on confirmation, instead of showing Calendly’s default confirmation page. Point the redirect at a thank-you page on your own domain — say, /demo/booked — and turn on Calendly’s 'Pass URL parameters' option so the invitee’s email and event details land in the thank-you page URL.

  • Build a thank-you page on your domain (e.g. /demo/booked)
  • Install the Comet Pixel on the thank-you page
  • In Calendly: Event Type → Confirmation Page → Redirect to external site
  • In Calendly: enable 'Pass event details to your redirect page' (URL parameters)
  • In Cometly: configure the Demo Booked event to listen on the thank-you page URL
Section 02

If you can’t change Calendly settings

If you’re using a different scheduler or can’t modify Calendly (some Enterprise plans restrict redirects), pair the pre-form approach with a webhook from the scheduler back to Cometly. Most schedulers — Calendly, Chili Piper, OnceHub, HubSpot Meetings — support outbound webhooks on booking. Cometly has a generic webhook event type that catches the payload and matches it back to the original visitor by email.

Common pitfalls

What to watch for.

  • Skipping the pre-form

    Without the pre-form, you have no identity for visitors who never finish the Calendly flow. Always capture identity before the iframe.

  • Redirecting to a Calendly-hosted page

    The Comet Pixel can’t run on Calendly’s domain. Redirect to your own domain.

  • Forgetting to pass URL parameters

    Without the invitee email in the redirect URL, Cometly can’t match the booking to the visitor. Turn the option on in Calendly.

Key takeaways

Recap.

  • Add a short pre-Calendly form (name + email) so the visitor is identified before booking
  • Configure Calendly to 'Redirect to an external site' instead of showing the confirmation page
  • Point the redirect at a thank-you page on your own domain where the Comet Pixel fires
  • Pass Calendly invitee email and event details as URL parameters to the thank-you page
  • Keep both UTM parameters and Cometly’s `comet_*` parameters in your ad URLs for redundancy
Put it into practice

Build this report inside your own Cometly workspace.

Most lessons can be wired up in a single 30-minute onboarding call. Connect your stack live and walk away with a working dashboard.