Skip to content

Deploying Your Bot

Get your bot live on your website — copy the embed code, paste it into your site, and verify the chat bubble appears. Includes platform-by-platform paste locations and troubleshooting.

On this page

You've finished the new-bot wizard, your bot is trained, and you're staring at an embed code. This article gets you the rest of the way: code on your site, bubble visible to visitors, and confidence that it's actually working.

Before you start

A few things worth knowing:

  • Nothing here is destructive. If anything goes sideways, you can remove the snippet and your site goes back to exactly how it was. There's no "uninstall" needed.
  • It takes about 5 minutes for a non-technical user on a typical site builder. Less if you're using the WordPress plugin.
  • You don't need a developer. If you can edit your site's settings, you can do this.
  • You can change your mind. Widget color, welcome message, position — all editable after deploying without re-pasting any code.

Quick start: get live in 3 steps

For most platforms (Squarespace, Webflow, Shopify, Wix, etc.), the flow is:

  1. Copy the embed code from the Deploy step in the new-bot wizard (or from your bot's Deploy tab if you've already finished setup). Click Copy.
  2. In your site builder, find the "footer code" or "custom code" field. This is usually under Settings → Advanced or similar. (See the platform guide below for the exact path on your platform.)
  3. Paste, save, and refresh your site in an incognito window. The chat bubble should appear in the bottom-right corner within a few seconds.

That's it. If the bubble shows up, you're done. If it doesn't, jump to Troubleshooting.

Choose your deployment path

There are three ways to get your bot in front of visitors. Pick whichever matches your situation.

Option 1: Embed code (works on almost any site)

A single <script> tag you paste once into your site's footer area. Works on Squarespace, Webflow, Shopify, Wix, Framer, custom-coded sites, and pretty much anything else that lets you add custom code.

Best for: Most operators. If your site isn't WordPress, this is the path.

Option 2: WordPress plugin

A pre-configured .zip file you upload through your WordPress admin. Three clicks and you're live — no code editing.

Best for: WordPress sites. Easier than editing theme files, and survives theme changes.

To use it:

  1. Open your bot's Deploy tab, switch to the WordPress sub-tab, and click Download Plugin.
  2. In WordPress admin, go to Plugins → Add New → Upload Plugin.
  3. Choose the .zip, click Install Now, then Activate Plugin.
  4. Open Settings → HelpJet to confirm it's connected.

The plugin includes your Bot ID, so there's no extra setup. If you run multiple WordPress sites and want different bots on each, download a separate plugin per bot and install each on its own site.

For the full plugin guide — shortcode, Gutenberg block, multiple bots — see The HelpJet WordPress Plugin.

Every bot can have a hosted chat page — a URL you can share anywhere: email signatures, support replies, internal Notion docs, a "Talk to support" button on any page. It opens a full-page chat without needing to embed anything.

Best for: Quick testing, situations where you can't embed code, or links inside emails.

To get the URL, open the Deploy tab, switch to Chat Link, flip the toggle on, and copy the link shown at the top of the Customization card.

Where to paste, by platform

Platform

Where to find the field

Squarespace

Settings → Advanced → Code Injection → Footer

Webflow

Project Settings → Custom Code → Footer Code

Shopify

Edit your theme.liquid and paste just before </body>

Wix

Settings → Custom Code → Add Custom Code → place at Body — end

Framer

Site Settings → General → Custom Code → End of <body> tag

Carrd

Site Settings → Embed → Body placement

Ghost

Settings → Code Injection → Site Footer

Bubble

Settings → SEO/metatags → Script in the body

Webnode / Jimdo / similar

Look under Settings or Site Settings for "custom code," "scripts," or "tracking code"

Custom HTML site

Edit your template/layout file. Paste just before </body>.

Not seeing your platform? Look in your site builder's settings for any field labeled:

  • "Custom code"
  • "Footer code" or "footer scripts"
  • "Body end" or "before </body>"
  • "Tracking code" or "analytics scripts" (these usually work too — the snippet is the same kind of thing as Google Analytics)
  • "Header/footer scripts"

If none of those exist, your platform may not support custom scripts. In that case, use the Chat Link instead.

How to tell it's working

After you paste the code and save:

  1. Open your site in an incognito or private window. This avoids cached versions confusing things.
  2. Wait 2–3 seconds after the page loads.
  3. Look for the chat bubble in the bottom-right corner (or wherever you set the widget position). It should be the color you picked in the wizard.
  4. Click the bubble. Your welcome message should appear.

Don't see it? Most often it's one of these, in order of likelihood:

  • Your site builder is serving a cached version → hard-refresh (Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on Mac).
  • The code went into the wrong section (the <head> instead of the <body>) → re-paste, making sure you're in the footer/body-end field.
  • Your bot isn't active → in your bot's Settings tab, open General Settings and check that Status is set to Active.

See Troubleshooting below if those don't fix it.

Common questions

Can I change the bot's color, welcome message, or position after deploying?

Yes — without re-pasting any code. Go to your bot's Deploy tab, change the settings under Customization, and click Save Settings. Changes appear for visitors on their next page load.

Will visitors know it's an AI?

By default, the widget displays your bot's name and welcome message — nothing identifies it as AI explicitly. Some operators add "AI-powered" or similar to the welcome message; that's your call. We recommend honesty where appropriate, but it's not required.

How do I pause the bot?

In your bot's Settings tab, open General Settings and set Status to Inactive. The widget stops appearing on your visitors' sites from their next page load — no need to remove the embed code. To resume, set the status back to Active.

What happens when a visitor asks something my bot doesn't know?

The bot will say so honestly ("I don't have that information") rather than guessing. You can see every conversation in the Activity tab and use those gaps to improve training.

How do I deploy on multiple sites?

Paste the same embed code on each site. Same bot, same ID — visitors on each site get the same bot.

If you want different bots on different sites, create separate bots in HelpJet — each has its own embed code.

Can I test on a staging site first?

Yes — paste the code on your staging URL. If your bot has domain restrictions enabled (see the Advanced section below), make sure your staging domain is in the allowed list.

Does deploying cost anything?

No — embedding is free. Pricing is based on interactions — billable bot responses to user messages.

How do I remove the bot completely?

Two options:

  • Set it to Inactive — leaves the code on your site but stops the widget from appearing. Reversible.
  • Delete the snippet from your site — fully removes it. You can always re-paste later.

You don't need to delete the bot from HelpJet to remove it from a site.

Will the widget slow down my site?

It shouldn't. The snippet loads asynchronously, meaning your site renders first and the widget loads in the background. It also doesn't run any code until a visitor opens the chat bubble.

If you see performance issues after pasting the code, contact support — there may be a conflict with another script on your site.

Troubleshooting

If the chat bubble isn't appearing, work through these in order. Each one fixes the most common cause first.

1. Did you save and refresh?

Sounds obvious, but it's the #1 cause. After pasting:

  • Click Save in your site builder.
  • Open your site in an incognito/private window (Cmd+Shift+N on Mac, Ctrl+Shift+N on Windows in Chrome).
  • Force-refresh once you're there (Cmd+Shift+R / Ctrl+Shift+R).

Some platforms (Webflow, Shopify) need you to republish after saving — check for a "Publish" button.

2. Is your bot Active?

In HelpJet, open your bot's Settings tab, go to General Settings, and check the Status. If it says Inactive, Building, or Archived, set it to Active. Only active bots respond to visitors — a Building bot shows a maintenance notice instead of the chat, and an Inactive bot hides the widget entirely.

3. Is the Bot Widget channel enabled?

On the Deploy tab, the Bot Widget sub-tab has its own on/off toggle at the top right. If it's off, the widget won't load even with the code in place — flip it on and click Save Settings.

4. Did you paste in the right place?

The snippet needs to be in the footer or body-end area — not the header or <head>. Some builders silently strip scripts from the header.

Re-check the platform guide above for the exact field name on your platform.

5. Is a domain restriction blocking it?

If you set allowed domains for the bot, the widget will refuse to load on any domain not in the list. Check Settings → General Settings → Domain Security. If you're testing on localhost or a staging URL, add those to the list.

6. Is a browser extension blocking it?

Aggressive ad blockers (uBlock Origin with custom filters, Privacy Badger, certain enterprise security extensions) occasionally block third-party widgets. Test in a different browser or a clean profile with no extensions to rule this out.

7. Is there an error in your browser console?

If you're comfortable doing this:

  1. Open your site
  2. Press F12 (or Cmd+Option+I on Mac) to open Developer Tools
  3. Click the Console tab
  4. Look for any red errors mentioning "HelpJet," "widget," or "loader.js"

Common error messages and what they mean:

Error contains

What it means

Failed to load HelpJet widget

The widget script couldn't reach our servers. Usually a network issue, firewall, or CSP block.

HelpJet widget already loaded

You pasted the snippet twice. Remove one of them.

Refused to load... Content Security Policy

Your site has a strict CSP. See the Advanced section below.

If you don't see anything useful in the console, screenshot it and send to support — we can usually diagnose from there.

8. The widget shows up but doesn't respond

  • Check the Activity tab in HelpJet — are conversations reaching the bot?
  • If yes, your bot may need more training data. Add more sources in the Sources tab.
  • If no, there's a connection issue. Contact support with your bot ID.

9. The widget is in the wrong position or overlapping other elements

  • Change position on the Deploy tab under Customization → Widget Position (Left or Right).
  • Turn on Avoid covering page content in the same Customization card to keep the bubble off your site's content.
  • If a fixed footer or floating button still overlaps the widget, you may need a CSS adjustment. Contact support — we'll send a snippet for your site.

When to ask for help

If you've worked through the steps above and you're still stuck, send us:

  • Your bot's name or ID
  • The URL where you pasted the code
  • A screenshot of your browser console (if you got that far)
  • What you've already tried

We can usually diagnose within a few hours.

Advanced

The rest of this article is for developers or anyone comfortable with HTML, CSS, and browser dev tools. If that's not you, you can stop here — the sections above cover everything you need.

What the embed snippet actually does

The snippet is a small loader script that:

  • Checks if window.HelpJet.loaded is already set, to prevent double-loading.
  • Creates an async <script> element pointing at /api/widget/loader.js?botId={yourBotId}.
  • Inserts it before the first existing <script> on the page.
  • Sets up an onerror handler that logs to the console if loading fails.

The actual widget code is loaded from /api/widget/loader.js, which is served with permissive CORS so it works from any origin. The widget itself renders inside a shadow DOM, so its styles don't leak into your page (and yours don't leak in).

Domain restrictions

Settings → General Settings → Domain Security restricts which domains the widget will load on — a guardrail against unauthorized embedding, not a hard security boundary. If you use it, remember to add staging domains and localhost explicitly for testing. Patterns and details: Bot Settings.

Content Security Policy (CSP)

If your site sets a strict CSP, you may need to allowlist the HelpJet domain (the domain in your embed code's src attribute). The widget needs:

  • script-src - the HelpJet domain
  • connect-src - the HelpJet domain (the chat streams responses over HTTPS)
  • img-src - the HelpJet domain, plus data:
  • style-src - 'unsafe-inline'

('unsafe-inline' is required for the widget's inline styles. If your security policy prohibits this, contact support — we have a nonce-based workaround.)

Multiple bots on one page

Not currently supported. Each page can have one bot — the loader refuses to run twice on the same page. If you need multiple bots (e.g., different bots for different sections of a site), use page-conditional logic in your site builder to inject different embed codes on different pages.

Programmatic control

The widget exposes a window.HelpJet global once loaded:

  • window.HelpJet.loaded - true once the widget script has run (this is how the snippet prevents double-loading).
  • window.HelpJet.config - the resolved widget configuration.
  • window.HelpJet.widget.toggle() - opens or closes the chat panel (e.g., from a "Talk to support" button on a custom page).

These internals are stable but not a formally versioned API — if you build on them, pin your expectations lightly and contact support for the current reference.

Subresource integrity (SRI)

The loader script doesn't currently support SRI hashes because it pulls in dynamically-versioned bundles. If your security policy requires SRI on all third-party scripts, contact support — we can discuss alternatives.

Where to go next

  • Activity tab — see what real visitors are asking the bot, and where it gets stuck. Updating your training based on what you find here is the single highest-leverage thing you can do after deploying.
  • Train & Test Bot tab — try the bot yourself before pushing new training out.
  • Embedding & Sharing Your Bot — the other deploy channels: Page Embed, Chat Link, and WordPress.

The bot will keep getting better the more you watch what people actually ask it and tune from there. Deployment is the first step, not the last.

If you get stuck, we're here — contact support from inside HelpJet or reply to any HelpJet email.

Was this article helpful?