Intercom — consent fix
Intercom live chat widget loads on page visit and sets tracking cookies (intercom-id, 9 months) before consent. Intercom also sends visitor data (page visits, user-agent) to Intercom servers.
Domains
intercom.iowidget.intercom.iojs.intercomcdn.comapi-iam.intercom.io
Cookies
Intercom's live chat widget loads on every page visit and immediately sets intercom-id-* cookies that remain valid for up to 9 months. It also automatically sends visitor data (such as visited pages and browser details) to Intercom's servers. Although live chat is often seen as a 'functional' addition, the long lifespan of the cookies and the tracking functionality mean that under strict GDPR interpretations, you need explicit consent before you can load Intercom.
Why Intercom loads too early
Intercom is often pasted directly as JavaScript code into the source code (<head> or right before the </body>) of a website. This script does not check on its own whether consent has already been given via your cookie banner. As a result, the widget always starts immediately upon page load.
The Fix: Only load Intercom after consent
To make Intercom GDPR-compliant, we need to move the script to Google Tag Manager (GTM) and only activate it when the visitor has agreed to functional cookies (functionality_storage).
1. Move the code to GTM
Is the code hardcoded on your website? Then remove it from the source code first. If you leave the code there, it is nearly impossible to reliably block it from loading.
2. Create a Custom HTML Tag
- Go to your GTM workspace and click New to add a tag.
- Name the tag, for example, "Intercom Chat Widget".
- Choose the tag type Custom HTML.
- Paste your full Intercom script into the empty field.
3. Set the correct consent
Tell GTM that this tag must wait for consent.
- Below your pasted code, expand the Advanced Settings.
- Scroll to Consent Settings.
- Select Require additional consent for tag to fire.
- Enter:
functionality_storage(or the specific category your CMP uses for this).
4. Add the correct Trigger
- Scroll down to the Triggering section.
- Add a trigger that listens for the moment the page is loaded AND consent is present (for example, a Custom Event trigger from your CMP).
Optional advanced method (Consent API): Intercom also supports an API command Intercom('shutdown') to hide the chat, but this does not prevent the initial loading of the script. Managing the script in GTM is the safest method.
How to Verify the Fix
Use your browser's Network tab to see if Intercom actually stops.
- Open your website in an incognito window.
- Ignore the cookie banner (do not click anything).
- Open Developer Tools (F12) and navigate to the Network tab.
- Search for
intercom. There must be no calls towidget.intercom.ioorapi-iam.intercom.iovisible.
Not sure if the fix worked, or want to verify that no other scripts are leaking data? Run a free scan with ConsentChecker.eu for instant confirmation.
Sources
No CMP yet?
A Cookie Management Platform (CMP) handles consent automatically for Intercom and other trackers — including the correct GTM integration.
Check your own site
Scan your website for free to see if Intercom (or other trackers) loads before consent.
Start free scan →