Install the widget
One script tag on any page that renders HTML. Everything else is settings.
Create a site in the console. You get a site key, which is the only thing that varies between installs.
The tag
<script src="https://hepo.ai/w/YOUR_SITE_KEY.js" async></script>
Put it before the closing </body> tag. It loads asynchronously and never blocks rendering.
That is the whole installation. Chat, session recording and analytics all ride this one script, and each is toggled per site in Settings, Widget mode without touching your template again.
Platform notes
Shopify. Online Store, Themes, Edit code, theme.liquid. Paste before </body> and save.
WooCommerce and WordPress. Use the plugin if you want order lookup wired up automatically. Otherwise any header-and-footer-scripts plugin works.
Shoplazza and SHOPLINE. Theme editor, custom code block, footer position.
Single page apps. The widget survives client-side routing on its own. Do not remount it on navigation.
A chat page without a site
If the conversation starts from an email, a printed QR code or a marketplace listing, you can skip the embed entirely:
https://hepo.ai/w/chat?ws=YOUR_SITE_KEY
Same conversation, same inbox, same agent.
Checking it worked
Open your site in a private window. The launcher appears bottom right within a second of the page settling. Send a message, and it should land in the console inbox immediately, tagged with the site name.
If the launcher does not appear, check the browser console for a blocked request. The two usual causes are a content security policy without hepo.ai in script-src, and an ad blocker that has decided a support widget is a tracker.
Content security policy
If you run a CSP, these are the directives the widget needs:
script-src https://hepo.ai
connect-src https://hepo.ai wss://hepo.ai
img-src https://hepo.ai data:
Self-hosted deployments substitute your own host.
Something wrong on this page? Mail support@hepo.ai and we will correct it.