Quickstart

Install the chatbot on your website in four steps, the same afternoon, and with no card: from a blank workspace to a shopper's question answered from your own catalogue. Nothing on this page is behind a form.

  1. Point it at your store

    Create a workspace and paste your homepage URL. The crawl starts immediately and reports each page as it goes, fetched, skipped, or failed with a reason. A few hundred pages take a couple of minutes. On WooCommerce, connect the store as well, so it can read live price and stock rather than the crawl's snapshot. You do not have to wait for either to finish before step two.

  2. Ask it what a shopper asks

    Open the playground and ask the question your shoppers actually ask, the one with a size or a price in it. Every reply carries its trace, so you can tell whether it is ready to sell before a shopper sees it. If the trace says 0 chunks above threshold, the page holding that answer was not indexed.

  3. Allowlist your origin

    In Settings, add every origin that will serve the widget. This is what stops someone embedding your assistant on their own site and spending your quota.

    https://example.com
    https://www.example.com     # www is a different origin. Add both if both resolve.
    https://staging.example.com
  4. Add one script tag

    Paste this before </body>. The loader measures 3.62 KB gzipped against an 8 KB budget, fetches nothing else until the visitor opens the panel, and reserves no layout space, so it contributes nothing to your Cumulative Layout Shift.

    On WordPress or WooCommerce, install the plugin instead and paste the widget ID into its settings. It does the same thing, and tells the assistant whether the shopper is signed in, so it never asks a customer to create an account they already have.

    <script>
      window.chatConfig = {
        widgetId: "wg_your_widget_id",
        apiBase: "https://fast.fourdm.services",
      };
    </script>
    <script async src="https://fast.fourdm.services/widget/v1/loader.js"></script>

Content-Security-Policy

If your site sends a CSP header, most e-commerce platforms do, the widget needs four directives. Spelled out rather than left to you to infer, because getting this wrong is the commonest reason an install appears to do nothing at all.

Required CSP directives
DirectiveAddWhy
script-src https://fast.fourdm.services The loader itself. 3.62 KB gzipped, under an 8 KB budget.
connect-src https://fast.fourdm.services The chat request and its streaming response.
style-src 'unsafe-inline' The widget styles its own shadow root with an inline <style>. Without this the panel renders unstyled.
img-src https://your-store.example Product images come from your store, not from us. Add whichever host serves them.

Verifying who a visitor is

Signed visitor identity is not available yet. Today the widget authenticates your site, an origin allowlist plus a signed, expiring session token, and, on WooCommerce, reads whether a shopper is logged in from the plugin. That claim is not cryptographically signed, so treat it as a convenience for the cart flow rather than as authentication.

The practical consequence: do not configure a tool that returns one visitor's personal data based on who the widget says they are. Order lookups should ask for an order number and an email, the way a support agent would. When signed identity ships, this section will carry the signing examples and this warning will go.

When it does not work

Five failures, in the order people hit them.

  • The bubble never appears, and the console mentions Content-Security-Policy

    This is the commonest installation failure in this category, by a wide margin. Your CSP is blocking either the loader or its connection back to us. Add the four directives above. If the panel appears but looks unstyled, it is style-src specifically.

  • The bubble appears but every message fails with 403

    The origin is not allowlisted. The widget will only accept a session for an origin you have registered, so add the exact scheme and host, https://www.example.com and https://example.com are two different origins, and both need adding if both serve your site.

  • It answers, but says it does not have information you know is there

    Retrieval found nothing above threshold. Open the conversation in the console and read the trace: if it shows 0 candidates, the content was never indexed or never matched. This is a content problem, not a prompt problem.

  • Products show without images, or with the wrong ones

    Image URLs are validated against your catalogue before an answer is sent, and an invented one is dropped rather than shown broken. If images are missing entirely, re-sync the catalogue; if the wrong product is carded, check that its name in the catalogue matches what the answer calls it.

  • It works locally but not in production

    Almost always apiBase still pointing at localhost, or the production origin not allowlisted. Both are one line each.

Questions during setup

The five things people hit in the first fifteen minutes.

How long does the install actually take?

One script tag, and the widget appears immediately. What takes the rest of the time is giving it something to answer from, crawling your site and, for a shop, syncing your catalogue.

Do I have to add my website before it works?

You should. Without any sources the assistant has nothing to answer from and will say so to every visitor. A product catalogue alone lets it recommend products and leaves it unable to answer anything about delivery, returns or warranty, which is most of what customers ask.

Will crawling my site slow it down?

It reads two pages at a time with a pause between them, and backs off automatically if your server starts returning errors, stopping entirely rather than continuing to press a site that is struggling. A crawl should never be something your visitors notice.

What if a page fails to be read?

It is listed with the reason on your Install page rather than failing silently. The usual causes are a page whose content is rendered by JavaScript, or a temporary error from your host. Anything on a failed page is missing from the assistant's knowledge: it does not guess at the contents.

Can I check everything is set up correctly?

Yes. The Install page runs a connection check that asks your store the same questions the assistant asks it, and reports what came back: whether the store answers, whether your products and pages point at the site you are actually running on, and whether the widget is allowed where it is installed. It also runs on its own every few hours.

Put it on your store this afternoon

No card, and the Trial plan is free and does not expire.