Zoho Forms: Why utm_medium Shows Referral on Direct Visits

Zoho Forms: Why utm_medium Shows Referral on Direct Visits and How to Stop It

A common set-up is a Zoho Form embedded on a website with hidden UTM fields, where the organisation fills in its own values for internal lead-source reporting. If the Advanced Tracking code is also installed on that site, the hidden values can be replaced when the form is submitted, even on a direct visit. This article explains what happens, why, and the options for avoiding it.

The issue

A form contains a hidden utm_medium field that has been left blank, or set to a custom value, deliberately. The Advanced UTM Tracking code is installed on the page. A visitor loads the page directly, with no UTM parameters in the address and no referring page, and submits the form. The entry arrives with utm_medium set to referral instead of the intended blank or custom value.

Why it happens

This is how the Advanced Tracking code is designed to work. When the page is opened directly and there is no utm_medium value to read, the code falls back to a default, so that every entry has a source recorded. The fallback labels the visit as a referral. Zoho's own description of the behaviour is in its guidance on auto-tracking with the document referrer.

What this means in practice: the code does not look at whether a hidden field already holds a value you set. With the Advanced Tracking code installed, the five standard fields (utm_source, utm_medium, utm_campaign, utm_term, and utm_content) are treated as tracking fields and can be filled in from the code's own data, whatever you typed into them. That behaviour was reported to Zoho by a customer, and Zoho's reply confirmed the fallback to a default medium on a direct visit. We have not seen Zoho confirm every detail of how the fields are overwritten, so treat the last point as the likely explanation and not an official statement.

What Zoho says to do

If you want UTM values captured only when they are present in the page address, use the basic tracking code instead of the advanced one. With the basic code, a direct visit with no UTM parameters is not given a default value.

Option Effect Source
Use the basic tracking codeUTM values are captured only if they are in the page address. Direct visits are not labelled as referrals.Zoho's recommendation
Keep the advanced code and accept the defaultsYou also get Google Ads, search engine, and referral detection, but direct visits show as a referral.Zoho's documented behaviour
Use a differently named hidden field for your own labelsFields that are not one of the five standard UTM names are not part of the automatic tracking, so your value is not replaced.Our suggestion. Zoho did not answer this part, so test it before relying on it.

The separate field approach in practice

If you use the standard utm_ names for genuine campaign attribution, keep them for that. For internal lead-source labelling, such as tagging every entry that comes through a particular form, add a separate hidden field with its own name, for example internal_lead_source, and map it to the matching Zoho CRM field. That keeps your label and the tracking data apart, and means neither can overwrite the other.

Check your other UTM fields too

  • utm_source may be affected as well. On a direct visit, the fallback sets the source to the site's own domain. If you have set utm_source to your own domain by hand, the two values look identical, so you could not tell whether it was replaced. Zoho did not confirm this either way, so test it with a deliberately different value.
  • Spelling in Zoho's reply. Zoho's reply refers to the value as referrer, while its documentation and the entries themselves show referral. We have used referral.

How to test it

  1. Set the hidden utm fields to deliberately unusual values, for example test-medium and test-source.
  2. Open the page directly in a private browser window, with no UTM parameters, and submit the form.
  3. Check the entry. If the values are replaced, the tracking code is overwriting them.
  4. Switch to the basic tracking code, or move your label to a separate field, and repeat.

For how the advanced code decides what to record, see Zoho Forms Advanced Tracking: Capturing UTM, Google Ads and Referral Sources.

Need help? As a Zoho Partner serving the UK and Ireland, we can set up form tracking so lead sources reach Zoho CRM accurately, and test it against your own forms. Email zoho@1cloudconsultants.com or raise a support request with 1 Cloud Consultants.