Skip to Content

Zoho Forms

Zoho Forms is a powerful online form builder that is part of the Zoho suite of business applications. It supports features like multi-page forms, payment integration, file uploads, and deep integration with Zoho CRM and other Zoho products.

AttributionHub supports two integration methods for Zoho Forms:

  1. Iframe embeds — Zoho forms embedded via iframes are populated by appending attribution data as URL parameters on the iframe src. This is the most common integration method.
  2. Native form elements — If you embed a Zoho form using the HTML source code option (which renders standard <form> elements on the page), the standard forms handler populates it automatically.

Prerequisites

Before you begin, make sure:

  • The AttributionHub tracking script is installed on your site (see Installation)
  • You have a Zoho Forms account with access to create or edit forms
  • You have access to your website’s code or CMS to add the embed code

Step 1: Add Hidden Fields in Zoho Forms

  1. Open your form in the Zoho Forms editor
  2. From the field palette on the left, drag a Single Line field onto your form
  3. Click on the field to open its properties
  4. Set the Field Name (Label) to something descriptive (e.g., “Attribution Channel”)
  5. Click on Field Properties > Advanced and check the Hidden checkbox to make it a hidden field
  6. In the Field Unique Name (or API Name), set it to match the AttributionHub field name (e.g., ah_lt_channel)
  7. Repeat for each attribution field you want to capture

See the Recommended Hidden Fields section for a list of the most useful fields to add.

Step 2: Enable URL Parameter Pre-fill

For iframe embeds, Zoho Forms needs to be configured to accept URL parameter pre-fill:

  1. In the form editor, go to Settings (gear icon)
  2. Navigate to General Settings or Data Collection Settings
  3. Enable Pre-fill fields from URL parameters (the exact wording may vary by Zoho Forms version)
  4. Map each URL parameter to the corresponding hidden field:
    • Parameter name: ah_lt_channel —> Field: “Attribution Channel”
    • Parameter name: ah_lt_source —> Field: “Attribution Source”
    • (repeat for each field)
  5. Save the settings

This step ensures that when AttributionHub appends parameters to the iframe URL, Zoho Forms reads them and fills the corresponding fields.

Step 3: Embed the Form on Your Page

Iframe embed (most common):

Use Zoho’s standard iframe embed code and add the data-attrhub-iframe attribute:

<iframe data-attrhub-iframe src="https://forms.zoho.com/yourorg/form/YourFormName" width="100%" height="600" frameborder="0" style="border: 0" ></iframe>

The data-attrhub-iframe attribute tells AttributionHub to treat this as a Zoho iframe and inject attribution parameters into the URL.

HTML source code embed (native form):

If you choose the “Source Code” embed option in Zoho Forms, it renders a standard HTML form on the page. This is handled automatically by the standard forms handler — no special attributes are needed:

<!-- Zoho Forms source code embed --> <form action="https://forms.zoho.com/..." method="POST" accept-charset="UTF-8"> <!-- Visible fields --> <input type="text" name="Name" placeholder="Your Name" /> <input type="email" name="Email" placeholder="Email" /> <!-- Hidden attribution fields --> <input type="hidden" name="ah_lt_channel" /> <input type="hidden" name="ah_lt_source" /> <input type="hidden" name="ah_lt_medium" /> <button type="submit">Submit</button> </form>

Step 4: Test the Integration

  1. Visit a page on your site that contains the Zoho form
  2. Open your browser’s DevTools (F12)
  3. For iframe embeds: find the iframe in the Elements panel and check that its src URL now includes attribution parameters (e.g., ?ah_lt_channel=Organic+Search&ah_lt_source=Google)
  4. For native forms: inspect the hidden <input> elements and check that they have attribution values
  5. Submit a test entry
  6. In Zoho Forms, go to All Entries and check the test submission. The hidden field values should contain attribution data

For a full testing walkthrough, see Verify It Works.

How It Works

Iframe Embeds

When AttributionHub finds an iframe with the data-attrhub-iframe attribute:

  1. It reads the current iframe src URL
  2. It builds URL search parameters from your field mapping
  3. It updates the iframe src with the attribution parameters
  4. The iframe reloads, and Zoho Forms reads the URL parameters to pre-fill the hidden fields

Native Form Elements

For forms rendered as standard HTML on the page, AttributionHub’s standard forms handler finds matching hidden fields and sets their values directly. No iframe manipulation is needed.

The table below lists the most commonly used fields. For the complete field catalog, see Field Reference.

Core Attribution Fields (Latest Touch)

Field Unique NameDescriptionExample Values
ah_lt_channelChannel group (latest touch)Paid Search, Organic Social, Direct
ah_lt_sourceTraffic source nameGoogle, Facebook, Direct
ah_lt_mediumTraffic mediumpaid, organic, social, email
ah_lt_campaignCampaign namespring_sale, Organic Search
ah_lt_contentContent classificationPaid Search Ad, Social Post
ah_lt_termSearch keyword (if available)running shoes
ah_lt_landing_urlLanding page URL (no query string)https://yoursite.com/pricing

Core Attribution Fields (First Touch)

Field Unique NameDescriptionExample Values
ah_ft_channelChannel group (first touch)Paid Search, Organic Social
ah_ft_sourceTraffic source nameGoogle, Facebook
ah_ft_mediumTraffic mediumpaid, organic, social
ah_ft_campaignCampaign namelaunch_campaign
ah_ft_landing_urlOriginal landing page URLhttps://yoursite.com/blog/post

Global Fields

Field Unique NameDescriptionExample Values
ah_visitor_idUnique visitor ID, persistent across visitsa1b2c3d4-e5f6-7890-abcd-ef1234567890
ah_touch_countTotal number of recorded visits5

For additional fields including latest-non-direct touch (ah_lnd_*), drill-down fields, raw UTM parameters, and ad click IDs, see the full Field Reference.

Custom Field Mapping

If your Zoho form fields use different names, override the defaults:

<script> window.attrhub = { settings: { fieldMapping: { "latest.attribution.channelGroup": "zoho_channel", "latest.attribution.source": "zoho_source", "latest.attribution.campaign": "zoho_campaign", }, }, }; </script>

See Configuration for the full mapping reference.

Tips

  • Zoho CRM integration — If you connect Zoho Forms to Zoho CRM, your attribution fields will flow through to CRM lead records. Map the form fields to CRM custom fields in the Zoho Forms-CRM integration settings.
  • Zoho Analytics — Export form submissions to Zoho Analytics for advanced attribution reporting. You can build dashboards showing which channels generate the most leads.
  • Multi-page forms — Add hidden fields to the first page of your multi-page form so they are populated immediately when the form loads.
  • Conditional logic — You can use Zoho Forms’ conditional logic to show or hide form sections based on attribution values if needed (e.g., show a different question for visitors from paid campaigns).
  • Approval workflows — Attribution data is included in form entries and can be referenced in Zoho Forms approval workflows and email notifications.

Troubleshooting

Fields are empty in form entries

  1. For iframe embeds, verify that the data-attrhub-iframe attribute is present on the iframe element.
  2. Make sure URL parameter pre-fill is enabled in Zoho Forms settings and each parameter is mapped to the correct field.
  3. For native forms, verify the hidden field name attributes exactly match the AttributionHub field names. Names are case-sensitive.
  4. Enable logging (enableLogging: true in settings) and check the browser Console.

Iframe URL not updated

Check the iframe src in DevTools. If no parameters are being appended, make sure the data-attrhub-iframe attribute is present on the iframe element. Without this attribute, AttributionHub may not detect the Zoho iframe.

Pre-fill not working despite correct URL parameters

Some Zoho Forms configurations require explicit per-field pre-fill mapping. Go to the form settings and verify that each URL parameter is explicitly mapped to the corresponding form field. Also check that the field allows pre-fill (some field types may restrict it).