Overview
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
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
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
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.
