Feature referenceSites and chat behavior · 02 of 05

Sites and chat behavior

Widget installation

Widget installation places a Site-specific deferred script on the published website. The snippet loads Stand, identifies the Site through `data-stand-id`, and lets the backend confirm that the expected domain has requested availability.

Availability
All plans
Configured in
Dashboard → Sites → select a Site → Installation snippet
Category
Sites and chat behavior
Reference status
Current

Before you begin

Plan availability: All plans.

Prerequisite: Permission to change and publish the website HTML, template, tag manager, or equivalent script-injection surface.

Key boundary: Installed status proves that Stand observed the Site identifier from a matching page; it does not prove that a responder is currently eligible or that every page variant includes the snippet.

01

Install the Site snippet

Representative installation shape
<script defer src="https://cdn.stand.chat/widget/stand.js" data-stand-id="YOUR-SITE-ID"></script>

Copy the generated snippet for the actual Site. Do not reuse this placeholder or another Site’s ID.

  • Open the Site, expand Installation snippet, and copy the generated script without changing its Site identifier.
  • Add the generated deferred script once through the website’s shared page template, code, tag manager, or builder custom-code area. The document head is suitable; placing it before the closing </body> tag also works.
  • Publish the change to the real visitor-facing domain; a saved draft or local preview does not verify production installation.
  • Visit the published page so the widget performs its Site lookup, then return to Sites and confirm Installed status.
02

Pending and installed status

StatusMeaning
PendingStand has not yet recorded a valid availability request for this Site from its matching domain.
InstalledStand received a valid domain-matched availability request. The standard snippet or a custom visitor API client can create this observation; it does not prove that the script is present on every current page.
Installed but no chatInstallation has been observed, but current page code, Site enablement, responder eligibility, behavior rules, or organization capacity can still prevent a conversation.
03

Domain and Site-ID matching

  • The data-stand-id selects one Site record and its configuration.
  • The page domain must normalize to the Site’s saved domain. Preview and staging hostnames need their own matching configuration when they should run Stand.
  • Protocol, path, and a leading www. are removed for the Site-domain comparison.
  • Path-specific behavior and Stand-in specialization are evaluated only after the Site and domain match succeeds.
04

Missing Site ID and demo mode

A page that loads stand.js without a Site ID runs in demo mode instead of showing no chat. Stand Chat’s demo Stand-in answers on any domain. It identifies itself as Stand Chat’s demo assistant, not as the website, explains that the snippet has no Site ID, and describes how to get one.

Developers can set data-stand-id="demo" to choose demo mode explicitly and try client-side integration code before registering: openChat with a greeting, visitor message, or private prompt; identify; stand-button; stand-card; and stand-chatbox.

Explicit demo mode
<script defer src="https://cdn.stand.chat/widget/stand.js" data-stand-id="demo"></script>

Replace demo with your Site ID so your own reps and Stand-ins answer on your website.

Configured Site IDResult
Missing or empty in window.StandChatConfig.siteId, data-stand-id, and data-stand-site-idDemo mode on any page domain, plus an informational browser console message.
demoDemo mode on any page domain, chosen explicitly.
Any other valueNormal Site lookup. An unknown, mistyped, deleted, or disabled Site, or a page whose domain does not match, shows no chat and never falls back to demo mode.
  • Only the demo Stand-in answers. Demo chats are not routed to human reps, so show-when="rep" entry points stay hidden, and demo chats show the Powered by Stand footer.
  • Configuration saved in Stand cannot be tried in demo mode: behavior rules, site instructions, configured greetings, knowledge bases, skills, integrations, branding, and your own reps and Stand-ins require your own Site.
  • Demo conversations, including private page context and page-known identity sent with them, are handled by Stand Chat. They do not appear in any customer’s Chats or History and do not use a customer’s chat quota.
  • When a page switches between demo mode and a real Site ID, a chat saved in the visitor’s browser from the other mode is discarded instead of restored.
05

If the widget does not become available

  • If the chat introduces itself as Stand Chat’s demo assistant, the published script has no Site ID or uses demo. Replace it with the Site’s generated snippet.
  • Confirm the copied snippet was published in the active template or tag-manager container, not only saved as a draft.
  • Inspect whether cache or CDN output still serves the previous page.
  • Confirm the page hostname matches the Site rather than a preview or alternate domain.
  • Check that the Site is enabled and Chat widget status lists an eligible rep or Stand-in.
  • Review Chat widget behavior for a delayed, scroll-based, manual, or suppressed reveal, and check whether the page hides the launcher with data-stand-hide-button or StandChat.initiallyHideChatButton(), before assuming installation failed.
06

Security and lifecycle boundaries

  • The public Site identifier selects configuration but is not a customer secret or rep authentication credential.
  • The stable snippet does not need to change when owners edit runtime Site behavior.
  • Removing the snippet stops future page loads from initializing Stand but does not delete the Site record or prior conversations.
  • Installing the snippet does not give Stand permission to bypass the website’s own authentication or read private backend data.