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.
On this page
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)
- 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.
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.
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 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.
Attribution dashboard
Switch to 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?”
Funnel reports
Build a funnel in 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.
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 walks through that setup.
Common issues
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.