HubSpot Landing Pages guide

Sync HubSpot landing page leads to Sheets

Capture HubSpot landing page form submissions - including progressive profiling responses, smart content variants, and gated content downloads - in Google Sheets for cross-platform lead reporting.

CMS: Landing page

HubSpot's CMS landing pages come with powerful built-in forms that feature progressive profiling, smart content personalization, and deep CRM integration. While HubSpot excels at managing leads within its ecosystem, many teams also need submission data in Google Sheets for cross-department reporting, ad agency access, or integration with non-HubSpot tools. LeadToSheet provides a parallel capture path that writes every HubSpot landing page form submission to Sheets without disrupting CRM workflows, adding a lightweight reporting layer outside the HubSpot platform.

Implementation checklist

  1. 1

    Add the LeadToSheet SDK via HubSpot page settings

    In the HubSpot page editor, go to Settings > Advanced > Additional Code Snippets > Footer HTML. Paste the SDK snippet there. This loads the script on the published landing page alongside HubSpot's own form scripts.

    Tip: For site-wide deployment across all HubSpot pages, add the script in Settings > Website > Pages > Site Footer HTML instead of per-page.

    HubSpot footer snippet

    <script src="https://cdn.leadtosheet.com/sdk.min.js" data-client="YOUR_CLIENT_KEY"></script>
  2. 2

    Understand HubSpot's server-side form handling

    HubSpot forms submit data to HubSpot's servers via an AJAX POST request, not a traditional browser form submission. The LeadToSheet SDK listens for HubSpot's form submission events (via the window.hbspt callback) to capture the data. No additional configuration is needed, but be aware that the capture relies on HubSpot's client-side form rendering.

  3. 3

    Test with progressive profiling enabled

    Submit a test entry as a known HubSpot contact to trigger progressive profiling (where HubSpot shows different fields on repeat visits). Verify that the new fields appear as additional columns in your Google Sheet, since progressive profiling changes which fields are visible with each submission.

Customization ideas

  • Track progressive profiling field progression

    HubSpot's progressive profiling shows different fields to returning visitors. LeadToSheet captures whichever fields are displayed at submission time. Over time, your Google Sheet accumulates a complete profile across multiple submissions, complementing HubSpot's CRM contact timeline with raw spreadsheet data.

  • Capture smart content variant conversions

    HubSpot smart content personalizes page elements based on visitor attributes. Add a hidden HubSpot form field that records the smart content rule that was active (e.g., 'returning_customer' or 'enterprise_segment'). LeadToSheet captures this field so you can analyze conversion rates by audience segment in Sheets.

  • Provide ad agency access without HubSpot seats

    External ad agencies often need lead data for campaign optimization but do not have HubSpot CRM access. Share the Google Sheet with your agency so they can see form submissions with UTM attribution in real time, without purchasing additional HubSpot seats.

Troubleshooting

  • HubSpot forms use AJAX and do not fire standard form events

    HubSpot forms submit via JavaScript AJAX calls, not standard HTML form submissions. The LeadToSheet SDK includes specific handling for HubSpot's form API (window.hbspt.forms callbacks). If submissions are not captured, verify that the LeadToSheet script loads after HubSpot's form embed script by placing it in the footer HTML section.

  • Progressive profiling fields missing from Sheets

    Progressive profiling shows different fields on each visit, so a single submission will only include the fields shown that visit. This is expected behavior. Your Google Sheet will show empty cells for fields that were not displayed during that particular submission. Over time, multiple submissions from the same contact will fill in different columns.

  • HubSpot personalization tokens not captured

    HubSpot personalization tokens (like {{contact.firstname}}) render server-side before the page reaches the browser. These are display-only values and are not included in form submission payloads. To capture personalization context, add a hidden form field that records the contact's lifecycle stage or list membership.

Frequently asked questions

HubSpot already has a CRM. Why send form data to Google Sheets?
Google Sheets provides a lightweight, shareable reporting layer that does not require HubSpot access. It is ideal for ad agencies, cross-department teams, and quick pivot table analysis. LeadToSheet captures UTM parameters that HubSpot may associate at the session level rather than the submission level.
Does LeadToSheet interfere with HubSpot's CRM contact creation?
No. LeadToSheet captures the form submission event in the browser and writes to Google Sheets independently. HubSpot's CRM contact creation, lifecycle stage assignment, and workflow triggers continue to function normally.
Can LeadToSheet capture HubSpot form submissions on non-HubSpot pages?
Yes. If you embed a HubSpot form on a non-HubSpot page using the HubSpot form embed code, add the LeadToSheet SDK to that page as well. The SDK detects HubSpot's form rendering and captures submissions regardless of the host page platform.