HubSpot Marketing and CIPA: Is Your HubSpot Configuration Creating Consent Gaps?
HubSpot is the all-in-one marketing platform agencies deploy on hundreds of client sites. Its tracking code fires on page load by default. Its native consent banner — even after the May 2026 v2 migration — is designed as a notification tool, not a consent gate. And HubSpot is now explicitly named in active CIPA demand letters. Here's exactly where the gaps are, which configurations are vulnerable, and what agencies need to fix for every client running HubSpot.
In this article
- What HubSpot tracks by default
- The core CIPA problem: notification vs. consent gate
- HubSpot in CIPA demand letters
- The v1→v2 banner migration: what changed and what didn't
- The three banner types and which creates CIPA exposure
- The third-party script gap HubSpot's banner doesn't address
- HubSpot Ads pixels: a separate exposure layer
- HubSpot forms and real-time data transmission
- How to fix it: the three-path approach
- Per-client HubSpot compliance checklist
- Frequently asked questions
HubSpot is different from every other tracking tool in this article cluster. It's not just a pixel. It's the CRM, the email platform, the form builder, the landing page tool, the analytics dashboard, the ads manager — all in one platform, all loading a single tracking code that sets cookies and transmits visitor data to HubSpot's servers on every page where it's installed. That breadth is what makes HubSpot's CIPA exposure profile unique: there are more moving parts than a single advertising pixel, and the interconnection between those parts creates gaps that are easy to miss even when agencies think they've addressed consent.
This article maps the specific CIPA exposure points in a typical HubSpot marketing configuration — the ones plaintiff-side demand letters are targeting, the ones the May 2026 v1→v2 banner migration either addressed or left open, and the ones that require external CMP configuration because HubSpot's own tools don't cover them. Not legal advice; consult qualified counsel for specific situations.
What HubSpot tracks by default
When you install the HubSpot tracking code on a client's website, four cookies are placed in every visitor's browser on page load — before any consent interaction:
All four of these cookies are classified as analytics/personalization — not "strictly necessary" for the website to function. Under CIPA's prior-consent standard, all four should be blocked until consent is obtained. Under the default HubSpot tracking code installation, all four fire the moment the page loads.
Most tracking cookies capture anonymous behavioral data. The hubspotutk cookie is different: it's specifically designed to tie all a visitor's anonymous browsing sessions to their contact record the moment they submit any form. A California resident who browses a client's site, is tracked by hubspotutk without consent, and then submits a contact form has had their entire pre-consent browsing history linked to their identity and transmitted to HubSpot. That's the fact pattern CIPA demand letters are built around.
The core CIPA problem: notification vs. consent gate
Here's the central issue with HubSpot's native consent tooling, confirmed by multiple independent compliance sources including Secure Privacy's March 2026 guide: "HubSpot's native banner is a notification, not a consent gate — it doesn't block non-essential cookies before consent is given."
This distinction matters more than anything else in this article. A cookie notification tells visitors that the site uses cookies. A consent gate blocks those cookies until the visitor has made a choice. CIPA's prior-consent standard requires the latter — not the former.
HubSpot in CIPA demand letters
HubSpot named as third-party recipient in § 631 claims
Demand letters from Vivek Shah and similar serial CIPA plaintiffs specifically target websites where search bar inputs and form fields transmit data to multiple third-party analytics services in real time. HubSpot is named alongside Google and Facebook/Meta as one of the receiving services. The pattern: the plaintiff types into a site's search bar with browser DevTools open, observes that their input is transmitted in real time to js.hs-analytics.net or similar HubSpot analytics endpoints, takes a screenshot of the network tab, and attaches it to a demand letter asserting that the website owner aided and conspired with HubSpot in violating CIPA § 631(a) by intercepting the communication in transit without consent.
This is not a hypothetical. The April 2026 Jeffer Mangels analysis of the Shah demand letter pattern explicitly lists HubSpot alongside Google and Meta as the named third-party recipients. For any client site where HubSpot tracking code fires before consent and visitors type into search bars or forms, this exact demand letter pattern applies.
The v1→v2 banner migration: what changed and what didn't
HubSpot began automatically migrating accounts from its legacy v1 cookie consent banner to v2 on May 11, 2026. The migration is phased — not every account switched at once. If your clients are on HubSpot, some are already on v2, some will migrate in the coming weeks, and some may have custom CSS on their v1 banners that broke during migration.
What v2 adds: Updated design, domain-grouped banner management, Global Privacy Control (GPC) support, opt-out banner type, expanded customization. The GPC support is meaningful — v2's opt-out banner type properly processes the navigator.globalPrivacyControl signal, which v1 didn't.
What v2 doesn't change: The fundamental architecture. HubSpot's tracking code still loads on page load. The "Notification" banner type — the default — still fires cookies before any visitor interaction. The v2 banner migration doesn't retroactively fix a default-fire deployment; it just updates the banner's visual and feature set. If a client was exposed on v1 with the Notification type, they're still exposed on v2 with the Notification type unless you actively change the banner configuration to Opt-in.
The migration risk agencies must watch: Custom CSS targeting v1 banner HTML selectors breaks on v2 migration. If clients have branded banners with custom CSS, the migration may produce an unstyled banner, a hidden banner (CSS conflicts), or a non-rendering banner — all of which mean the visitor sees no consent mechanism at all. Check every client's banner after migration.
The three banner types and which creates CIPA exposure
The Notification banner type is the default for accounts migrating from v1. The Opt-out type is what most US agencies choose because it's framed as the "CCPA" option. Neither satisfies CIPA's prior-consent standard. Audit every client's HubSpot banner type this week. Go to Settings → Privacy & Consent → Cookies and confirm which type is selected. If it's Notification or Opt-out, California-resident CIPA exposure is open.
The third-party script gap HubSpot's banner doesn't address
Even when HubSpot's native banner is correctly configured as Opt-in, there is a critical limitation most agencies don't discover until they test: HubSpot's built-in banner only controls HubSpot's own cookies. Third-party scripts loaded outside HubSpot — Meta Pixel, Google Analytics, LinkedIn Insight Tag, Hotjar, TikTok Pixel — are not blocked by the HubSpot consent banner regardless of configuration.
On a typical HubSpot marketing site, the tracking stack looks like this:
| Tool | How installed on HubSpot sites | HubSpot banner blocks it? | External CMP needed? |
|---|---|---|---|
| HubSpot tracking code (__hstc, hubspotutk, etc.) | Built into HubSpot platform — always present | Yes (Opt-in only) | Or use Opt-in type + HubSpot Consent API |
| Meta Pixel | Via HubSpot Marketing Hub ads integration OR custom HTML module OR GTM | No | Yes — must be separately gated |
| Google Analytics GA4 | Via HubSpot's native GA integration OR GTM OR custom HTML | No | Yes — must be separately gated |
| LinkedIn Insight Tag | Via HubSpot Ads tool OR custom HTML | No | Yes — must be separately gated |
| HubSpot Ads pixels (when using Ads tool) | Via HubSpot Ads integration — fires with HubSpot tracking code | Partially (if Opt-in + pixel ads setting on) | Verify pixel fires after consent only |
| HubSpot Forms (on external pages) | Via form embed script on non-HubSpot pages | No (external pages not covered by HS banner) | Yes — external CMP needed for non-HubSpot pages |
The practical implication: a site running HubSpot's Opt-in banner correctly — so HubSpot's own cookies are blocked until consent — still has every other tracking tool on the site firing before consent if those tools aren't separately gated through an external CMP or GTM consent configuration. The Opt-in banner is necessary but not sufficient for a CIPA-compliant HubSpot deployment with a multi-tool tracking stack.
HubSpot Ads pixels: a separate exposure layer
If a client uses HubSpot's Ads tool (Marketing Hub Professional or Enterprise) to manage Meta Pixel, Google Ads, or LinkedIn Insight Tag, those pixels are deployed through HubSpot's platform — not through the client's own tag manager. This creates a specific configuration challenge: the pixel fires as part of the HubSpot platform, and the consent configuration must be set inside HubSpot's Ads settings rather than in GTM.
HubSpot's documentation confirms: "if you're using the HubSpot ads tool to add a pixel to pages with the HubSpot tracking code, your consent banner will automatically display when the pixel fires on your pages. If you require visitors to opt into cookie tracking, the pixel will not be able to place any cookies until the visitor confirms their consent." This only works correctly when: (a) the banner is configured as Opt-in type, and (b) the specific ads pixel option in the banner settings is enabled. Both conditions must be met — having Opt-in type but not enabling the ads pixel setting, or vice versa, leaves a gap.
HubSpot forms and real-time data transmission
HubSpot forms create a specific CIPA exposure pathway that's separate from cookie tracking: form field inputs are transmitted to HubSpot's servers in real time as visitors type. When a visitor starts typing their name into a HubSpot form — even before submitting — that keystroke data can flow to HubSpot's infrastructure via the form's JavaScript. This is the exact "real-time transmission of communication contents to a third party before consent" pattern that CIPA § 631 wiretapping claims are built on.
The demand letter pattern documented in the Vivek Shah analysis (Jeffer Mangels, April 2026) specifically targets this: the plaintiff types into a form or search bar on the defendant's site, watches the network tab, observes real-time transmissions to HubSpot (or Google, or Meta), and attaches the screenshot as evidence of interception "in transit" without prior consent. HubSpot forms embedded on pages where the HubSpot tracking code fires before consent are in this exposure pattern.
A HubSpot form on a page where the HubSpot tracking code fires before consent, with no prior-consent banner blocking either the tracking code or the form script, is the specific fact pattern that CIPA demand letters targeting HubSpot deployments are based on. HubSpot's tracking code + HubSpot form + California visitor typing + no prior consent = the complete CIPA § 631 aiding-and-abetting pleading. Fix the consent gate on the tracking code; consider whether form scripts need separate gating.
How to fix it: the three-path approach
There are three viable approaches to achieving CIPA-defensible consent on a HubSpot site, each with different effort levels and coverage scope:
Path 1: HubSpot native Opt-in banner (limited coverage)
What it covers: HubSpot's own cookies (__hstc, hubspotutk, __hssc, __hssrc). If Ads pixel setting is also enabled, the HubSpot-deployed pixel. Nothing else.
How to configure: Settings → Privacy & Consent → Cookies → Banner Type: Opt-in. Enable "Prevent HubSpot cookies from loading without visitor consent." Enable the Ads pixel option if using the HubSpot Ads tool.
When it's enough: Only if the site's entire tracking stack consists of HubSpot's own tools with no external analytics, advertising pixels, or third-party scripts. Rare for any marketing-active client.
Critical limitation: Does not block Meta Pixel, Google Analytics, LinkedIn Insight Tag, or any other tracking tool not managed through HubSpot's native platform.
Path 2: HubSpot Consent API + external CMP (recommended for multi-tool stacks)
What it covers: Everything — HubSpot's own cookies controlled through the Consent API, all third-party scripts controlled through the external CMP's consent gating.
How to configure: Disable HubSpot's native banner (window.disableHubSpotCookieBanner = true in the page head). Implement your external CMP (ConsentPixel or similar) to block all scripts before consent. Wire the CMP's consent events to HubSpot's Consent API using window._hsp.push(["setHubSpotConsent", {...}]) so HubSpot respects the CMP's consent choices. External CMP also gates all non-HubSpot scripts through GTM consent mode.
Why it's recommended: Single consent mechanism controls everything — HubSpot cookies and all third-party tools — creating one consistent prior-consent gate with unified records. The CMP's consent logs cover the entire stack, not just HubSpot's portion.
Path 3: GTM-only approach (for sites using GTM over HubSpot native)
What it covers: All scripts managed through GTM, including the HubSpot tracking code if loaded via GTM rather than natively. Does not cover HubSpot cookies placed by HubSpot-native page builder or CMS features.
Limitation: HubSpot websites built with HubSpot CMS often load HubSpot tracking code at the platform level, not through GTM. GTM consent mode won't block platform-level HubSpot cookies even if configured correctly. Must confirm whether the client's HubSpot tracking code loads through GTM or natively.
Per-client HubSpot compliance checklist
HubSpot CIPA Compliance Checklist
Per-client · run for every HubSpot deployment in your portfolio · not legal advice
Audit — What's actually firing?
js.hs-analytics.net, js-eu1.hsforms.net, and track.hubspot.com. Any requests before consent interaction = exposed.Additional code snippets settings. All are outside HubSpot banner scope.Configuration
Forms and search
Records
The bottom line
HubSpot's CIPA exposure is real, specific, and in active demand letters right now. The tracking code fires on page load by default. The native banner — even post-v2 migration — is a notification tool in its default configuration, not a consent gate. HubSpot is explicitly named alongside Google and Meta as a third-party recipient in § 631 demand letters targeting sites where search bar or form inputs transmit to HubSpot without prior consent. The fix requires three aligned changes: switch the HubSpot banner to Opt-in type (or implement an external CMP via the Consent API), separately gate every non-HubSpot tracking script running on the site, and verify that no HubSpot cookies or form script transmissions reach HubSpot's servers before a consent interaction is recorded. The v1→v2 migration doesn't automatically fix any of this — it updates the banner's capabilities, but the agency must actively configure them correctly. For agencies managing HubSpot sites at scale, this is portfolio-wide audit work that needs to happen now. This is informational, not legal advice; consult qualified counsel for specific situations.
See whether HubSpot fires before consent on client sites
ConsentPixel — Privacy · Verified scans any site and shows exactly when HubSpot tracking and every other script fires relative to consent. Free, no card required.
Scan a client site freeFrequently asked questions
Is HubSpot named in CIPA demand letters?
Yes. HubSpot is explicitly named alongside Google and Meta/Facebook as a named third-party recipient in active CIPA § 631 demand letters. The specific pattern documented in Jeffer Mangels' April 2026 analysis of Vivek Shah demand letters: the plaintiff types into a website's search bar or form, observes in the browser's network tab that inputs are transmitted in real time to HubSpot's analytics endpoints, and claims the website owner aided and conspired with HubSpot in intercepting the communication in transit without prior consent. Any HubSpot deployment where the tracking code fires before consent and visitors interact with search bars or forms is in this exposure pattern.
Does HubSpot's native consent banner satisfy CIPA requirements?
Only if configured as the Opt-in banner type — and even then, only for HubSpot's own cookies. HubSpot's native "Notification" banner type (the default for accounts migrating from v1) fires cookies on page load before any visitor interaction and is a notification tool, not a consent gate. HubSpot's "Opt-out" banner type also fires cookies by default. Only the "Opt-in" type blocks HubSpot's own non-essential cookies until consent is given. But the Opt-in banner does not block third-party scripts (Meta Pixel, Google Analytics, LinkedIn Insight Tag) loaded outside HubSpot's native platform. Not legal advice.
What changed in HubSpot's v1 to v2 banner migration?
HubSpot began automatically migrating accounts from v1 to v2 banner on May 11, 2026. V2 adds GPC support, updated design, domain-grouped banner management, opt-out banner type, and expanded customization. What v2 doesn't change: the fundamental architecture — HubSpot tracking code still loads on page load, and the "Notification" banner type still fires cookies before consent. The migration updates the banner's capabilities but doesn't retroactively fix a default-fire deployment. Agencies must actively configure v2 banner settings to the Opt-in type for CIPA compliance. Custom CSS targeting v1 selectors may break during migration — verify every client's banner renders correctly post-migration.
How do I block the HubSpot tracking code before consent using an external CMP?
The recommended approach: disable HubSpot's native banner by adding window.disableHubSpotCookieBanner = true to the page head before the HubSpot tracking code. Implement your external CMP to block the HubSpot tracking script from loading until consent is granted. Wire your CMP's consent events to HubSpot's Consent API using window._hsp.push(["setHubSpotConsent", {analytics: true, advertisement: true, functionality: true}]) when relevant consent categories are granted. This gives HubSpot's own system the consent signal it needs while your CMP enforces the actual blocking. The external CMP also gates all non-HubSpot scripts through the same mechanism.
Do HubSpot forms create CIPA exposure on their own?
Potentially yes. HubSpot form scripts can transmit field inputs to HubSpot's servers in real time as visitors type — before the visitor clicks Submit. On a page where the HubSpot tracking code fires before consent, form field keystroke data flowing to HubSpot before any consent choice is the specific pattern that § 631 aiding-and-abetting demand letters document: real-time transmission of communication "contents" to a third party without prior consent. The fix is the same as for the tracking code — gate everything before consent through an Opt-in banner or external CMP. Not legal advice.