DocsStore platforms

Noli on any website.

One script tag puts the Noli AI agent on a custom build, Webflow, Wix, Squarespace or plain HTML. Your branding comes from your Noli settings, so the key is all the snippet needs.

The snippet

Paste this once, just before the closing </body> tag, with your own publishable key:

<script async src="https://app.heynoli.ai/widget/v1/noli-widget.js" data-noli-key="pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></script>
⚠️

Paste it as one line. Some CMS and WYSIWYG editors convert the indentation of a multi-line <script> into non-breaking spaces, which corrupts the attribute names so the browser never loads the script - and the bubble silently fails to appear. A single line with plain spaces avoids this. Where possible, paste into a raw-HTML or code field rather than a rich-text one.

💡

On Shopify you do not need this - the theme app extension renders the widget natively. See Shopify.

Settings → Embed on any site. The publishable key is safe to paste into page source.

What happens on load

  1. The loader reads its data-* attributes.
  2. It fetches your branding - colours, logo, currency, point name, greeting - from your Noli settings.
  3. It assembles window.NoliConfig and injects the stylesheet, translations and chat bubble.
  4. The visitor chats as a guest, identified by a per-browser id in localStorage. The AI agent answers and can surface products.

Optional overrides

All optional. Set them as data-* attributes on the script tag to override what the backend supplies:

AttributeDefaultNotes
data-noli-key—Required. Your publishable key.
data-noli-colorbrand colourBubble and accent colour.
data-noli-positionright"right" or "left".
data-noli-offset-bottom20Pixels from the bottom.
data-noli-offset-side20Pixels from the side.
data-noli-iconchatchat · star · gift · heart · sparkle
data-noli-headingbusiness nameChat window title.
data-noli-localepage <html lang>Two-letter locale.
data-noli-notificationtrue"false" hides the teaser card.

For full control, set window.NoliConfig = {…} before the loader tag - those keys win over everything else.

Identity and what the key can do

A publishable key unlocks read and chat only. It is safe to expose in page source, the same way a Stripe pk_ is. Spending points and redeeming rewards require a verified customer session, which the visitor establishes by signing in with an email code.

If your site already has its own logged-in users and you want them recognised without a second login, you need server-side signing - the same mechanism the WooCommerce plugin uses. See WooCommerce for how the token is built, or email support@heynoli.ai and we will walk you through it for your stack.

Bubble not appearing?

  • Check the page source for the script tag - if the attribute names look mangled, the editor rewrote your whitespace. Re-paste as one line.
  • Check the browser console for a missing-key error. A typo in data-noli-key fails silently otherwise.
  • If you set an allowed-origins list on the key, confirm the site's domain is on it - including the www. variant if you use one.