This page exists to prove the embeddable widget works and to show exactly what a customer has to add to their own site. Nothing on it is part of the product except the button.
functions/bot/config.js, written to exercise every path in the
engine. Replace that file and this whole page changes character.The button is bottom right. Give it a few seconds on the page and a teaser bubble appears; stay longer, or scroll, and the larger prompt card follows. Both are one-time nudges and remember being dismissed.
Ask it something a design studio would field - a new brand identity, a logo refresh, packaging for a drinks label - and watch it qualify you. Ask for a video advert instead and watch it decline honestly and point you elsewhere. There is a bare-bones version of the same conversation at /bot/try, and the admin is at /bot/admin.
Two lines in <head> and one button. That is the whole
integration.
<link rel="stylesheet" href="/css/ai-agent.css">
<script src="/js/ai-agent.min.js" defer></script>
<button class="ai-agent" aria-expanded="false"
aria-label="Open chat"
data-label="Ask Elena"
data-icon="↑"
data-skip-paths="/contact,/checkout">
<span class="ai-agent-dot"></span>
<span class="ai-agent-label">AI</span>
</button>
The panel, the guide reader, the teaser and the prompt card are all built by the script on first use. None of them belong in your markup, and nothing loads until a visitor engages.
data-label - the panel's title. Omit it and the widget uses the
assistant's live name from the admin, so renaming it in Settings is enough.data-icon - the glyph on the send button. Any single character.data-skip-paths - a comma-separated list of pages where the
prompt card must never appear. Your contact form and checkout belong here:
interrupting someone mid-conversion is the one thing this must not do.aria-expanded - start it at false. The script keeps
it in step after that.Redefine the custom properties after the stylesheet loads. This page sets two of them, which is why the widget is teal here and slate blue by default.
<style>:root{
--ai-accent: #2f6f6b;
--ai-font-body: 'Inter', sans-serif;
}</style>
The full list is at the top of css/ai-agent.css. If your site has a
dark theme, redefine the same properties under whatever selector switches it and the
widget follows, because it reads nothing else.