Before You Start
You need a from your OpenCX dashboard. This token tells the widget which organization it belongs to. Choose the install path that matches your site:HTML
Best when you want the fastest website embed.
React
Best when your site already uses React.
Headless
Best when you want your own UI or storage model.
Implementation Steps
- HTML
- React
- Headless
Confirm this is the right path
Choose HTML when you want the default widget on a standard website and do not need to build custom UI from scratch.
Initialize the widget after the page loads
Call after
DOMContentLoaded and pass your widget token.index.html
Choose How The Widget Appears
These options control what visitors see on the page before they even start chatting.Floating launcher (default)
Floating launcher (default)
This is the standard widget behavior. Visitors see a launcher button, click it to open the widget, and close it when they are done.Use this when the widget should be available site-wide without taking up permanent page space.
Inline embed
Inline embed
Use this when the widget should live inside a page section, such as a help page, pricing page, portal, or account screen.When is
true, the widget stays open inside its parent container and the floating launcher is hidden. In practice, this means the widget becomes part of the page layout instead of hovering over it.Open by default
Open by default
Use this when the widget should already be open on first render, such as inside a webview or a dedicated support page.This changes the initial state only. The visitor can still continue using the widget normally after it opens.
Open after a delay
Open after a delay
Use this when you want the widget to open after the visitor has already spent time on the page.This is best for proactive support moments. It is usually a poor fit for every page on your site because it can feel intrusive if the visitor was not trying to chat.
Test Your First Conversation
1. Confirm the widget appears
Load the page and verify the launcher or inline widget shows where you expect.
2. Confirm the opening behavior
Check that the widget opens the way you configured it: floating, inline, already open, or delayed.
3. Send a real message
Start a conversation and verify the message reaches your inbox.
4. Reload and return
Refresh the page and confirm the same visitor can continue the conversation on the same device.
Good To Know
Links can open in the same tab or a new one
Links can open in the same tab or a new one
Use when replies include links and you need to control what happens after the visitor clicks them.Choose
_top if you want the current page to change. Choose _blank if you want the visitor to keep the chat open and open the link in a new tab.Headless builds can use custom storage
Headless builds can use custom storage
If browser storage is not the right fit, use from
@opencx/widget-core.This matters most in mobile apps, embedded environments, or custom shells where your app already controls how tokens and session data are stored.Where To Go Next
Authentication
Identify signed-in visitors and protect conversation history.
Configuration
Control branding, prompts, behavior, and advanced options.
Conversation Sessions
Understand history, handoff, and returning-visitor behavior.
Custom Components
Replace plain text action replies with richer UI.