Sites
A site is the workspace for one storefront. Create one per store, each with its own agents, conversations, and connectors.
A site is the workspace for one storefront. Your organization can have several: one per store, market, or brand you run the assistant on. Everything you configure day to day (agents, conversations, connectors) belongs to a site, not to the organization directly.
Only account and organization settings (your profile and organization members) sit above the site level. There's no org-wide list of sites in the dashboard; you always reach a site through the switcher.
How sites work
- An organization has many sites. Each has a name, a URL, and a platform, from two groups: E-commerce platform (Shopify, PrestaShop, WooCommerce, Commercetools, BigCommerce, Wix Store, Adobe Commerce, Salesforce Commerce Cloud, SAP Commerce Cloud) and Website (HubSpot, Wix, WordPress), or Custom if none match. Creating a site fills all three in from the storefront address you give it; you can change any of them afterwards in Site settings → Website.
- The platform field is metadata for now: it records what the storefront runs on but doesn't change how the assistant behaves or which connector types are available. A new site is Shopify when onboarding confirmed it, Custom otherwise.
- Once you're working inside a site, the whole dashboard (its home page, Agents, Conversations, and Connectors) is scoped to that site. The URL always carries the site id:
/dashboard/sites/{siteId}/…. - A brand-new organization can't skip this: after you sign up, onboarding first creates your organization from the name you type, then asks for your storefront address and creates your first site from it. A site is mandatory before you reach the dashboard, since the whole workspace is site-scoped. For the same reason, an organization always keeps at least one site: the last one can't be deleted.
Create a site
Open the site switcher at the top of the sidebar (it shows your current site's
name) and choose Create site, or go directly to /dashboard/sites/new.
Enter the storefront's public address (that's the only field). A bare domain
is fine; it's prefixed with https:// for you.
Continue. The site is created from that address (name, platform, language, URL), along with an agent and (when the platform is confirmed) a catalog connector, then a background analysis you review before finishing. This is the same flow as first-run setup, minus the organization step: your existing organization is reused and never renamed.
The name, platform, and vertical you'd otherwise have typed are derived and shown for review; everything is editable afterwards from the site's settings below.
Switch between sites
The site switcher at the top of the sidebar lists every site in your organization, with the current one checked. Pick another one and you move to the same tab under the new site: from Agents on site A, switching takes you to Agents on site B, not back to the home page.
With more than five sites, a search box appears above the list. Type to filter by site name or site URL: matching either is enough, so two similarly-named sites are still easy to tell apart by their domain. The search ignores accents and case: typing ete matches a site named "Boutique Été". With five sites or fewer there is no search box, and the arrow keys and Enter work on the list directly. The list scrolls once your organization has enough sites to need it.
Each site shows a small round mark in front of its name, both on the switcher button and on every row of its list. The mark is the site's favicon if it has one, otherwise its logo, otherwise the site's initials. The initials sit on a green fill for the current site and a neutral one for the others. An image has a white backing, so a transparent logo with dark artwork stays readable in the dark theme, and carries no green fill. If an image can't be loaded (for example, the file was deleted), the mark shows the initials instead of a broken image.
The switcher is always there, even on account and organization-settings pages, where there's no "current" site in the strict sense. It shows the site you were last working in instead, so you're never more than a click away from getting back into a site's workspace.
The switcher never renders empty: an organization always has at least one site once it's past onboarding. Below the list, Create site (shown only if your role can edit sites) stays available whatever you've typed in the search box. There's no separate "manage sites" list to browse from the switcher.
Above the list, a section named after the current site holds its own links:
- Visit your site opens the site's URL in a new tab, when the site has one.
- Open your AI Storefront opens the site's AI Storefront in a new tab, once it's published.
- Set up your AI Storefront replaces it while the AI Storefront isn't published, and opens the AI Storefront settings tab. Only members whose role can edit sites see it.
Typing in the search box filters the site list only, never this section.
The dashboard remembers the last site you picked in each organization, so opening Dashboard, coming back another day, or switching back to an organization lands you on that organization's site, not on the one you were using in the other: no need to pick it from the switcher again. A site counts as picked when you choose it in the switcher or create it. Following a link to a site's page doesn't change what's remembered. If the remembered site no longer exists (someone deleted it) or there's nothing remembered yet for that organization (a new browser, or an organization you haven't used here), you land on its oldest site instead. If your organization has no site at all, you land in onboarding instead of an empty dashboard.
The memory is kept in your browser (a cookie that lasts a year), so it doesn't follow you to another browser or device. It holds up to 20 sites, the most recently used first; if you belong to more organizations than that, the least recently used ones fall back to their oldest site.
Site settings
Open a site's workspace and click Site settings in the sidebar. It opens Website, and a row of six tabs at the top of the page takes you to the others. The Site settings title and the row of tabs stay at the top of the page while you scroll. On a narrow window, the tabs that don't fit move into a More menu at the end of the row. Each tab has its own URL:
- Website (
/dashboard/sites/{siteId}/settings/website): the site's name, URL and platform, its languages and default language, and the danger zone to delete it. See Website. - Brand (
/dashboard/sites/{siteId}/settings/brand): the AI assistant context (what the site sells, its tone of voice, its vertical, with a Generate button), the Brand identity (logo, favicon, colours and font), then the Panel reduced state button. See Brand. - Installation (
/dashboard/sites/{siteId}/settings/installation): the site key, the Authorized domains, the install tag, then two cards to check that the install works: Performance check and Event check, and on a Shopify site the Shopify pixel for add-to-carts and orders card. See Installation. - Site access (
/dashboard/sites/{siteId}/settings/site-access): what AISA may do with the site's pages: counting page views, reading pages automatically, writing starter questions automatically, the Page signal, and counting add-to-carts on your pages. See Site access. - AI Storefront (
/dashboard/sites/{siteId}/settings/ai-storefront): the switch that publishes the site's AI Storefront, the agent it serves, and its link once published. See AI Storefront. - Holdout has moved to the Holdout tab of the Experiments page (
/dashboard/sites/{siteId}/experiments/ab-test?tab=increment): the site's holdout test, which serves half of the sessions no assistant to measure what the assistant adds. It has no Save: starting and stopping are their own buttons. See Measure what the assistant adds with a holdout test.
The Site settings entry stays highlighted on every tab and always follows your current site: switch sites and it points at the new one's settings.
Which agent answers shoppers on the site is not chosen here. It's set from the agent itself, under Agents, with Go live: see Put an agent live or take it offline.
Save your changes
Each tab has one Save button, at the top right next to the Site settings title. It writes every change you made on that tab, whichever card it's in, so you don't look for a button per card. The title row stays pinned, so Save is reachable however far down the tab you are.
- Nothing changed: Save is dimmed and does nothing. Hover or focus it and it says "No changes to save."
- Something changed: an Unsaved changes marker appears to the left of Save, and stays until the change is saved or you leave the tab without saving it.
- While it saves: the button reads Saving and can't be clicked again.
- When it worked: one confirmation, "Changes saved.", covers the whole tab.
- A field is invalid (an empty required field, a reading threshold that isn't a whole number in range): nothing is written, and the cursor moves to the first field to fix.
- A write fails: the cards are written in the order they appear on screen. The ones before the failure stay saved. The one that failed shows its error and keeps your edits, and the ones after it aren't written yet: Save stays available to try again.
Every setting on these tabs waits for Save, switches and lists included: flipping a switch or adding an authorized domain changes nothing on your live site until you click Save. A few controls aren't settings but actions, and they still happen at once, each with its own button: Delete site, Rotate key, launching a Performance check, and Generate on the Brand tab (it fills fields, which then wait for Save like anything you type).
Leaving with unsaved changes
If you have unsaved changes and click another tab, a link in the sidebar or anywhere else in the dashboard, or your browser's back button, a dialog asks what to do:
- Stay: close the dialog and keep editing.
- Discard and leave: drop the changes and go.
- Save and leave: save, then go. If the save fails, the dialog stays open so you can try again or discard. If a field is invalid, the dialog closes and the cursor moves to that field.
Closing or reloading the browser tab shows your browser's own "leave site?" warning instead.
Members whose role doesn't let them edit the site (see below) see no Save button, no marker, and no dialog.
Old addresses
Site settings used to have seven tabs. Their addresses still work and redirect permanently to the tab that now holds their content, with the query string kept:
| Old address | Opens |
|---|---|
…/settings (no tab) | Website |
…/settings/general | Website |
…/settings/languages | Website |
…/settings/branding | Brand |
…/settings/public | AI Storefront |
…/settings/performance | Installation |
…/settings/diagnostics | Installation |
…/conversations/events | Installation |
…/settings/automation | Site access |
The former General tab is split between Website (name, URL, platform, delete) and Brand (AI assistant context). A bookmark to it opens Website.
Who can change settings
Opening any tab is open to every member. Changing anything requires your role to grant the sites:edit permission. Without it, no tab shows a Save button, and each tab holds back its controls:
- Website and Brand: the fields still show and can still be typed into (the add-language picker included), but with no Save button nothing you change is ever written. The danger zone doesn't appear at all. The Brand tab's Panel reduced state button card is the exception: its fields show disabled.
- Installation: the controls are omitted rather than shown disabled. The site key still shows as plain text (and stays copyable), but there's no rotate button and no way to add or remove a domain.
- Site access: the switches and the threshold field are omitted, and each row states its setting instead ("Currently on." or "Currently off.", and the threshold as a number).
- AI Storefront: the publish switch is omitted. The tab still says whether the AI Storefront is published, names the agent it serves, and shows its link once it's live.
- Holdout (on the Experiments page): the New test button is omitted, and the running test's card shows a note that starting, extending and stopping need permission to edit sites. The running and past tests still show.
That same permission also controls whether Create site shows up in the site switcher and on /dashboard/sites/new, and who can change which agent answers on the site. It's available as Edit sites when building a custom role, and the built-in Admin role grants it; the built-in Member role does not.
Web tool settings aren't here
The domain policy and JavaScript-rendering setting behind web search and page reading are also per-site, but they live on the site's own Tools page (Tools in the sidebar, under Assistant), not under Site settings. See The Tools page. Unlike the Site settings tabs above, that page needs the Agents permissions. It is also unrelated to the Pages list under Knowledge: AISA reads those pages itself, to write starter questions, and the domain policy and JavaScript setting of the Tools page do not apply to it.
Website
The Website tab describes the site itself. It holds three cards. The tab's Save writes the first two together.
Configure your site
- Name and Platform: as described in How sites work.
- URL: your storefront's public address. Required. Enter a bare domain (e.g.
mystore.com) and it's auto-prefixed withhttps://and stored as a full URL. Its origin is automatically added to this site's authorized domains (the list that controls which pages can embed the assistant) and marked non-removable there. It is also the address a relative link or image in the assistant's answers (/cart,/img/sofa.png) is resolved against, so it must be your storefront's own address.
Languages
A site declares which languages its shoppers speak, from a fixed registry of six: French, English, German, Italian, Spanish and Dutch. This is the set an agent's welcome messages and the site's starter questions can be written in, and the set the chat panel's own on-screen text (composer placeholder, status messages) is translated into. A new site starts with a single language enabled and set as default: the one detected on your storefront when it was created, or English when we couldn't tell.
The dashboard names these languages in the language of your own dashboard profile, here and everywhere else (pickers, the conversations list and filters, report charts): German with an English profile, Allemand with a French one. Your shoppers never see these names.
Manage it from the Languages card on the Website tab:
- The list: the enabled languages. Add one from the dropdown (only languages not already in the list are offered) or remove one with its trash icon. A language can't be removed if it's the site's only remaining one, or if it's the current default. Change the default first. Nothing is written until you click the tab's Save. If a language you're removing has a welcome message configured on any agent version on this site, text on any of the site's starter questions, a display name configured on any agent on this site, or an indicator message on any of the site's instruction blocks, saving asks you to confirm first, since that content is deleted along with the language. Cancel and the list isn't written: your edits stay on screen, unsaved.
- Default language: the last row of the card, a select of the site's saved languages, used to resolve a visitor whose browser language doesn't match any of the site's enabled ones. A language you've just added becomes available here once you've saved it.
Removing a language deletes its content
Removing a language isn't a soft unlink. Saving a removal permanently deletes that language's welcome message from every agent version on the site (live or offline, every saved state), its label and message from every starter question in the site's library, plus that language's entry from every agent's display name and from every instruction block's indicator message on the site, not just the one you're currently editing. There's no undo; you'd need to re-enable the language and re-type the content.
A starter question left with no text in any language isn't deleted with it: it keeps its page scope and its place in the library, and the Questions page reports it as Needs setup so you can write a new label.
Not the dashboard's own language
This is separate from your personal dashboard language (see Languages and localization). This setting is per site and governs what shoppers see in the chat panel, its configured welcome message and the site's starter questions; your own dashboard language is per account and only affects the admin UI you read.
Text in several languages
Every dashboard field that holds shopper-facing text per language works the same way: an agent's display name and welcome message, an instruction's indicator message, a starter question's wording, and a widget's text, heading, placeholder and first message.
On a one-language site, the field is just a field. There's no language list.
With two or more languages, a compact language list sits before the field. Its button shows the code of the language on screen (EN, FR, DE). Open it to switch: the menu lists every enabled language by code and name, in the language of your dashboard profile, your site's default language first and marked Main. The form opens on the main language.
Required texts are the ones every shopper needs:
- an agent's display name and welcome message
- a conditional instruction's indicator message
- a button's text
- a Starters heading, while Show a heading is on
- the placeholder of a question bar or a Starters widget
When you open the editor, each of these is filled in every empty language with a built-in base text, so you edit a sentence instead of facing a blank field. That fill is an unsaved change: the editor shows unsaved changes, and nothing is stored or reaches shoppers until you save (and, for a widget, go live). Text you already wrote is never replaced. A member who can only view, and an agent version's read-only page, show what is stored, with no fill.
| Field | English | French | German |
|---|---|---|---|
| Display name | Assistant | Assistant | Assistent |
| Welcome message | Hi! How can I help you today? | Bonjour ! Comment puis-je vous aider ? | Hallo! Wie kann ich Ihnen helfen? |
| Indicator message | One moment, checking that for you… | Un instant, je vérifie cela pour vous… | Einen Moment, ich prüfe das für Sie… |
| Button text | Ask a question | Poser une question | Frage stellen |
| Starters heading | Need help? | Besoin d'aide ? | Brauchen Sie Hilfe? |
| Placeholder | Ask a question… | Poser une question… | Frage stellen… |
Italian, Spanish and Dutch have their own base texts in the same plain register.
If you empty a required text in a language, the language list shows a red dot, even while another language is on screen, and that language reads Empty in the menu. Under its field, on the character count's line: "Required in French" (with that language's name; "Required" on a one-language site). The save is refused until every language is filled again. The agent editor says "Add the name and the welcome message in every language to save.", the instruction editor "Add the indicator message in every language to save.", and the widget editor "Some fields need fixing before this can be saved."
Optional texts are never filled in for you and never block a save: a chat bubble's text, a button's first message, and a starter question's wording. Under an empty language, a line says what its shoppers get instead, for example "Empty, shoppers see the English text" or "Not offered in French". Each page describes its own field's outcomes.
Over the API
Creating an agent or an agent version through the REST API accepts a display name or welcome message that covers only some of the site's languages, and fills each missing language with the same base text the editor uses. A text you send is saved as you sent it, never replaced, and a version that omits its welcome messages keeps the previous version's.
Danger zone
The last card holds Delete site. See Delete a site.
Brand
The Brand tab describes your brand: what it sells and how it speaks, then how it looks. It holds three cards, written together by the tab's Save.
AI assistant context
The fields that ground the shopping assistant's answers:
- Vertical: a searchable list (Retail, Health & Beauty, Electronics, Food & Beverage, Home & Garden, Fashion & Apparel, Travel & Hospitality, or Other). Picking one gives every agent on this site vertical-specific guidance (e.g. a Health & Beauty site is told to stick to product features and never give medical advice). Other, or leaving it unset, adds no guidance. Optional.
- Information about your site: free text (up to 3000 characters) describing what you sell, your category, and your brand. Optional.
- Tone of voice: free text (up to 800 characters) describing how your brand sounds (warm and expert, playful, formal, and so on). Kept separate from Information about your site so the factual description and the style description can each be read, edited, or regenerated on their own. Optional.
Both text fields show a live character count under the field, and if you go over the limit the error names that field's maximum.
The site's name, URL and platform are edited on the Website tab.
How this reaches the assistant
The vertical's guidance, your site information, and your tone of voice are woven into every agent's system prompt on this site, ahead of that agent version's own instructions (broadest context first, most specific last): engine persona, then vertical, then site information, then tone of voice, then the version's instructions. Any layer you leave empty is simply skipped.
Generate a draft with AI
In the AI assistant context card's header, a Generate button drafts all three fields (vertical, information about your site, and tone of voice) for you. It works from the site's saved name and URL, as set on the Website tab. A site with no saved URL can't generate: the button stays off and says "Add a URL to generate and fill in these fields."
Click it and the assistant researches your site: a web search for its brand reputation, product categories, and tone of voice, plus a fresh, focused read of the site's own domain. Progress shows on the button itself: its label swaps to "Searching the web…", then "Reading the site…", then "Writing the summary…" while each step runs. It then writes a short site description (about 150 words, always in English regardless of your dashboard language), a one-to-two-sentence tone-of-voice description (also always in English), and picks the closest matching vertical from the list above, or Other when nothing fits clearly.
Both generated text fields stay purely descriptive: the assistant is instructed to never include customer sentiment, reviews, complaints, or any negative or critical statement about the site or brand, even if its research turns up some. This grounds the shopping assistant's own voice, not a review summary.
Review before saving
Generating only fills in the three fields of this card, so nothing is saved until you click Save. Read the draft and edit it as needed, the same as if you'd typed it yourself.
Brand identity
The Brand identity card holds your logo, favicon, colours and font. The assistant's conversation and your engagement widgets both pick from them, so you set your brand once here rather than per widget or per agent.
Images
- Logo: upload a PNG, JPEG, or WebP image, up to 2 MB. Optional. It is shown as the switcher mark when the site has no favicon. It is not shown in the chat itself: the pre-conversation screen and the header both show the served agent's own avatar and display name instead.
- Favicon: upload a PNG, JPEG, WebP, SVG, or ICO image, up to 2 MB. Shown as the browser tab icon on the public agent page, and as the round mark beside the site's name in the site switcher. It is the first image the switcher looks for.
Both fields work the same way. With no image set, the field is a drop area (Upload a logo, Upload a favicon): click it to browse or drop a file on it. With an image set, the field shows it with Replace (pick another file, or drop one on the image) and Remove, which empties the field. A note under each field says where the image shows in the site switcher. Nothing is stored until you save the tab.
Colours
- Primary colour: the conversation's header and buttons, including the product card's "Add to cart" and "View product" buttons. In a widget, a chat bubble's or a button's fill and the send button. Text and icons on it take your font colour when it reaches 4.5:1 contrast on the fill, and black or white otherwise, so a light or a dark primary both stay legible. In the conversation, the primary is also the default colour of links, as long as it reads at 4.5:1 on the background.
- Secondary colour: in the conversation, the default of the shopper's own message bubble and of the highlights: the numbered badge on a clarifying question, the highlighted column of a product comparison with its Recommended badge, and the badge on a product card. The text on them is your font colour when it reads there (4.5:1 contrast), black or white otherwise. In a widget, the starter questions.
- Background colour: the default of the conversation panel's background. The panel's text, borders, cards and secondary text (the AI disclosure line included) are worked out from the panel background and from your font colour, so they stay readable on whatever colour you pick. See How the panel takes your brand. In a widget, only where you pick Background under My brand as an element's colour, and as the base of the automatic secondary tint.
Font
- Font family: pick from a curated list of 20 Google Fonts (Roboto, Open Sans, Lato, Montserrat, Poppins, Inter, Source Sans 3, Oswald, Raleway, Merriweather, Nunito, Nunito Sans, Playfair Display, Ubuntu, PT Sans, Noto Sans, Work Sans, Rubik, Mulish, DM Sans), or Default. It applies to the conversation. Widgets don't use it: they take your storefront's own font.
- Font colour: the text of the conversation, and in a widget the Starters title and the text a shopper types. Independent from the primary colour. When it reads at less than 4.5:1 on your background colour, a warning under it gives the measured ratio. This applies to the default
#1A1A1Atoo, so a dark background with no font colour set is flagged. You can still save; the conversation then shows its text in black or white, whichever reads on your background.
Setting a colour
Each colour is a menu that spans the width of the card, the same control as the colour fields of a widget's Appearance tab. Closed, it shows a swatch and the colour in use:
- At its default, the hex code and the word default, for example "#1A1A1A · default".
- Set by you, the hex code and the word custom, for example "#DB2727 · custom".
Open, it lists two groups:
- Default: the default colour, with its swatch and hex code. Choose it to empty the colour, so the site goes back to the derived value below.
- Other: the custom colour you set, if there is one, then Custom colour….
Custom colour… opens a picker under the field, starting from the colour in use. Drag in it, type a hex code, or, in a browser that can pick a colour from the screen (Chrome and Edge, for example), use the eyedropper beside the hex code. The field follows the colour as you pick it. Choose Apply colour (the check), or press Enter in the hex code, to keep it. A colour you apply that is the same as the default leaves the field at its default, so an automatic secondary keeps following the primary. Cancel (the cross), Escape or a click outside the picker puts back what the field had before. Nothing is stored until you save the tab.
An empty colour is worked out for you
You don't have to fill every colour. A colour you leave empty is derived, and its field shows the value that will actually be used:
| Colour | When empty |
|---|---|
| Primary | #1A1A1A, a soft black |
| Secondary | A light tint of the primary colour (12% primary over the background) |
| Font | #1A1A1A |
| Background | White |
An empty colour stays empty when you save: a site whose fields were never set and one saved with empty fields look the same. The automatic secondary follows the primary, so changing the primary changes it too, even before you save; while the secondary is at its default, a line under it says so. To empty a colour you set, choose Default in its menu. The background is saved as white when you choose Default, and white reads as its default, "#FFFFFF · default".
A site with no colour set at all uses these derived values in the conversation, so its header and buttons are soft black rather than the dashboard's own green.
The conversation panel takes these colours through default rules: buttons on the primary, links on the primary when it reads at 4.5:1 on the background, the visitor bubble and highlights on the secondary, and every text in your font colour or black or white, whichever reads. To change one part of the panel on its own, use the Appearance page under Agents. A panel colour left at its default keeps following your brand.
Saving a new brand
A change to a colour or the font repaints everything that uses your brand on your live site, widgets included, without republishing anything. So the tab's Save first asks you to confirm in an Apply the new brand? dialog. A custom colour you set on a widget stays as it is.
If an A/B test is running on any widget of the site, the dialog names those widgets and warns that a colour change during the test can skew its results. You can still apply.
Once applied, a Brand updated on your live site message offers Undo, which puts your previous colours and font back. Undo doesn't restore images: a replaced or removed logo or favicon stays as you saved it. A save that only changes the logo or the favicon skips the dialog and the Undo.
Where the brand identity shows up
The conversation takes it on two surfaces: the playground, where only the
chat panel picks up the site's colours and font (the surrounding dashboard
sidebar/header keep your own light/dark theme); and the public agent page
(/s/{public - key}), where it applies to the whole page, favicon included.
The public page always renders in a fixed light theme, regardless of a
shopper's OS or browser dark-mode setting, since it's a merchant-branded
surface, not a themed dashboard page.
Where the brand identity applies to the embed
It also carries into the embedded web tag: the assistant runs there in an iframe served by iAdvize, styled with the same per-site values. The engagement widgets on your pages take the primary, secondary and font colours, and the background colour where you pick it for an element. They don't take the font.
Panel reduced state button
The Panel reduced state button card places and styles the floating button that brings a shopper back to a conversation in progress, on any page, while the panel is closed. When it shows and what it does on your storefront are described in The Panel reduced state button. Every field has a default, and with all of them at their default the button looks like a chat bubble you never styled, so you only need this card to move or restyle it.
Placement
- Position: Right (default) or Left, the side of the screen it docks to. It's independent of the panel side and of any chat bubble's position.
- Bottom offset (px) and Side offset (px): its distance from the bottom and from the side of the screen, a whole number from 0 to 200. Left empty, each uses 20.
- Under Advanced: Bottom offset, narrow screens (px) and Side offset, narrow screens (px), which replace the two offsets above on screens narrower than 768 px, for example to clear an add-to-cart bar pinned to the bottom of your mobile pages. Left empty, the main offset applies at every width. Advanced opens on its own when one of them is set, and when a value there is invalid on Save.
Appearance
| Field | Choices | Default |
|---|---|---|
| Background | Your brand colours, a custom colour, or None | Your Primary colour (soft black #1A1A1A when you set none) |
| Icon colour | Your brand colours or a custom colour. Never None, so the icon stays visible | Your Font colour, or Black or White when the font colour is hard to read on the background |
| Border | Your brand colours, a custom colour, or None | A Light border that appears only when the background would blend into a white page, None otherwise |
| Icon | AI sparkles, AI bubble, Minimal bubble, Rectangular bubble, Round bubble, Question mark | AI sparkles. There is no No icon: the button has no text, so it always shows one |
| Size | Small, Medium, Large (48 / 56 / 64 px) | Medium |
| Corners | None, Small, Medium, Large, Full (0 / 6 / 12 / 20 px, full) | Full: a circle |
| Shadow | None, Small, Medium, Large | Medium |
The colour fields work like a widget's: each names its default, groups the choices under Default, My brand and Other, and opens a picker for a custom colour. A field set to one of your brand colours follows it when you change your brand. A custom colour stays as it is. See Where a colour comes from. Under Position, Icon, Size, Corners and Shadow, a line reads Default or Set on this site. Picking the value that is already the default still counts as set on this site.
Saving. The card is part of the Brand tab's Save. A change to this card alone doesn't open the Apply the new brand? dialog. It reaches your storefront on the next page load, with nothing to republish, and is recorded in Admin activity as Branding changed, only when a value actually changed. Without the sites:edit permission, the card shows its fields disabled.
The same settings can be read and changed over the REST API and with the MCP server's set_site_resume_button tool.
Installation
The Installation tab puts the assistant on your site, then lets you check that it works. Its cards, in order:
- Site key: the site's public, non-secret key, shared by your AI Storefront and the tag. Copy it, or use Rotate key to issue a new one. Rotating asks for confirmation, and the old key stops working at once: an AI Storefront link you already shared no longer opens, and the installed tag needs the new key.
- Authorized domains: the origins where the tag may start a conversation. Anywhere else, it stays inactive. Your site's own URL is on the list for you and can't be removed. Adding or removing a domain waits for the tab's Save: a domain you've added shows Not saved yet until then. See Allow the origins that will embed it.
- Install the tag on your site: the snippet to paste into your storefront, already filled in with the site key. It only shows once the site has at least one saved authorized domain. It warns you when no agent answers on the site, with a link to Agents, where you put one live. See Embedding the assistant.
- Performance check: compare your storefront with and without the tag, at the same instant, and read real-world field data. See Measure it on your own storefront.
- Event check: the raw impressions and clicks recorded on product cards in the chat. See Event check below.
- Shopify pixel for add-to-carts and orders: only on a site with a Shopify connector. The code to paste in Shopify's Customer events to count the add-to-carts shoppers make on your own pages and report your completed orders, the time of the latest add and of the latest order received, and a reminder to paste the code again if you installed an earlier version. See Count add-to-carts and orders on your Shopify store.
Event check
The Event check card lists every impression and click recorded on this site's in-chat product cards: one row per event, not aggregated into any rate or rollup. It's developer output: telling apart real shopper activity from your own testing, and confirming that tracking is firing at all once the tag is installed. For a rolled-up rate or trend from this same data, see the Activity report's impressions & clicks chart.
An impression is recorded once per product card the assistant renders live (in the product list, product detail, or comparison view), the first time that card actually scrolls into view, not the moment it's rendered; a click is recorded for opening a product's page, adding it to the cart, or picking a variant. Nothing is recorded when you're reviewing a past conversation in the dashboard, only while it's actually happening, live in the playground or on an AI Storefront. The cart card's views and Go to cart taps are recorded too, but are not listed here: a cart is not a product.
Each row shows:
- Type: Impression or Click.
- Action: for a click, which one:
view_product,add_to_cart_intent, orvariant_select; blank for an impression. - Product: the id of the product the card was showing.
- Conversation: the title of the conversation the event happened in, trimmed to 40 characters (hover for the full title); "New conversation" when it has no title yet.
- Source: Playground, Web, or AI Storefront, the fastest way to spot your own test traffic mixed in with real shopper activity.
- Device: the shopper's device, resolved from their browser:
desktop,mobile,tablet, orunknown. - Occurred at: when the event was recorded.
Above the table, a Filter by type dropdown narrows the list to Impression or Click, and a Filter by source dropdown narrows it to Playground, Web, or AI Storefront. The two compose. There's no search box and no column sorting: the table is always sorted newest first, 20 events per page, with Previous / Next controls underneath when there's more than one page. Click any row to open that event's conversation.
Moved twice
This table was the Events tab under Conversations, then the
Diagnostics settings tab. Links to /dashboard/sites/{siteId} /conversations/events and /dashboard/sites/{siteId}/settings/diagnostics
still resolve: they redirect to the Installation tab and keep their filters
and page.
Site access
Site access (/dashboard/sites/{siteId}/settings/site-access) decides what you allow AISA to do with the site's pages. It holds four cards:
- Your site's pages: two rows in the order the work happens. Counting page views (which finds pages from traffic) and reading pages automatically (with its threshold inside the row).
- Starter questions: whether AISA writes starter questions for the pages it reads, and whether the questions it writes go live at once.
- Page signal: whether the tag reads the page a shopper is on.
- Add-to-carts on your pages: whether the Shopify pixel counts the add-to-carts shoppers make on your own pages and records the orders it reports. It has no effect without the pixel, and does not affect the orders the Shopify webhooks deliver.
Counting page views, reading pages, the page signal and counting add-to-carts are on by default.
Every switch and the threshold wait for the tab's Save: flipping a switch changes nothing until you click Save. Once saved, a change applies to what happens from now on: pages already found or read, and questions already written, are not touched. Reading stops at 25,000 pages a day per site, and generation at 12,500, counted in UTC, shared with everything a member asks for. A capped organization also has a monthly quota of reads and generations, and whichever runs out first stops the action: see Usage and limits. See Limits.
Finding pages from traffic
Counting page views
Count page views is on by default. The tag on your pages reports each page a shopper views, on every page load and every move to a new path in a single-page storefront. AISA adds one to a daily total for that page.
What a count holds: the site, the page's path, the UTC day, and the number of views. Nothing else.
- Not counted: the query string and the fragment (
/products/shirt?color=bluecounts as/products/shirt), any identifier of the shopper, their IP address, their browser, the page they came from, and the time of day. - Not counted at all: a shopper who objected to measurement, a report that does not say whether the shopper objected (sent by an older copy of the tag), a request whose browser names itself as a crawler, a link preview or a performance audit, a page on a local development address (
localhost, a loopback address), and a path that is not on your site, contains*or is longer than the page store accepts. - Bounded: a site can start counting at most 20,000 new paths a day. Past that, views of paths already counted that day still count, and new ones wait for the next day.
- Kept 90 days. The retention job deletes a count once its day is more than 90 days old.
The counts give each page its Views (30 d) figure: the sum over the last 30 UTC days for the page's path, recomputed once a day for the whole site. A page whose address carries a query string shows the views of its path. The Pages list is sorted by this figure by default.
Switch it off and nothing new is counted for the site, and no page is found from its traffic. The Pages list drops its Views (30 d) column, so it can no longer be sorted by views, and is sorted newest first. Every page's views figure drops to 0 at the next daily run, which is what the API, the MCP server and automatic reading see. The counts already held stay until they reach 90 days. Pages already found from traffic, pages from your sitemap and pages added by hand are not affected.
The shopper-facing data-usage notice describes these counts.
Adding pages from traffic
Once a day, every path of your site viewed at least 3 times over the last 30 days that is not in your Pages list yet becomes a page, as Not read, with the source Shopper traffic. The most viewed come first. Exclusions and the site's 50,000-page limit apply. A page added this way is never read on its own. robots.txt is not consulted (see How AISA fetches your pages).
This happens only while counting is on.
Automatic reading
Read pages automatically is on by default. Pages you add by hand are always read at once. Pages found by a sitemap import or from traffic wait as Not read until they reach the threshold below or you read them.
Once a day, after the views figures are recomputed, AISA reads the Not read pages whose views over the last 30 days reach the threshold:
- Threshold: minimum views over the last 30 days, a whole number from 0 to 1,000,000. 10 by default. The field shows under the switch as soon as the switch is on, saved or not, so turning reading on and setting its threshold take one Save.
- Order: most viewed first, then the oldest found first.
- How many: as many as are left of the site's 25,000 reads for the day, and at most 1,000 pages per run. A site with more Not read pages than that reads them over several days, or all at once with Read all pages. Pages that don't fit stay Not read and are considered again the next day. So does a picked page the run could not read after all (the day's reads ran out first, or the run could not start): it goes back to Not read, not Failed.
- Languages: a page whose guessed language is one the site doesn't serve is skipped. A page with no guessed language is read, and the read decides.
The reading limit left after the Not read pages goes to pages that are read already and have grown old: a page that reaches the threshold is read again once its last read is 7 days old, and every other read page once it is 30 days old. See Read pages again. A page already failed or unsupported is never picked.
A threshold of 0 makes every Not read page eligible, read most viewed first, and every read page counts as viewed for the 7-day rule. When page views are not counted for the site, every page's views figure is 0, so only a threshold of 0 picks a Not read page, and then the oldest found go first, and only the 30-day rule applies to read pages otherwise.
Sites that existed before this default keep a choice a member made. Every other site was switched on, and a site still on the old threshold of 50 moved to 10.
A page read automatically is like any other read page: if automatic generation (below) is on, it gets starter questions, switched off unless you switch generated questions on.
Starter questions
The Starter questions card holds two switches. Both are off by default, and both wait for the tab's Save like the others.
Generate starter questions automatically
- Off: you pick the pages and ask for questions yourself, from Pages.
- On: every page that finishes reading, by hand or automatically, in a language the site serves, gets starter questions written for it, without you asking. Whether they are switched on or off depends on the next switch.
If you switch it off while a batch of pages is still being read, nothing is generated for that batch.
An automatic generation never replaces questions shoppers can see. When a page already has generated questions that are switched on and that nobody edited or switched on or off, the run leaves the page alone and its history shows Its live questions were kept. Ask for new questions yourself from Pages if you want them replaced.
Switch generated questions on
- Off: every generated question is created switched off, for your review in Questions.
- On: generated questions are live on their page as soon as they are written, with no review. This covers the ones you ask for in Pages and the automatic ones. You can still switch each one off in Questions.
When both switches are on in the card, a warning says that questions reach shoppers with no review. A change applies to questions written from now on: questions already written keep their state. In the Generate and Read and generate dialogs, a member can switch the new questions on for one request while this setting is off.
Page signal
Read the current page is on by default. While it's on, the tag sends the address of the page a shopper is on (without its query string), its title and its description with each message, so the assistant can answer "is this in stock?" without the shopper naming the product. Switch it off and the assistant only knows what the shopper types and what your pages declare. See What the assistant reads from the page for what it covers and how to switch it off page by page.
Admin activity
Each change is recorded in Admin activity: Page view counting changed, Storefront add-to-cart counting changed, Automatic page reading changed (with the switch and the threshold after the change) and Automatic starter generation changed and Switch-on of generated starters changed. Each automatic reading run that reads at least one page writes Pages read automatically, and each automatic generation run writes Starter questions requested from pages, both attributed to System.
AI Storefront
The AI Storefront tab, the last one, manages the site's AI Storefront: a page we host with your brand, outside your site, where shoppers talk to your assistant and shop. It holds one card:
- Publish your AI Storefront: the switch that puts the page online. It waits for the tab's Save. It stays disabled while no agent answers on the site.
- A line naming the agent the AI Storefront serves, with a link to Agents to change it.
- Once published, the link, with Copy link and Open, and a line on the language it opens in: the shopper's browser language when the site offers it, otherwise the site's default language.
Its link is built from the site key, so Rotate key on the Installation tab changes it. See AI Storefront for publishing, sharing and what shoppers see.
Attach agents and connectors to a site
Agents and connectors each belong to one site, set once, at creation:
- Create an agent from inside a site's workspace (Agents → New agent) and it's attached to that site. See Agents.
- Create a connector from inside a site's workspace (Connectors → New connector) and it's attached the same way. See Connectors.
There's currently no way in the dashboard to move an existing agent or connector to a different site.
Delete a site
Open the site's Site settings → Website tab and use Delete site in the danger zone.
You can't delete an organization's last site. On the last one, Delete site is disabled and the page says "An organization keeps at least one site. Add another one before deleting this one." Add a site first, then delete the one you no longer want. The server refuses it too, so a stale tab or an API call gets the same answer: the dashboard shows that message, and DELETE /api/v1/sites/{siteId} returns a 409 with the code last_site. Nothing is changed.
Any other site can be deleted, whether or not it has been used. Once you confirm, the site is gone everywhere at once:
- It leaves your dashboard and the site switcher.
- The REST API answers
404under/api/v1/sites/{siteId}and leaves it out ofGET /api/v1/sites. The MCP server'slist_sitesno longer returns it. Deleting it a second time returns404. - Its tag, its AI Storefront and its public chat stop answering on your storefront.
- Shopify orders arriving for its connectors are ignored.
- It no longer counts toward your organization's site limit.
- The agent that answered on it stops answering. It stays stored with the site, like its other agents.
- Every test running on it ends first: its widget A/B tests, its agent A/B tests and its holdout. They are recorded as ended automatically, with the reason
site_deleted, and appear in Admin activity as System entries. If the deletion fails, the site stays live and the tests that already ended stay ended. A test can't be started on a deleted site. - Its open alerts close with "The site was deleted." They stay on the Alerts page's Resolved tab.
Its agents and connectors stay attached to the deleted site. They are not moved to another site and don't show up under any other site's workspace. Nothing is erased: the site's agents, connectors, widgets, pages, starter questions, events, orders and conversations stay stored. Admin activity keeps showing the site's name on past entries, and the MCP server's organization-wide conversation reads still return its conversations, with no site name.
Deleting a site can't be undone
There's no way to restore a deleted site from the dashboard or the API.
Managing sites over the API
Part of the Website and Brand tabs above is also available on the public REST API (not everything). See Authentication to create a key, then List sites for the full reference. Every other resource (agents, versions, conversations) nests under a site's id, e.g. /api/v1/sites/{siteId}/agents.
- Available over the API: listing, creating, reading, updating, and deleting a site: its name, platform, and URL. Update a site also lets you set the same AI assistant context fields described under AI assistant context above (vertical, site information, tone of voice). Note that updating always replaces name, platform, and URL together. There's no way to change just one of the three over the API.
- Site access:
autoGenerateStarters,switchOnGeneratedStarters,pageViewCountingEnabled,storefrontCartCountingEnabled,autoReadPagesandautoReadMinViews(see Site access) are on the site object, and Update a site can set them. So istagMonitoringEnabled, the switch of the tag check, which lives on the Installation tab. A body that carries only these settings changes them and nothing else, so you don't resend name, platform and URL. A body that carries them with other fields writes both, and records one audit entry for each change. The whole body is checked before anything is written, so an out-of-range threshold leaves the site as it was. - Panel colours:
panelColors(see Panel appearance) is on the site object, and Update a site sets it, alone or with other fields, under the same rules as the Site access settings. It replaces the stored colours whole, andnullclears them. The MCP server'sset_site_panel_appearancetool does the same. - Panel reduced state button:
resumeButtonon the site object holds every setting of the Panel reduced state button card,nullfor a setting left at its default. Update a site changes them partially: a key you send sets its value,nullreturns it to its default, and a key you leave out stays as it is (the same goes for each of the three colours insidecolors). It counts as a setting like the ones above: send it alone and nothing else changes. Out-of-range or unknown values are refused with nothing written. A change is recorded in Admin activity as Branding changed, only when a value actually changed, and reaches your storefront on the next page load. - Hosted page, default agent and analysis (read-only): the site object carries
hostedPage(enabled, and itslinkwhile the AI Storefront is published,nullotherwise),defaultAgentId(the agent that answers on the site,nullwhen none does) andanalysisState(running,completed,failedoracknowledged,nullfor a site that never ran the analysis from its address). The site key is not a field:linkis what a client needs. The same three fields are on the MCP server'slist_sites. Update a site doesn't set any of them. - Create a site from its address over MCP: the MCP server's
provision_site_from_urldoes what the Create a site steps do, for up to five addresses at once, andset_site_hosted_pagepublishes or takes down the AI Storefront. See Create a site from its address. - Applied at once: the API has no Save step, and neither have the MCP server's
set_site_hosted_page,set_site_automation,set_site_panel_appearance,set_site_resume_buttonandset_site_tag_monitoringtools. A successful update is live as soon as it returns, unlike the dashboard tabs, where a change waits for Save. - Dashboard-only: the site's languages, its brand identity (logo, favicon, brand colours, font), its authorized domains, the page signal, the AI Storefront's publishing over REST, rotating the site key, and which agent answers on the site have no REST endpoint. Manage them from the dashboard. The MCP server can publish or unpublish the AI Storefront with
set_site_hosted_page.