Skip to content

Configure Chat locations, coverage, and widgets

Reviewed by Customer Help Product Support on July 23, 2026. Verified for release 2026.07.

Use Chat Settings to choose which locations offer Chat, set human coverage hours, and customize and install each brand’s customer-facing widget.

  • Chat must be available for the business. If the Chat area is unavailable, contact support to confirm Chat availability.
  • The business needs a saved brand and at least one active, billable location.
  • Billing must show Active or Trial. After changing a location, wait for its status to confirm the change.
  • Each Chat location should have a confirmed city or region time zone, such as America/Chicago, before scheduled coverage is saved.

Chat locations selects the active, billable locations where Chat should be available. Select the intended rows and Save changes. Chat is available at a location when its row reports Enabled.

A row can show:

Status Meaning
Enabled Chat is on for the location.
Pending The change is waiting for billing confirmation.
Retry needed The change could not be confirmed. The previous setting remains in use.
Off Chat is off for the location.

A checkbox is disabled when the location is inactive, is not billable, or the main subscription is not active. Chat costs the displayed price for each enabled location. Disabling Chat may create a prorated billing adjustment; it does not delete conversation history.

Availability mode controls when the expanded location offers human service:

  • Always available — humans are considered available at all times, subject to actual agent presence and capacity.
  • Weekly schedule — coverage uses the enabled day windows in the location’s saved time zone.
  • Unavailable — live human coverage is never offered; the widget follows its offline behavior.

For a weekly schedule:

  1. Day enabled includes that weekday in human coverage. A disabled day remains outside human coverage even when time inputs contain old values.
  2. Open time starts a coverage window in the location’s local time. Up to four windows can represent split shifts.
  3. Close time ends the window and must be later than Open. Windows must be ordered and non-overlapping. Overnight windows are unsupported; split them across two calendar days.
  4. Select Save and confirm. A missing time zone disables that action—fix it in Locations.

Copy coverage to copies the saved weekly schedule to another location. Confirm the destination’s time zone: copying 09:00–17:00 sets 9 a.m.–5 p.m. in the destination’s local time.

If a widget still shows an older brand-level schedule, keep it accurate until you have confirmed a time zone and coverage schedule for every Chat location.

Each brand has a public widget ID that stays the same when you edit its name, path, or theme. Preview opens the experience without publishing a change. Copy code copies the installation snippet. Edit opens six settings tabs. Changes update the preview immediately but do not reach customers until Save Chat Widget succeeds. If another Administrator saved first, reload the latest settings and reapply your edits.

Copy is authored separately for each enabled business language. A blank secondary-language field falls back to authored primary-language copy; Customer Help does not invent a translation.

Field Limit and effect
Chat header Up to 80 characters; the title at the top of the panel. Keep it recognizable at every location.
Welcome headline Up to 100 characters; the main prompt before a conversation starts. State what help is available.
Greeting Up to 240 characters; the introductory customer message. Do not imply that a human is online outside coverage.
Online message Up to 60 characters; the availability label during human coverage.
Offline status Up to 80 characters; a compact status shown outside human coverage.
Unavailable headline Up to 100 characters; the heading of the offline panel.
Unavailable message Up to 240 characters; directs visitors to alternatives. Do not promise a response time the team cannot meet.
Message placeholder Up to 100 characters; the hint inside the composer. It disappears when the visitor starts typing.
Launcher label Up to 40 characters; text used by a pill-style launcher. Keep the localized action short.
Suggested questions One per line, up to 500 characters total and at most six questions. Selecting one starts a visitor message; it does not change AI behavior.
Privacy note Optional, up to 300 characters. Show a concise collection notice and link to fuller policy where needed.
Ask for a name Choose Do not ask, Optional, or Required before starting. Requiring it can reduce starts; collect only what the service needs.
Privacy policy link Optional absolute HTTPS URL to the business’s public policy. Test it without signing in.
Field Values and consequence
Launcher style Icon or Icon and label. The latter displays the launcher label and takes more page space.
Appearance launcher label Up to 40 characters. Keep the same localized intent as the Experience label and check that it fits the selected style.
Panel size Compact, Standard, or Spacious. Test small screens and zoom before choosing Spacious.
Header style Minimal, Solid color, or Gradient. Review logo and text contrast in the resulting header.
Launcher position Bottom right or bottom left. Check for overlap with cookie, accessibility, support, and navigation controls.
Color source Use brand colors follows the saved brand palette; Custom colors lets this widget use different values.
Primary color Hex color used for main actions and identity. Maintain readable text and focus contrast.
Accent color Hex emphasis color for interactive details. Do not rely on color alone to communicate state.
Background color Hex surface color behind widget content. Verify contrast with text, fields, and disabled controls.
Corner roundness Integer from 8 through 28 pixels applied to widget surfaces. Preview the extremes before saving.
Show the brand logo Uses the public logo already configured for the brand. A private or broken logo URL cannot render in the widget.
Show “Powered by Customer Help” On by default. Turning it off removes the footer attribution and has no billing effect.
Field Values and consequence
Concurrent chats per agent Integer 1–100; defaults to 3. This is the maximum number of active conversations assigned to one available agent.
Offline behavior Show contact options prevents message collection; Collect a message lets a visitor start a conversation outside human coverage. Review the offline text for the selected behavior.
Visitor transcripts Off or Visitor opt-in. Opt-in is off by default. A visitor can request one emailed transcript after the conversation closes.
Prompt an inactive visitor Never (the default), 5, 10, 15, 30, or 60 minutes. The clock starts after the latest agent or AI reply—not while the team or AI owes the visitor a response. A new agent or AI reply restarts it; a visitor message clears it.
Close if they do not confirm 1, 2, 5, 10, or 15 minutes after the prompt; defaults to 5. This field is disabled when prompting is Never. The durable deadline continues through page reloads, sleeping connections, and temporary network loss. Closure keeps the transcript under the normal retention policy.
Time zone for older schedules Appears only for widgets that still use an older brand-level schedule. Choose the correct city or region time zone, then set coverage for each location when ready.
  • Open Chat expands the launcher into the panel, clears its displayed unread count, and marks the latest visible conversation activity as read. It restores an available saved conversation instead of creating a new one.
  • Close Chat collapses the panel back to the launcher and stops the visitor’s typing indicator. It does not end, delete, or unassign the conversation; opening the panel again returns to the same available session.
  • Choose a location appears when the widget has more than one available location. The selection is required and sends the conversation to the team for that location; it does not change the visitor’s browser location or any business setting.
  • Your name follows the configured Ask for a name mode and accepts up to 80 characters. Optional may be left blank; Required must be completed before the chat starts. The name is saved with the conversation, so visitors should not enter private information.
  • Security verification is a one-time anti-spam check before a new conversation starts. Start Chat remains disabled until the check completes. If it expires or is rejected, complete it again. If it does not load, allow https://challenges.cloudflare.com in network and content filters, reload the widget, and retry once.
  • Visitor message accepts required text up to 4,000 characters. Enter sends; Shift+Enter adds a line. Wait for the delivery state before resending after a connection interruption.
  • Visitor attachment is available only when attachments are enabled. The same type and size rules apply to visitors and agents. Empty, oversized, and unsupported files are not accepted, even if their extension is changed.
  • Transcript email appears after closure only when Visitor opt-in is enabled. It requires a valid address of up to 254 characters. The request sends at most one automatic transcript for that conversation; verify the address before submitting because the form does not change the account or conversation owner.
  • Start chat / Leave a message validates the selected location, required name, and security check before creating the conversation. Leave a message follows the configured offline behavior; selecting the action does not promise an immediate human response.
  • Talk to an agent / Leave for an agent appears only when the active AI mode permits human support. It records a human request and moves the conversation toward the eligible team; it does not guarantee that an agent is immediately available. Do not press repeatedly while the first request is pending.
  • Email transcript submits the transcript address once. Wait for confirmation instead of repeating the request. If delivery cannot be confirmed, contact support with the conversation time, brand, and location.
  • Start a new chat leaves the closed conversation and returns to the start form. It does not delete the conversation history, and a new security check may be required.
  • Try again reloads Chat after a load error. Correct connection, allowed-origin, or content-blocking problems first; repeated retries do not fix an incorrect setting.
  • Send message is enabled only for nonblank text in an open conversation. Wait for the Delivered or Failed status before deciding whether to retry.
  • I’m still here appears only after the configured inactive-visitor interval. Selecting it confirms activity, hides the warning, and restarts the full prompt interval without adding a transcript message. Sending a regular visitor message has the same keep-open effect. If neither happens before the displayed grace period ends, Chat closes the conversation and offers a new chat.

While AI is thinking or streaming, Chat shows the AI typing state and does not replace it with a reconnect warning during brief socket changes. A reconnect warning means both live delivery and its short recovery window are unavailable; if a completed AI answer does not appear, keep the panel open, verify the network allows wss://widget.customer.help, and retry after connectivity returns.

Allow file attachments controls visitors and agents together. When off, neither side can add a new file, but previously retained conversation files are not deleted.

Maximum file size (MB) accepts an integer from 1 through 25 and defaults to 10. Accepted types are JPG/JPEG, PNG, PDF, HEIC, and WebP. Renaming a file does not change its type.

Most widgets manage coverage by location. A widget that still uses an older brand-level schedule may show these controls:

Older schedule control Effect
Use availability all hours Makes the widget available at every hour and ignores its day rows.
Day enabled Includes that weekday in the schedule. A disabled day has no coverage.
Start time Starts availability in the selected time zone.
End time Ends availability and must be later than Start. Split an overnight period across two days.

Keep these settings accurate while they are visible. Confirm every location’s time zone and set coverage by location when that option is available.

Allowed origin authorizes an external website to load this brand widget. Customer Help-managed pages are approved automatically. Enter the exact HTTPS origin, such as https://www.example.com, with scheme, hostname, and any nonstandard port, but no path, query, fragment, wildcard, sign-in information, or trailing content. https://example.com and https://www.example.com are different origins.

Install the copied snippet once, normally before </body>:

<script
async
src="https://widget.customer.help/v1/loader.js"
data-widget-id="chw_public_...">
</script>

If the external site sends a Content Security Policy (CSP), merge these sources into its existing policy. Do not replace the site’s other directives.

Directive on the site that installs Chat Required source Why it is needed
script-src https://widget.customer.help Loads /v1/loader.js. Keep the site’s existing sources, nonces, and hashes.
script-src-elem, when the policy defines it https://widget.customer.help A defined script-src-elem governs the loader <script> instead of script-src, so the widget host must also appear here.
frame-src https://widget.customer.help Displays the Chat panel. Add frame-src explicitly when a restrictive policy currently relies on child-src or default-src instead.

A minimal host-page example is:

Content-Security-Policy: default-src 'self'; script-src 'self' https://widget.customer.help; frame-src https://widget.customer.help

If the policy already defines script-src-elem, merge the same host into that directive as well:

script-src-elem 'self' https://widget.customer.help

For a nonce-based policy using 'strict-dynamic', place the site’s current per-response nonce on the copied loader element. Generate a new unpredictable nonce for every response; never paste the placeholder or reuse a fixed value:

<script
nonce="{{CURRENT_RESPONSE_NONCE}}"
async
src="https://widget.customer.help/v1/loader.js"
data-widget-id="chw_public_...">
</script>

The host page does not need to add Customer Help to connect-src, img-src, font-src, or style-src, and it does not need to add Cloudflare Turnstile to its own script-src or frame-src. Do not add 'unsafe-inline' solely for Customer Help. If the site sends more than one enforced CSP header, every applicable policy must permit the loader and Chat panel; one permissive header does not override another restrictive header.

The parent-page CSP and a firewall, secure web gateway, DNS filter, browser extension, or privacy tool are separate controls. Network controls used by visitor browsers must permit:

Scheme and host Used for
https://widget.customer.help Chat loading, messages, transcripts, and attachments.
wss://widget.customer.help Live Chat updates after a conversation starts.
https://challenges.cloudflare.com The one-time anti-spam check before a new conversation.
The public HTTPS host of the configured brand logo, when used Loading that logo inside Chat.

Chat does not request camera, microphone, or geolocation permission. Do not approve a wildcard origin or add a private key to make a blocked installation work.

  1. Save the site’s exact HTTPS origin under Allowed origin, including a nonstandard port when one is present.
  2. Open a real page in a private browser window and confirm that the Chat launcher and panel appear. If the browser reports 403 for the Chat panel, verify the page’s exact Allowed origin; loosening CSP will not approve an incorrect origin.
  3. Confirm that security verification completes, then start a test conversation and send and receive a message. Test an attachment too when attachments are enabled.
  4. Return to Chat Settings and confirm Last seen updates for the installed widget.
  5. Read CSP console errors literally: a blocked loader points to script-src or script-src-elem; a blocked Chat panel points to frame-src; a security-check failure points to access to challenges.cloudflare.com; and repeated reconnecting may indicate that wss://widget.customer.help is blocked. Use Content-Security-Policy-Report-Only to evaluate a proposed policy before enforcing it, but remember that a report-only policy does not grant access blocked by an enforced policy.

Chat remembers an active conversation when the visitor closes and reopens the panel. It receives the page title and path, but not query strings or page fragments. Never add a password, secret, or private key to the snippet. Last seen updates after a real page at an approved origin successfully loads the widget.

Permissions, billing, and customer visibility

Section titled “Permissions, billing, and customer visibility”

Only Administrators can configure Chat. Enabling a location adds the displayed Chat charge after confirmation. Saved widget text, appearance, coverage, offline behavior, attachment availability, and transcript choice can affect customers immediately. Allowed origins and widget IDs may be shared with the people installing Chat, but never publish passwords, secrets, or private account details.

  • Location checkbox disabled: confirm the location is active and billable and the main subscription shows Active or Trial.
  • Save and confirm disabled: set a valid location time zone.
  • Widget does not appear: confirm the exact Allowed origin, copied widget ID, HTTPS, CSP permissions, and whether Last seen updates.
  • Pending or Retry needed: the billing change has not been confirmed. Follow the action shown with the status without repeatedly changing the checkbox.
  • Offline at the wrong time: verify the location time zone, coverage mode and hours, saved confirmation, agent availability, and any older schedule still shown in Availability.
  • Save conflict: reload the newest widget settings, reapply changes, and save once.