The embed snippet
Every bot has its own embed script on the Widget tab, already scoped to that bot's ID. It loads asynchronously, so it never blocks the rest of the page from rendering, and it renders a floating chat bubble in the corner of the screen once loaded.
Plain HTML
Paste the snippet immediately before the closing </body> tag of your site's template. If your site is a single static template shared across pages, one paste covers the whole site.
WordPress
Paste the snippet into your theme's footer — Appearance → Theme File Editor → footer.php, just above the closing </body> tag — or use a header/footer scripts plugin if you'd rather avoid editing theme files directly. Either way, it only needs to be added once and it appears on every page.
Shopify
Open Online Store → Themes → Edit code, find theme.liquid, and paste the snippet immediately before the closing </body> tag near the bottom of the file. This makes the widget appear across the whole storefront rather than a single page template.
Google Tag Manager
Create a new Custom HTML tag, paste the snippet as its content, set the trigger to "All Pages," and publish the container. This is the best option if a content or marketing team manages the site's tags and you'd rather not touch the codebase directly.
Restricting the widget to your own domains
The widget's config settings include an allowed-domains list — once set, the bot will only render on those origins, even if someone copies the script tag elsewhere. This matters more than it might seem: without it, anyone who views your page source could paste the same snippet onto an unrelated site and have your bot answer questions there too. Setting the allow-list once closes that off.
See it running on your own content
First month free — no credit card required.
Matching it to your brand
Widget settings cover the visual details that make it feel native to your site: theme (light or dark), position (which corner it docks to), a primary color that carries through the bubble and message bubbles, and the greeting and placeholder text shown before a visitor types anything. Custom CSS is available for anything the settings don't cover directly.
None of this requires a rebuild or redeploy on your end — widget settings are read live each time the script loads, so a color or greeting change takes effect the next time a visitor loads the page.
Before you call it done
Load the page in an incognito window to confirm the bubble appears without any cached state, send a real question that should hit your knowledge base and confirm the answer is accurate, and check that the allowed-domains list includes every domain and subdomain the site is actually served from (including a staging domain, if you test there too). If lead capture is on, send a message that should trigger it and confirm the lead shows up on the Leads page a few seconds later.