A chat window on your site, answered by the same agent that handles your email and WhatsApp. Visitors become leads, conversations land in the same inbox, and the whole thing is one script tag.
One script tag, loaded asynchronously. It renders a launcher button and opens the chat in an iframe, so it can't collide with your site's CSS or JavaScript.
<script async src="https://spliceai.co/embed.js" data-spliceai-key="pk_live_your_public_key" ></script>
The public key is safe in client code
pk_live_… is designed to be public - it identifies the widget, it doesn't authorise anything. What actually protects you is the allowed-origins list.The widget only runs on domains you list, wildcards included - https://acme.com, https://*.acme.com. Anywhere else, it refuses to load.
Add every host you actually use
| Setting | What it controls |
|---|---|
| Accent colour | Launcher, header and the visitor's own message bubbles. |
| Background / text colours | The chat panel itself. |
| Bubble colours | Visitor and agent bubbles, separately. |
| Corner radius | Panel and button rounding. |
| Font family | Match your site's typeface. |
| Position | Bottom-right or bottom-left. |
| Launcher icon & size | A built-in icon or your own image. |
| Header title & subtitle | The text at the top of the panel. |
| Agent name & avatar | Show who's replying, or keep it anonymous. |
| Layout style | The overall shape of the panel. |
| Powered-by badge | On by default, can be turned off. |
| Custom CSS | For anything the controls don't cover. |
| Control | Behaviour |
|---|---|
| Collect email | Ask for an address partway through the chat rather than blocking the first message. You choose after how many messages. |
| Pre-chat form | Ask up front instead, when you'd rather have the details than the conversation. |
| Require email verification | Send a one-time code and only continue once it's entered. This is what makes a visitor genuinely verified. |
Verified visitors are matched to an existing lead where one exists, and their identity is what identity-scoped custom tools check before running. Visitors are tracked by a browser-local token, and IP addresses are stored hashed rather than raw.
The loader exposes window.SpliceAI. If your app already knows who the user is, tell the widget and skip the form entirely.
// Your app already knows who this is - skip asking them again. window.SpliceAI.identify({ externalId: "user_123", email: "priya@acme.com", name: "Priya", }); // Drive the widget from your own UI window.SpliceAI.open(); window.SpliceAI.close(); window.SpliceAI.toggle();
Calling identify before the widget has opened is fine - the details are queued and applied when it loads.
Test mode
Turn on satisfaction ratings and each reply can be rated - thumbs by default - with your own prompt text. These ratings are the main source of the CSAT figure in Analytics, and negative ones feed the knowledge gaps list.