When the HubSpot chat widget doesn't show on your website, start by checking whether the HubSpot tracking code is loading on that page. On a site HubSpot doesn't host, the widget can't appear without it. After that, look for a chatflow that's switched off, or targeting rules that don't match the page URL the widget reports.
The first thing to check is whether HubSpot's scripts load. Open the page in a private window, open your browser's developer tools, and search the Network tab for conversations-embed.js. If it isn't there, check that at least one chatflow is turned on, because HubSpot only loads that script when one is. Then check the tracking code. If it loads and you still see no widget, check that visitor.js loads too, then look at the chatflow's targeting and availability, your site's CSS and any chat widget SDK code.
Why the HubSpot chat widget isn't appearing
The tracking code is missing or blocked
The tracking code is under Tracking & Analytics, then Tracking Code, in your settings. Check the snippet was pasted exactly as HubSpot gives it, and if you use a tag manager, that the tag actually fires on the page you're testing. In the page source the script should carry the id hs-script-loader. HubSpot uses that id to avoid loading itself twice, so another element on your site with the same id can stop it loading. See tracking code not working for the wider checks.
Look in the browser console too. A Content Security Policy that doesn't allow HubSpot's domains shows errors there, and a cookie consent tool or script blocker can hold HubSpot's scripts back until the visitor accepts cookies. Custom CSS that targets #hubspot-messages-iframe-container can hide a widget that loaded fine (HubSpot's chat widget troubleshooting article).
The chatflow is off, or another one wins
A chatflow that's switched off shows nowhere. In the chatflows list, check the Status switch. If two chatflows target the same page, HubSpot shows the one with higher priority. A visitor who already started a chat keeps that thread as they move to other pages, so a second chatflow won't replace it.
The targeting rules don't match the URL
Open the chatflow's Target tab and compare each rule with the real address. A rule that says the website contains www.example.com doesn't cover blog.example.com, while a rule on example.com covers both. Then read the exclusion rules. A page that matches one of them won't show the chatflow.
To see the exact URL the widget sends, filter the Network tab for a request containing "messages" or "conversations" and read its X-Hubspot-Messages-Uri header. If your site runs behind a reverse proxy, that header has to survive the proxy. On a single-page app the URL changes without a page load, so HubSpot can't see the new page. A developer needs to call widget.refresh from the chat widget SDK on each route change.
Visitor targeting needs a tracking cookie
Rules based on visitor information, such as list membership or a CTA click, only work when HubSpot knows who the visitor is. That link between a browser cookie and a contact is made when the person submits a HubSpot form or clicks through from a HubSpot marketing email. Contacts you imported, added by hand or created from a logged sales email don't have it yet. They also lose it in a new browser, a private window, on a phone, or after clearing cookies.
Availability settings hide the launcher
The chat channel's Availability tab decides what happens when your team is away or outside working hours, and one of the options hides the chat launcher. If availability is based on users and the away behavior hides the launcher, the widget disappears whenever nobody in the assignment rules is Available. On Service Hub Enterprise there's also a setting for when every agent is at full capacity, and that can hide the launcher too (ticket capacity limits).
Site code delays or removes the widget
Developers can configure the widget before it loads. With loadImmediately set to false it waits until widget.load is called, and widget.remove takes it off the page. Type window.HubSpotConversations.widget.status() in the browser console. If it reports loaded as false, search your site's code for those calls.
How to find and fix the missing widget
- Open the page in a private window with ad and script blockers off. If the widget appears there, clear your normal browser's cache and cookies.
- Check the page source for
hs-script-loaderand the Network tab forconversations-embed.js. Ifhs-script-loaderis missing, fix the tracking code. If onlyconversations-embed.jsis missing, make sure a chatflow is on and give the cache time to update. - Read the console for Content Security Policy errors and check your consent tool's settings for HubSpot.
- Confirm the chatflow is on, then compare its Target tab with the URL in the
X-Hubspot-Messages-Uriheader. - Remove visitor-based rules for a moment and test again. If the widget appears, the cookie is the issue.
- Open the chat channel's Availability tab and check what visitors see when the team is away, at capacity and outside working hours.
- If you turned on your first chatflow minutes ago, wait and reload. HubSpot notes the updated tracking code can be cached for a while.
If the widget shows but the AI agent inside it doesn't reply, that's a separate problem, covered in customer agent not answering.
How to stop it happening again
Use a root-domain targeting rule unless a chatflow really belongs to one subdomain, and write down which chatflow should own each section of the site. When a developer adds a consent tool, a security policy or a new theme, test the chat on a few pages before it goes live. To test a new chatflow without showing it to everyone, target a URL with a query parameter such as ?test_chat=true.
If you'd rather have someone set up chat and the help desk behind it, I can do that for you.
Questions
Why does the chat show for me but not for a customer?
Usually the chatflow targets known contacts and the customer's browser has no HubSpot cookie linked to their record. Consent tools and browser extensions on their side can block it too.
Can I hide the chat on mobile?
Yes. Add an exclusion rule on the Target tab for visitors on a mobile device.
Why doesn't the welcome message pop open any more?
If a visitor minimized a chatflow, HubSpot respects that for 24 hours across pages and chatflows, through the hs-messages-hide-welcome-message cookie.
Is live chat available on free HubSpot?
Live chat is available on all plans as of October 2026, but some settings need more. A chat channel in the help desk needs Service Hub Professional or Enterprise, and the full-capacity setting needs Enterprise (chat channels in help desk).
Did this fix it?
Good to hear. If something else in the portal looks off, the help centre has more fixes.
Some problems need someone to look inside the portal. Book a free 30-minute call and show me what's happening. If it needs work, you get a written scope and one fixed price.