Web Form Attribution

Prev Next

📚 Web Form Attribution Series - Part 1 of 3

Part 1: Web Form Attribution Tracking (you are here)  

Part 2: JavaScript Overview - Understanding the JavaScript  

Part 3: JavaScript Testing Guide - Validation and troubleshooting  

Web form submissions are one of the most important ways prospects engage with your business. The Integrous Analytics system captures detailed Attribution data from these interactions and connects that data to Opportunities in Salesforce to help you understand which marketing campaigns, channels, and content drive meaningful engagements and, ultimately, revenue.

Before reading this guide, we recommend first reading the Quick-Start Guide for context.

This Document Will Cover:


Overview

The Integrous Analytics system captures attribution data through a two-step process:

  1. Tracking Source Information: Our JavaScript runs on your website pages and tracks where visitors come from, storing this information temporarily in their browser.

  2. Capturing Data at Conversion: When a visitor submits a form, the source information is passed along with their form submission to your marketing automation platform and Salesforce.

Common web interactions that generate form submissions include:

  • Demo requests

  • Trial downloads

  • Free tool downloads

  • Whitepaper/ebook/infographic downloads

  • Webinar registrations

  • Newsletter sign-ups


Requirements for Web Form Attribution Tracking

Two key components must be in place to properly capture attribution on your website:

  1. Integrous JavaScript on all site pages - This script tracks visitor source information

  2. Hidden form fields on all web forms - These fields receive the attribution data from the JavaScript


How Attribution Tracking Works

Integrous Analytics JavaScript Functionality

The Integrous Analytics JavaScript performs two essential functions:

  • Session Tracking (only local to a user's browser)

    • Captures attribution data to the visitor's browser internal storage

    • Records 5 UTM Parameters (medium, source, campaign, content, term)

    • Intelligently determines source when UTMs aren't present in the URL:

      • Organic Search - Visitors from search engines without paid parameters

      • Organic Social - Visitors from social platforms without paid parameters

      • Referral - Visitors from other websites with referring URL

      • Direct - Direct visitors with no referrer information (only stored if there isn't prior attribution)

    • Saves the entry page URL and external ID (if present)

    • Builds a complete history of page visits over time (only local to the user's browser internal storage)

    • Stores this information for a configurable amount of time (pre-configured to 30 days, after which it expires)

  • Form Field Population

    • Scans the page to identify web forms

    • Populates hidden form fields with:

      • First-click attribution (oldest source data within 30 days)

      • Last-click attribution (most recent source)

      • Current page URL information

    • If any UTMs are blank, it fills a value of "Undefined"

Diagram illustrating traffic sources and browser local storage for form submissions.


The Data Flow Process

When a visitor submits a form on your website, here's what happens:

  1. JavaScript Captures Attribution Data: The JavaScript stores source information in the visitor's browser, and it is not sent anywhere until a form is submitted.

  2. Form Submission Passes Data: When a form is submitted, the hidden fields containing attribution data are sent along with user-entered information (name, email, etc.) to your marketing automation platform.

  3. Data Sent to Salesforce: The marketing automation platform passes the attribution data to Salesforce, where it's temporarily stored in "Processing" fields on the Lead or Contact record.

  4. Engagement Record Creation: Integrous Analytics creates an Engagement record with the attribution data from the Processing Fields, which are then cleared from the Lead/Contact and replaced with “Processed” or Jan 1, 1900.

    1. See the following related articles:

      1. Processing, RAW, and Reporting Fields

      2. Why don’t UTMs Persist in the Processing Fields

  5. Engagement Relationship Established: The new Engagement is linked to the Lead/Contact, and if it's an Activation Engagement, it becomes the Current Activation for that person.

Attribution data flow from web forms through marketing automation to Salesforce:

Flowchart illustrating data processing from traffic sources to Salesforce Leads and Contacts.

Multiple Engagement records build a complete interaction history for each Lead/Contact, with a special designation for Activation Engagements.Diagram illustrating the relationship between Lead/Contact Records and Engagement Records.

See related articles:


Web Attribution Implementation Guide

Add the Integrous JavaScript

The most common approach is to implement via Google Tag Manager:

  • Ensure GTM is installed on all site pages

    • The GTM container snippet must be present on every page of your website

    • This includes landing pages, product pages, form pages, etc.

  • Add the Integrous JavaScript tag

    • Log in to your GTM account

    • Create a new Custom HTML tag

    • Paste the Integrous JavaScript code provided by your implementation team

    • Set the trigger to fire on All Pages

    • Save and publish the container

  • Handle iframe scenarios

    • For forms inside iframes, the GTM container with Integrous JavaScript must be implemented:

      • On the parent page containing the iframe

      • AND within the iframe

    • This ensures proper communication between the parent page and iframe content

  • Alternatively, the script can be added directly to pages rather than via GTM if preferred

  • Multiple form implementation methods:

    • If your site uses multiple form implementation methods, the JavaScript will need to be updated for each method to match different field names

    • Contact your Integrous implementation team to update the script for each form type

Configure Hidden Form Fields

Every form that should capture attribution data must include hidden fields that the JavaScript will populate:

Hidden Form Field Requirements

The JavaScript is configured to set values in 14 hidden form fields (5 UTMs and External ID using first-session in 30-days, 5 UTMs and External ID using last non-direct session, session entry page URL, current page URL, and date). For the JS to find these fields, they must first be present on all web forms that we want to track this information through and they must post to the marketing automation platform:

  • IA_-_PROCESSING_FC_UTM_MED__c

  • IA_-_PROCESSING_FC_UTM_SRC__c

  • IA_-_PROCESSING_FC_UTM_CMP__c

  • IA_-_PROCESSING_FC_UTM_CON__c

  • IA_-_PROCESSING_FC_UTM_TRM__c

  • IA_-_PROCESSING_FC_EXT_ID__c

  • IA_-_PROCESSING_ENTRY_PAGE__c

  • IA_-_PROCESSING_LC_UTM_MED__c

  • IA_-_PROCESSING_LC_UTM_SRC__c

  • IA_-_PROCESSING_LC_UTM_CMP__c

  • IA_-_PROCESSING_LC_UTM_CON__c

  • IA_-_PROCESSING_LC_UTM_TRM__c

  • IA_-_PROCESSING_LC_EXT_ID__c

  • IA_-_PROCESSING_CONV_PAGE__c

Field settings:

  • Hidden fields must be present on all forms

  • Fields should NOT be pre-populated with values

  • Fields must be configured to overwrite any existing values in your MAP

  • Field names may vary based on your specific implementation

Engagement Type and Engagement Date

Two additional fields must be configured on each form, though not necessary as hidden fields since the JavaScript typically doesn’t set their value:

  • IA_-_PROCESSING_ENG_TYPE__c

  • IA_-_PROCESSING_ENG_DATE__c

Engagement Type Field:

  • Must set a specific hard-coded value identifying the form type (e.g., "Demo Request - Product X", "Whitepaper - Whitepaper Name"), so that everyone who submits a given form gets the same value

    • This is critical in order to determine which forms have been submitted by prospects

    • Values should align with your UTM Taxonomy

  • Should be set in the submission form processing, before the info is sent to Salesforce

    • Must be set in the same transaction as other attribution fields

    • Setting it separately will create duplicate Engagement records

Engagement Date Field:

  • Preferred approach: Set to TODAY via form processing, along with Engagement Type

    • This ensures the date is captured even if JavaScript is blocked

  • Alternative approach: Set via JavaScript if form processing can't handle it

    • Be aware this approach will fail if JavaScript is blocked

    • Setting it in post-submission form processing is preferred for reliability in case a user's browser blocks JavaScript

Notes:

  • The actual field names will vary depending on how they are implemented in the form. We can’t always control what their names will be on the page (for example, if a third-party platform inserts them), so the fields must first be added to the site and then the JS must be adjusted to match

    • If multiple field names are needed due to multiple form implementation methods, the JS will need to be updated for each

  • These fields pass to the marketing automation platform and ultimately to Salesforce where they are captured into the custom “Engagement” object

JavaScript Settings Configuration

The Integrous Analytics team manages the JavaScript configuration. For questions, please contact your Integrous point of contact.

❗Important Note - Adding a New Kind of Form to Your Site

Whenever you introduce a new type of form implementation to your site (e.g., if you've only had Hubspot forms and you're adding Marketo forms or Salesforce web-to-lead forms), please notify Integrous Analytics immediately. The JavaScript will need to be updated to recognize the specific field names used by each form implementation method to ensure proper attribution tracking continues.


Additional Information

Cross-Domain Tracking

The JavaScript automatically handles tracking between subdomains (assuming the JavaScript is implemented on both subdomains). For tracking across different domains, in case you have multiple sites in use:

  • Notify your Integrous implementation team of all domains in use

  • Each domain will need to be configured by Integrous to unlock this functionality

  • Without this setup, you will see traffic between your domains with attribution of "referral" rather than how they got to the first domain

Blank UTMs

Approximately 10% of form submissions may have blank UTM values due to:

  • Browser privacy settings blocking tracking

  • Ad blockers interfering with JavaScript execution

  • Your website opt-in settings, if present

  • Other technical limitations

  • The rate at which this occurs is dependent on your audience

For these cases, the system uses fallback mechanisms:

  • Lead Source field value for net-new Leads/Contacts

  • Default values that indicate the attribution couldn't be captured

Privacy/Compliance Considerations

The Integrous JavaScript is designed with privacy and compliance in mind:

  • Runs as a first-party script (less likely to be blocked than third-party scripts)

  • Uses browser local storage instead of cookies

  • Only sends data when a form is explicitly submitted by the user

  • Compatible with major privacy regulations like GDPR and CCPA

  • No PII is collected in Integrous fields - only stores UTM fields, External ID, page URL, and date

  • Many clients include a note in their privacy policy that "submitting a form constitutes consent to passing basic source tracking info"


Testing Your Implementation

Once you've completed the setup steps above, use our comprehensive JavaScript Testing Guide to verify that attribution data is being captured and flowing correctly through your system.

The testing guide provides both quick reference steps for technical users and detailed instructions for thorough validation of your JavaScript implementation.


Quick Setup Checklist

  • Add Integrous JavaScript to all site pages via Google Tag Manager

  • Add required hidden fields to all web forms

  • Configure form processing to set Engagement Type and Engagement Date fields

  • Test form submissions and verify data flows to Salesforce (see the JavaScript Testing Guide)

  • Validate that Engagement records are created with correct attribution data