Channels & widget

Today cobay lives in one channel: a chat widget on your storefront. One line of code installs it; everything else — look, voice, behavior — is controlled from your dashboard.

The one-line embed

The entire install is a single script tag, pasted into your theme layout before the closing </body> tag:

theme.liquid
<script src="https://www.cobay.ai/widget.js" data-key="cbw_..." async></script>
  • Your real key lives in the dashboard. Copy the ready-to-paste snippet from Dashboard → Integrations → Chat widget — the cbw_ above is a placeholder.
  • It loads async. The script never blocks rendering, so your storefront speed and Core Web Vitals are unaffected.
  • Paste once, every page. Because it sits in your theme layout, the bubble appears site-wide — no per-page setup.

It looks like your store, not ours

The widget picks up your agent name, tone, and brand colors from Dashboard → Settings. Nothing is hardcoded in the snippet — change your settings once and every storefront visitor sees the update. No CSS to fight, no second install.

How it behaves

  • Streaming replies— answers appear as they’re written, like a fast human typing.
  • Readable formatting — replies use bold, links, and lists where it helps, tuned for skimming on mobile.
  • One memory per customer — when a shopper identifies themselves (for example with the email on their order), cobay connects their past conversations across sessions and devices, so nobody repeats themselves.
  • Grounded, with a human backstop — answers come from your Shopify data and knowledge; when the agent is unsure, it hands off. See Data & privacy.

More channels are on the roadmap

We’d rather do one channel excellently than five badly. The storefront widget is where D2C revenue conversations happen today; when we add more surfaces, they’ll share the same brain and the same memory.