How to Tell If a Website Uses Intercom
Intercom is a leading customer messaging and support platform. Detect it via the widget.intercom.io and js.intercomcdn.com scripts, the window.Intercom object, intercomSettings and the app_id.
Intercom is one of the most recognisable customer messaging and support platforms, the chat bubble in the corner of countless SaaS products and websites. To tell whether a site uses it, the quickest answer is to type Intercom into the console — it defines a global function by that name — or to look for the Messenger loading from widget.intercom.io. This guide walks through every reliable signal, the Messenger architecture behind them, and what an Intercom install tells you about the business.
What is Intercom?
Intercom, founded in 2011, pioneered the modern in-app messenger and grew into a broad customer-communication platform spanning live chat and support, a help centre and knowledge base, product tours and onboarding, outbound messages, and increasingly AI support agents. Its defining surface is the Messenger — the launcher bubble and chat panel that lets visitors and logged-in users start conversations, browse help articles and receive proactive messages. Intercom is strongly associated with SaaS and product-led businesses, which use it both for support and for engagement and onboarding inside the product.
For detection, the key context is that Intercom is a premium, product-oriented tool, not a generic widget. Its presence signals a business with a real product and a customer-success or support function that invests in conversational engagement. Because the Messenger is loaded by a consistent boot snippet from Intercom-owned domains, the install leaves a clear, reliable footprint regardless of the surrounding site.
How Intercom loads and runs
An Intercom install begins with a boot snippet that defines window.intercomSettings (carrying the app_id and any user attributes) and a global window.Intercom function used to control the Messenger (Intercom('boot', ...), Intercom('show'), Intercom('update')). The snippet loads the Messenger from widget.intercom.io and its assets from js.intercomcdn.com (with uploads on uploads.intercomcdn.com). Once running, the Messenger renders the launcher bubble and communicates with Intercom's backend at api-iam.intercom.io over HTTP and websockets, and it sets intercom-prefixed cookies and local storage to maintain the conversation and visitor identity.
The app_id in intercomSettings is the public identifier of the Intercom workspace — it is how the Messenger knows which account to connect to — so capturing it confirms not just that Intercom is present but which workspace owns it. Knowing this flow — the boot snippet, intercomSettings with an app_id, the window.Intercom function, the widget.intercom.io/js.intercomcdn.com assets, and api-iam.intercom.io traffic — makes detection straightforward.
How to tell if a website uses Intercom
Confirm at least one strong signal (the global usually suffices).
1. Use the console. Type Intercom and press Enter. A returned function confirms the Messenger is loaded. Typing intercomSettings returns the configuration, including the app_id.
2. Check the Network tab. Filter for intercom. You will see the Messenger load from widget.intercom.io and assets from js.intercomcdn.com, plus calls to api-iam.intercom.io.
3. View the source. Search for intercom. The boot snippet, intercomSettings, and the app_id are usually visible.
4. Look for the launcher. The Intercom Messenger bubble (often bottom-right) is the visible front end; opening it shows Intercom's recognisable chat and help-centre UI.
5. Read the app_id. The app_id in intercomSettings identifies the workspace behind the site.
What the Intercom signals look like
window.intercomSettings = { app_id: "ab12cd34", name: "...", email: "..." };
window.Intercom = function() { ... } // Intercom('boot', {...})
GET https://widget.intercom.io/widget/ab12cd34
GET https://js.intercomcdn.com/...js
WS wss://nexus-websocket-a.intercom.io/... ; POST https://api-iam.intercom.io/...
The combination of the window.Intercom function, intercomSettings with an app_id, and the widget.intercom.io/js.intercomcdn.com assets is conclusive.
Intercom versus other chat tools — avoiding false positives
Match the host to keep messaging tools distinct. Intercom uses intercom.io/intercomcdn.com and the Intercom global; Drift uses js.driftt.com and window.drift; Zendesk uses static.zdassets.com and window.zE; Tidio uses code.tidio.co and tidioChatApi; Crisp uses client.crisp.chat and $crisp. Each leaves a distinct fingerprint. The visible chat bubble alone does not identify the vendor — many tools look similar — so always confirm with the host or global. The main subtlety is that Intercom can be loaded for logged-in users only (booted after authentication), so on a public marketing page the Messenger may appear without user data, or only after login; check both states if needed.
How reliable is each Intercom signal?
The window.Intercom function and intercomSettings with an app_id are definitive. The widget.intercom.io/js.intercomcdn.com assets and api-iam.intercom.io traffic are equally conclusive. The launcher bubble is suggestive but should be confirmed with a host or global, since chat bubbles look alike across vendors. The weakest situation is a site that boots Intercom only for authenticated users, so a public page might not show it — check a logged-in state if you have access. As a rule, the Intercom global or the widget.intercom.io load settles it, and the app_id makes the finding workspace-specific.
What an Intercom install reveals about a business
Finding Intercom is a strong signal of a SaaS or product-led business that invests in conversational support and engagement. Because Intercom is premium and product-oriented, its presence implies a real product, a customer-success or support team, and a deliberate choice to engage users in-app — onboarding, proactive messages, support conversations. The Intercom features in evidence refine the read: a help centre indicates self-serve support, product tours indicate onboarding investment, and AI-agent features indicate a modern support strategy. If you sell SaaS tooling, customer-success or support products, or services aimed at product-led companies, an Intercom install marks an ideal-fit, well-resourced account. It also tells you the business values customer communication enough to pay for a premium platform, which raises its qualification.
What finding Intercom means for sales, agencies and competitive research
For sales and prospecting, Intercom marks a product-led SaaS business with budget and a customer-engagement focus — a fit for tools that complement or integrate with support and onboarding (analytics, CRM, AI support, knowledge management). The features in use hint at where the company is investing.
For agencies and consultants, finding Intercom tells you the client values in-app engagement, so engagements can focus on onboarding flows, support deflection, conversational marketing, or integrating Intercom with the wider stack. It signals a sophisticated, product-minded client.
For competitive and market research, Intercom adoption indicates how product-led and support-mature a company is. Spotting a competitor on Intercom (versus a basic widget or none) tells you they invest in conversational support and onboarding, useful when benchmarking customer experience.
Intercom in the wider product stack
Intercom typically sits within a product-led SaaS stack. Expect a modern web app and marketing site, product analytics (Amplitude, Mixpanel or Heap), a CRM, and often a CDP feeding customer data into Intercom for targeting. Intercom may be the only support tool, or it may complement a separate help desk for ticketing. Its outbound and product-tour features can overlap with onboarding and marketing tools, so finding it should prompt you to check what else handles engagement. For an auditor, the valuable details are the app_id, which Intercom features are visible (help centre, tours, AI agent), and the surrounding analytics and CRM tools; together these reveal a product-led business and the maturity of its customer-communication strategy.
A quick Intercom confirmation walkthrough
Open the site with developer tools on the Console panel and type Intercom — a returned function confirms the Messenger. Type intercomSettings to read the app_id. Switch to the Network tab, filter for intercom, and confirm the load from widget.intercom.io and js.intercomcdn.com plus api-iam.intercom.io traffic. Look for the launcher bubble and open it to see Intercom's UI. If the Messenger does not appear on the public site, check a logged-in state, since Intercom is often booted for authenticated users. The Intercom global is enough to confirm and the app_id identifies the workspace.
A quick Intercom detection checklist
- Type
Intercomin the console; a returned function is conclusive. - Read
intercomSettingsfor theapp_id. - Filter the Network tab for
intercom;widget.intercom.io/js.intercomcdn.comconfirm it. - Look for
api-iam.intercom.iotraffic and intercom-prefixed cookies. - Confirm the vendor via host/global, not the chat bubble's appearance.
- Check a logged-in state if the Messenger is boot-gated to authenticated users.
Detecting Intercom at scale
Checking one site is quick, but finding every Intercom user across a list — to prospect product-led SaaS — calls for automation. StackOptic detects Intercom and thousands of other technologies from a real browser, capturing the Messenger and the surrounding product stack. Because Intercom so reliably marks a product-led, well-resourced SaaS business, a scan that flags it across a market segment is an efficient way to build a list of exactly that profile, and pairing it with the product-analytics and CRM tools each company runs lets you size and prioritise accounts before you ever reach out. For related reading, see our guide to detecting chat and live-chat tools on a website and the full Intercom technology profile.
Frequently asked questions
What is the fastest way to tell if a site uses Intercom?
Type Intercom in the browser console. Intercom defines a global window.Intercom function; a returned function confirms it instantly. You can also open the Network tab and filter for 'intercom' to see the Messenger load from widget.intercom.io and js.intercomcdn.com.
What is intercomSettings?
intercomSettings (window.intercomSettings) is the configuration object Intercom's boot snippet defines, containing the app_id and any user attributes passed to the Messenger. Finding intercomSettings with an app_id confirms Intercom and identifies the specific workspace.
What domains does Intercom use?
Intercom's Messenger loads from widget.intercom.io and js.intercomcdn.com, and the app communicates with api-iam.intercom.io (and uploads to uploads.intercomcdn.com). Requests to these intercom.io / intercomcdn.com hosts confirm a live Intercom install.
What is the Intercom app_id?
The app_id is the public identifier of an Intercom workspace, passed in intercomSettings and in the boot call. It is not secret — it tells the Messenger which workspace to connect to — so finding it confirms Intercom and identifies the account behind the site.
What does it mean if a site uses Intercom?
Intercom is a customer-messaging and support platform built for in-app engagement, onboarding and support. Finding it signals a SaaS or product-led business that invests in conversational support and customer engagement, typically with a real product and a customer-success or support function.
Analyse any website with StackOptic
Get the full technology stack, performance, security and SEO report in seconds — free.
Analyse a websiteRelated articles
How to Tell If a Website Uses Heap
Heap (Heap Analytics) autocaptures product events. Detect it via the cdn.heapanalytics.com script, the global heap object, heapanalytics.com beacons and _hp2 cookies.
How to Tell If a Website Uses Foundation
Foundation (by Zurb) is a responsive front-end framework. Detect it via its grid classes (row/columns, grid-x/cell), data-* component attributes and the foundation.css/js files.
How to Tell If a Website Uses Crisp
Crisp is a developer-friendly, affordable live-chat and messaging tool. Detect it via the client.crisp.chat/l.js script, the window.$crisp object and the CRISP_WEBSITE_ID value.