# How to track lead source in Zoho Forms

Capture the marketing channel, campaign, and full pre-submission journey behind every Zoho Forms entry, with full attribution flowing into the entry record.

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

---

Zoho Forms is the form builder of choice for businesses already running on the Zoho suite, especially when you need tight integration with Zoho CRM, Zoho Workplace, or any of Zoho's other tools. The catch most users hit: form entries flow into Zoho with no marketing context attached, no idea which ad, post, or campaign brought the visitor to the form. This guide adds the missing layer.

Four steps, around fifteen minutes. The Field Alias step in step 2 is the one most people miss, watch for it. Webhook support requires a paid Zoho Forms plan.

## What SourceLoop captures from Zoho Forms

Every Zoho Forms entry arrives in SourceLoop alongside:

- **Acquisition channel** plus the visitor's complete UTM parameter set
- **Browsing sequence** before the entry, every page in chronological order
- **Total time on site** before the submission
- **Session count** before they converted
- **Email and name** from the Zoho Forms entry
- **First-seen landing page** and the URL that referred the visitor
- **Source of the closing session**, the one that produced the entry
- **Device, country, and browser**

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **Edit access** to the website where the Zoho Forms widget will be embedded
- A **Zoho Forms account** on a paid plan (Basic or above for webhook support)
- At least one Zoho Forms form built and published

## Step 1: Install the SourceLoop tracking script

Log in to SourceLoop, open **Setup** from the left sidebar, and choose the **Tracking code** tab. Copy the snippet shown.

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

Drop the snippet inside the `<head>` of every page on your site, including the page where the Zoho Forms widget will live.

## Step 2: Add a hidden field with a Field Alias

Zoho Forms uses **Field Alias** as the URL parameter name. You'll need both a hidden field on the form AND an alias set to `sl_aid` for the integration to work.

1. Open your form inside **Zoho Forms**.
2. Add a new field of type **Single Line**. Label it anything you like, "SourceLoop Id" works fine.

![Zoho Forms field added with a Single Line type](/help/screenshots/2kp01536agm.png)

3. Open the field's **Field Properties** panel.
4. Under **Field Visibility**, mark the field as **Hide** and save.

![Zoho Forms Field Visibility set to Hide](/help/screenshots/5vjfvzndhq9.png)

5. From the form builder's left sidebar, navigate to **Settings -> Field Alias - Prefill URL**.

![Zoho Forms Settings menu with Field Alias - Prefill URL highlighted](/help/screenshots/yhctc2d053.png)

6. Find your new field in the alias list and set its alias to exactly:

```
sl_aid
```

(lowercase, no spaces, aliases are case-sensitive).

![Zoho Forms Field Alias panel with sl_aid entered for the hidden field](/help/screenshots/twraouuna78.png)

7. Click **Save**.

> **Don't skip the Field Alias step**
> This is the step most teams miss. Without setting the alias, Zoho Forms ignores the `?sl_aid=...` URL parameter and the field stays empty on every submission. The hidden visibility alone isn't enough, the alias is what tells Zoho to populate the field from the URL.

**Quick verify**: open your form's standalone URL with `?sl_aid=test123` appended (e.g. `https://forms.zohopublic.com/yourname/form/YourForm/formperma/HASH?sl_aid=test123`) and submit. The resulting entry should show the field populated with `test123`. If yes, the alias is wired correctly.

## Step 3: Embed the form on your website

Once the form has the hidden field and alias, get it onto your site.

1. From your Zoho Forms **Share** tab, choose **Embed**.
2. Select **Iframe** or **JavaScript** embed (either works).
3. Copy the embed code and paste it onto your website where the form should appear.

![Zoho Forms Share tab showing Iframe and JavaScript embed options](/help/screenshots/x6v2jm1uxdj.png)

> **Direct Zoho Forms URLs aren't attributable**
> Entries made through a raw `forms.zohopublic.com/<your-handle>/form/...` link **won't carry attribution data**. The visitor never lands on a page with the tracker. Always route campaigns through a landing page that embeds the form.

## Step 4: Configure the Zoho Forms webhook

The webhook delivers each entry to SourceLoop, where it's matched to the visitor's journey and saved as an attributed lead.

1. In SourceLoop, go to **Setup -> Incoming Webhooks** and copy your webhook URL.

![SourceLoop Setup page on the Incoming Webhooks tab](/help/screenshots/7tj6tln9hvo.png)

2. In Zoho Forms, open your form, go to **Integrations -> Webhook**, and add a new webhook with the SourceLoop URL.

![Zoho Forms Integrations panel with Webhook configuration](/help/screenshots/r2nay7he56.png)

3. Set the content type to **application/json**.

![Zoho Forms webhook with content type set to application/json](/help/screenshots/rr9w1ltep2.png)

4. Configure the payload parameters. At minimum, send `name`, `email`, and `sl_aid`. Keep the parameter names exactly as shown below so SourceLoop can read them.

![Zoho Forms webhook payload parameters configured with name, email, and sl_aid](/help/screenshots/ro5d4pnv6o8.png)

5. Save.

Submit a test form on your embedded page to confirm the entry appears in SourceLoop with source, channel, and landing page populated.

## Where to see Zoho Forms entries in SourceLoop

Three SourceLoop views give different cuts of your Zoho Forms data:

### Contacts Hub

Every Zoho Forms entry shows up as a contact row at [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts). Click a row to expand the visitor's full pre-submission timeline.

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

### Attribution dashboard

[app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) groups your Zoho Forms entries by source, medium, and campaign. Useful when you need to see which acquisition channels actually turn into qualified leads.

![SourceLoop attribution dashboard with Zoho Forms entries 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 "Zoho Forms entry". Slice by source or landing page to find the best paths from first visit to submitted form.

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

For paid acquisition, push Zoho Forms entries to **Google Ads, Meta, and LinkedIn as offline conversions** so the bidding algorithms learn from real lead generation. [Connect your Google Ads account](/help/connect-google-ads/) covers the offline-conversion setup.

## Frequently Asked Questions

### Why does the field need both a Hidden setting AND a Field Alias?

Zoho Forms uses Hidden visibility to keep the field off the public form, but it uses Field Alias as the URL parameter name. Without a Field Alias set to `sl_aid`, Zoho ignores the incoming URL parameter and the field stays empty even though it's there. Both settings are required.

### I set the field as Hidden but skipped the Field Alias step. Why isn't tracking working?

That's the most common mistake on this integration. Zoho requires the explicit alias to map URL parameters into fields. Add the alias `sl_aid` under Settings -> Field Alias - Prefill URL, save, and try again.

### Can I use the existing fields on my form instead of adding a new one?

You can, but you'd need to set the Field Alias of one of your existing fields to `sl_aid`. Adding a dedicated hidden field is cleaner and won't affect your form's UI or data structure for visible fields.

### Do I need any Zoho plan in particular?

Webhooks in Zoho Forms are available on paid plans (Basic and above). Free plans don't include webhooks, so submissions won't reach SourceLoop without an upgrade. The hidden-field and Field Alias steps work on any plan.

### I share my Zoho Forms direct link in client emails. Will those entries be tracked?

No. Submissions through a raw `forms.zohopublic.com/<your-handle>/form/...` link won't carry attribution because the visitor never lands on a tracked page first. Embed the form on a landing page that has the SourceLoop snippet.
