# How to track lead source in TidyCal

Pin every TidyCal booking to the marketing channel that produced it so you can stop guessing which content, ad, or referral actually drives your calls.

Source: https://sourceloop.ai/help/track-lead-source-in-tidycal/
Updated: 2026-05-28

---

TidyCal is the scheduler of choice for solopreneurs, consultants, and lifetime-deal collectors who want Calendly's experience without the recurring bill. The trade-off most users don't notice until later: when bookings start coming in, there's no clean way to see which marketing effort actually produced them. This guide fixes that.

Five minutes start to finish, no API keys, works on every TidyCal plan.

## What SourceLoop captures from TidyCal

After setup, every TidyCal booking arrives in SourceLoop tagged with:

- **Acquisition source** plus the full UTM set (`utm_source`, `utm_medium`, `utm_campaign`, `utm_content`, `utm_term`) from the visitor's first session
- **Conversion sequence**: chronological list of every page they viewed leading up to the booking
- **Days from first visit to booked call**, useful for understanding your content-to-call timeline
- **Number of return visits** before the prospect finally booked
- **Contact email** captured from the TidyCal booking form
- **First-seen landing page** and the referring URL
- **Most recent session source** right before the booking happened
- **Device, location, and browser** so you can spot patterns by segment

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **Edit access** to the website where your TidyCal widget will be embedded
- A **TidyCal account** with at least one booking type configured

## Step 1: Install the SourceLoop tracking script

Sign in to SourceLoop, click into **Setup** from the left menu, and select the **Tracking code** tab. Grab the snippet displayed there.

![SourceLoop Setup page showing the tracking snippet ready to copy](/help/screenshots/sourceloop-tracking-code-script.png)

Paste the snippet inside the `<head>` of your site, the page that hosts the TidyCal embed especially, but installing it site-wide gives you a full picture of every visitor's journey before they finally book.

## Step 2: Embed your TidyCal booking widget

In TidyCal, open your booking type and head to the **Embed** tab. TidyCal gives you a few placement options:

- **Inline iframe**: drops the full TidyCal calendar directly onto your page
- **Popup button**: opens TidyCal in a modal when a visitor clicks a CTA
- **WordPress block**: if your site runs on WordPress, the official TidyCal block embeds it natively

All three feed SourceLoop equally well. The only rule: the page that displays the embed must also have the SourceLoop snippet from step 1. Once both are in place, every booking through the widget shows up in SourceLoop with the full marketing journey attached.

> **Direct TidyCal links can't be attributed**
> Bookings made through a raw `tidycal.com/<your-handle>` link, the kind you'd post in a Twitter bio, paste into a DM, or include in an email signature, **won't appear in SourceLoop**. The visitor jumps straight to TidyCal without touching a tracked page, so there's nothing for SourceLoop to attribute. Route those campaigns through a landing page that embeds the widget if you want the data.

## Step 3: Verify it's working

Open your booking page in an **incognito tab**, add `?utm_source=test&utm_medium=verify&utm_campaign=tidycal-check` to the URL, and book a test slot with a real email address you control.

Pop over to the **Contacts Hub** in SourceLoop, the test booking should show up within seconds, with the test UTM values attached to the contact record.

## Where to see TidyCal bookings

Once everything's wired, your TidyCal bookings show up across three different SourceLoop views, each useful for a different question:

### Contacts Hub

Open [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts) and you'll find every TidyCal booking as a contact row. Click into any row to unfold the full pre-booking story, what brought them in, what they read on the way, and how many sessions it took before they were ready to schedule.

![SourceLoop Contacts Hub showing a TidyCal booking with the lead's full pre-booking journey](/help/screenshots/sourceloop-lead-journey-demo.webp)

### Attribution dashboard

Switch to [app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) to see TidyCal bookings broken down by source, medium, and campaign. The view answers questions like "is my newsletter actually driving calls, or just opens?" and "which podcast guest spot delivered the most bookings?"

![SourceLoop attribution dashboard with TidyCal bookings grouped by source and campaign](/help/screenshots/sourceloop-attribution-dashboard.webp)

### Funnel reports

Build a funnel in [app.sourceloop.ai/funnels](https://app.sourceloop.ai/funnels/) ending in a "TidyCal booking" step. Slice it by source or by landing page to see your highest-converting paths, the ones where visitors actually become booked calls instead of bouncing.

![SourceLoop funnel report ending in a TidyCal booking conversion step](/help/screenshots/sourceloop-funnel.png)

If you're running paid acquisition, you can also forward the TidyCal bookings to **Google Ads, Meta, and LinkedIn as offline conversions** so the ad platforms can optimize against real booked calls rather than form fills. [Connect your Google Ads account](/help/connect-google-ads/) walks through that setup.

## Common issues

> **Bookings missing only from specific pages**
> If TidyCal bookings show up from some pages but not others, the SourceLoop snippet probably isn't installed sitewide. Visit the page where bookings aren't tracking, view source, and confirm the SourceLoop snippet is in the `<head>`. The easiest fix is to add it to your site's global head template (or via a tag manager) so every page is covered.

## Frequently Asked Questions

### Does this work with the TidyCal lifetime deal plan?

Yes. Whatever TidyCal plan you have (Free, Lifetime, or Pro), the attribution flow is identical. Setup happens entirely on your website with no TidyCal-side configuration.

### What about TidyCal's WordPress plugin?

Works fine. As long as the SourceLoop snippet is also loaded on the WordPress page where the TidyCal block lives, bookings made through it are captured normally.

### I post my TidyCal link in my Twitter bio and Instagram profile. Will those bookings be attributed?

No. Bookings made directly through a `tidycal.com/<your-handle>` link won't show up in SourceLoop, because the visitor never lands on a page that has the tracker. To attribute social profile traffic, point your bio links to a landing page that embeds the TidyCal widget instead.

### Does this support TidyCal's group bookings and paid bookings?

Yes. Group sessions, paid bookings, and standard 1-on-1 meetings all run through the same embed code, so they all get the same attribution treatment.

### Can I attribute past TidyCal bookings retroactively?

No. SourceLoop only captures bookings made after the tracking script is installed and the embed is live on a tracked page. Historical bookings can't be backfilled.
