Skip to content
SourceLoop
Meeting tracking

How to track lead source in Zoho Bookings

See exactly which marketing investment produces each Zoho Bookings appointment, with the full visitor journey saved next to every booking record.

On this page
  1. What SourceLoop captures from Zoho Bookings
  2. Before you start
  3. Step 1: Install the SourceLoop tracking script
  4. Step 2: Add a hidden custom field to your booking form
  5. Step 3: Embed the booking page on your site
  6. Step 4: Configure the Zoho Bookings webhook
  7. Where to see Zoho Bookings appointments
  8. Contacts Hub
  9. Attribution dashboard
  10. Funnel reports

If your business runs on Zoho, the Bookings module is probably already part of your stack, no extra contracts, no separate tool to manage. The piece it doesn’t solve is attribution: Zoho Bookings captures the appointment, but not the channel that produced it. This guide adds that context to every booking.

Four steps, about ten minutes total. The webhook step requires Zoho Bookings on the Premium plan or above.

What SourceLoop captures from Zoho Bookings

Every appointment booked through your embedded Zoho Bookings widget reaches SourceLoop with:

  • Inbound source plus the complete UTM parameter set captured on the visitor’s first session
  • Visited pages, in chronological order, leading up to the appointment
  • Span of the customer journey: total time elapsed between first touch and the actual booking
  • Repeat visit count before the conversion finally happened
  • Email address captured directly from the Zoho Bookings form
  • Initial landing destination and the URL that referred the visitor
  • Source of the closing session, the one that ended in the booking
  • Device class, country, and browser

Before you start

You’ll need:

  • A SourceLoop workspace (free trial)
  • Edit access to the website (or Zoho Sites page) where the Zoho Bookings widget will live
  • A Zoho Bookings account on the Premium plan or above (Free and Basic don’t include webhook integrations, which this guide requires)
  • At least one service / appointment type configured in Zoho Bookings

Step 1: Install the SourceLoop tracking script

Log in to SourceLoop, navigate to Setup in the left menu, and switch to the Tracking code tab. Copy the snippet you see.

SourceLoop Setup page showing the tracking code snippet ready to copy

Add the snippet to the <head> section of every page on your site. Whether your booking page sits on Zoho Sites, WordPress, Webflow, or a custom-coded landing page, the SourceLoop snippet needs to load on it for attribution to work.

Step 2: Add a hidden custom field to your booking form

Zoho Bookings captures URL parameter values onto a booking only when there’s a matching custom field on the booking form. Add the one SourceLoop needs.

  1. In Zoho Bookings, open Workspaces -> Services -> [your service] -> Booking Form.
  2. Click + Add Field and choose Single Line.
  3. Set the Field Name exactly to:
sl_aid
  1. Mark the field as Hidden so visitors don’t see it on the booking form.
  2. Save the booking form.

Quick verify: open your Zoho Bookings booking page URL with ?sl_aid=test123 appended and book a test slot. In the booking detail view, the Questions tab should show sl_aid = test123. If you see the value there, the field is wired correctly.

Step 3: Embed the booking page on your site

The booking widget needs to live on a page where the SourceLoop tracking script is already running.

  1. In Zoho Bookings, go to Share -> Embed.
  2. Pick the embed style you want, Inline, Popup, or Floating button. All three work the same way for attribution.
  3. Copy the embed code and paste it onto the page on your site where bookings should happen.

Step 4: Configure the Zoho Bookings webhook

The webhook is what delivers each new booking to SourceLoop, where the booking gets matched to the visitor’s journey and saved as a fully-attributed lead.

  1. In SourceLoop, go to Setup -> Incoming Webhooks and copy your webhook URL.
  2. In Zoho Bookings, go to Settings -> Integrations -> Webhooks.
  3. Click + Create Webhook.
  4. Configure the webhook with:
    • URL: the SourceLoop webhook URL from step 1
    • Event: Booking Created (optionally also Rescheduled and Cancelled if you want those tracked too)
    • Content Type: application/json
    • Method: POST
  5. Save.

Book a test slot through your embedded page to confirm the appointment appears in SourceLoop with channel, source, and landing page populated.

Where to see Zoho Bookings appointments

Three SourceLoop views give you complementary perspectives on the same data:

Contacts Hub

Visit app.sourceloop.ai/contacts to see every Zoho Bookings appointment as a contact row. Expand a row to reveal the visitor’s full pre-booking timeline, useful as call prep when you want to know what content the prospect already consumed before walking into the meeting.

SourceLoop Contacts Hub with a Zoho Bookings appointment expanded to show the lead's full pre-booking journey

Attribution dashboard

app.sourceloop.ai/dashboards/traffic groups your Zoho Bookings appointments by source, medium, and campaign. The view answers “which channel drives our highest-converting appointments?” in a single glance.

SourceLoop attribution dashboard with Zoho Bookings appointments grouped by source and campaign

Funnel reports

In app.sourceloop.ai/funnels, build a funnel that ends in “Zoho Bookings appointment”. Slice it by source or landing page to find the paths that consistently turn into booked appointments versus the ones that look busy but never produce a meeting.

SourceLoop funnel report ending in a Zoho Bookings appointment conversion step

When paid spend is in play, forward Zoho Bookings appointments to Google Ads, Meta, and LinkedIn as offline conversions so the bidding algorithms can optimize against real booked meetings. Connect your Google Ads account covers the offline-conversion setup.

Frequently asked questions

  1. Does this work with Zoho One subscribers?

    Yes. Whether you reach Zoho Bookings through Zoho One, Zoho Workplace, or as a standalone subscription, the setup steps are identical. The Bookings module behaves the same across all entry points.

  2. Why does the custom field have to be named exactly "sl_aid"?

    Zoho Bookings matches the URL parameter to a custom field by name. The field name you create in the booking form has to exactly match the parameter the SourceLoop tracker sends, lowercase, no spaces, no underscores out of place.

  3. I host my Zoho Bookings page through Zoho Sites. Will attribution still work?

    Yes, on any page where you can install the SourceLoop tracking script and embed the booking widget. That includes Zoho Sites pages, your own WordPress site, a custom-built landing page, anywhere you control the HTML and the Zoho Bookings embed sits inside it.

  4. Visitors sometimes book through my direct Zoho Bookings page URL. Will those appointments show up?

    No. Bookings made through a raw `bookings.zoho.com/...` link won't appear in SourceLoop, because the visitor never lands on a tracked page first. To attribute that traffic, point your campaigns at a landing page that embeds the widget.

  5. Do I need a paid Zoho Bookings plan?

    The hidden-field and embed steps work on every Zoho Bookings tier, but the webhook step requires the Premium plan or above. Free and Basic plans don't include webhook integrations, so bookings can't reach SourceLoop.

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

kayden@abc.com

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

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

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