HEA runs in an iframe, often cross-origin. To respect your users’ choices, the host page publishes a vendor-agnostic consent signal to HEA. This guide explains how it works and how to integrate with common CMPs.
| Always allowed | Essential rendering of the widget, security protections, and basic functionality. The chat can run without optional storage. |
|---|---|
| Optional storage | Persisting chat history, UI preferences and convenience features on the user’s device (local/session storage) may require consent depending on jurisdiction & your policy. |
| Analytics / marketing | If your HEA deployment uses analytics tags or marketing pixels, those should follow your CMP. (HEA does not force third-party trackers.) |
This is the contract HEA relies on. The host page owns CMP; HEA consumes a stable signal.
Cookiebot / CMP vendor
↓
/public/CMP_connectors/hea_consent_*.js (host page)
↓ window.dispatchEvent('hea:consent', {detail})
hea_embed.js / hea_askbar_embed.js (host)
↓ postMessage('HEA_CONSENT_UPDATE', detail)
iframe (widget / simple / askbar)
↓
hea_consent.js ← SINGLE SOURCE OF TRUTH
↓
hea_cookies_data_controller.js
{
necessary: true,
preferences: boolean,
analytics: boolean,
marketing: boolean,
source: "cookiebot" | "generic" | ...,
ts: number
}
Use when you already have a CMP. Add the connector before the HEA widget snippet.
Use for ultra-strict deployments or testing. HEA will avoid optional persistence on the device.
The full cookie declaration can be long. We keep it here for transparency.
If you use a CMP that isn’t supported yet, start with the generic template and tell us which vendor you use. We’ll provide a connector or a mapping snippet.