---
title: "Solving the Calendly iframe UTM problem | Cometly Academy"
description: "Embedded Calendly widgets break attribution because UTMs don’t survive the iframe boundary. Even when ad clicks land on your page with perfect UTMs, the booking confirmation comes back without source data. Two configuration changes — a pre-Calendly form and a redirect to a thank-you page — restore full attribution and typically recover 30–50% of demo source data."
source: "https://www.cometly.com/academy/calendly-iframe-utm-fix"
---

# Solving the Calendly iframe UTM problem

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

- Module 02: Sales-Led Growth Reports
- Lesson: 2.5
- Track: SLG
- Format: Playbook
- Read time: 8 min

Embedded Calendly widgets break attribution because UTMs don’t survive the iframe boundary. Even when ad clicks land on your page with perfect UTMs, the booking confirmation comes back without source data. Two configuration changes — a pre-Calendly form and a redirect to a thank-you page — restore full attribution and typically recover 30–50% of demo source data.

## Key takeaways

- 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

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 it 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.

## 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

## 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

### 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.