Skip to content

Live chat ​

init() mounts a chat bubble in the bottom-right corner. You need no extra code.

How it works ​

  1. A visitor clicks the bubble. The SDK creates or resumes their open conversation.
  2. Messages arrive live over a WebSocket. If the socket does not connect within about three seconds, the widget polls every four seconds while the panel is open.
  3. Sending a message always uses a normal HTTP request.
  4. Your team replies from the Inbox in the dashboard.

Outside business hours, the visitor sees your configured offline message. It is shown only in the widget and is not saved as a message.

Help center ​

Before a visitor's first conversation, the chat panel can show your Help center: FAQs, articles and tours, with search. Anything a visitor types in the message box, the Chat tab and the Still need help? line all open a conversation with a person. Nothing is generated and no AI provider is called. Your team sees what a visitor opened or searched next to the chat.

The widget uses GET /public/help. Without published content the panel opens a conversation right away.

Chat is the master switch for the launcher:

ChatHelp centerWhat visitors get
OnOnOne launcher. Tabs from your order (Chat, Help, Articles, Learn); only tabs with content show.
OnOffOne launcher that opens a conversation right away.
OffOn or OffNo launcher. Turning Chat off hides the bubble even when the Help center has content.

Both are set in Chat → Settings: "Chat is on" under Chat widget, and the Help center switch, tabs and order under Widget home. Write the FAQs and articles under Chat → Help center.

Settings ​

Open Chat → Settings → Chat widget.

SettingWhat it does
Chat is onOff hides the chat bubble and stops new messages (the API answers 403 chat_disabled). You can still read the inbox and reply by email to existing conversations.
Show "Powered by justonecx"A small line at the bottom of the chat window. On by default; anyone can turn it off.
Header title and subtitleDefaults "Support" and "We typically reply within a few minutes". Outside business hours the subtitle reads "Back Monday at 09:00" (the next opening).
Show who is onlineUp to three online teammates' photos in the header. When nobody is online the general header shows. Photos and names come from each member's profile.
GreetingA first bubble from you when a visitor opens chat with no conversation yet, after a delay of 0 to 30 seconds. Shown once per visitor. It is saved as the first message only when the visitor sends something, so your team sees what they saw.
Email replies a visitor has not readAfter the number of minutes you set, an agent reply the visitor has not seen is emailed to them once (when they gave an email). The message then shows "Sent by email".

The colors, launcher icon and header style are in the Brand Kit.

Messages ​

Agents and visitors can use bold, italic, code, links, bulleted and numbered lists and code blocks (a small markdown subset; nothing else is rendered, and only http and https links work). Both sides have an emoji picker.

Both sides can attach files: images (PNG, JPG, GIF, WebP), PDF, TXT and CSV, up to 10 MB each and 5 per message. The server checks the real file type, not the name. Images show in the conversation; other files download.

Who is online ​

The inbox shows a dot beside each open conversation: online (the visitor is on the page), idle (no sign of life for 2 minutes) or left ("Last seen 12 min ago"). When the visitor left and gave an email, the reply box offers Also send by email.

After a conversation is closed ​

The visitor can rate it, then Start a new conversation. The rating appears live in the thread header and the list row. Next to a customer, the Insights block lists their previous conversations with date, status and rating.

Internal notes and mentions ​

In an internal note, the @ button mentions a teammate. They get a badge in the Chat header with an Acknowledge action, and an email when they are not in the inbox at that moment. Notes are never shown to the visitor.

Unread badge ​

The bubble shows a count of agent messages that arrived while the panel was closed. It resets when the panel opens.

Hide chat for some users ​

Pass disableChat: true to init(). Use it for your own staff. See init.

Several widgets in one corner ​

Chat, tour launchers, surveys and checklists can share a corner. The SDK stacks them so they do not overlap. You can choose which one sits closest to the corner in Workspace Settings → Widget priority.

Privacy ​

A conversation belongs to the browser that started it. Calling identify() does not give another browser access to it. Call reset() on sign-out so the next person on a shared browser starts fresh.

JustOneCX