Configuration versions
How an agent's configuration is kept in versions V1, V2 and so on, how saving works, why a version locks once it has been live, and where to find every saved change.
An agent's configuration lives in versions. A version selects an ordered set of instruction blocks (reusable, site-wide instruction content) plus the engine it runs on, which connectors and chat tools it can use, its conversation starters, and its shopper-facing public identity (name and avatar). Versions let you change how an agent behaves while keeping every earlier configuration as history.
Versions and saved changes
An agent's versions read V1, V2, V3 and so on, numbered in the order they were created. A version holds every change saved on it: saving again on V2 records a new state of V2 and keeps the previous one. The change history lists every saved change with who saved it, so you can go back to any of them.
A saved state never changes once it's written. Every conversation stays tied to the exact configuration it ran on, even after you save again on the same version.
Versions that existed before this way of saving each became a version of their own, with their number unchanged.
Name a version
A version can carry a name of up to 60 characters, shown instead of its number wherever it's listed (for example "Winter sales"). Give it one when you save a new version, or later with Rename in the version's ⋯ menu on the versions page. Empty it with Rename to show the number again. A name is only a label: renaming changes no configuration, and it works on a locked version too.
Statuses
A version is Live or Offline:
| Status | What it means |
|---|---|
| Live | Shoppers on the site are served this version: its agent is the one that answers on the site, and it answers with it. |
| Offline | Shoppers aren't served it. That's every other version, including every version of an agent that doesn't answer there. |
One agent answers on a site at a time, with one version, so a site has at most one Live version across all its agents. Putting a version live, and taking the agent offline, are covered in Put an agent live or take it offline.
You read the same status in the header chip, the version switcher, the versions page and the Playground's version selector.
Locked versions
A version locks once it has been live. Its configuration then stays exactly as shoppers had it: you can't save on it any more, and your changes go into a new version instead.
- In the Save menu, Save on V2 is disabled on a locked version, with the reason underneath: "V2 has been live, so it is kept as it is. Your changes go into V3."
- On the versions page, a lock icon follows its name.
- Rename still works.
Among the versions that existed before locking, the ones that were live, or that had answered shoppers (a conversation outside the Playground), are locked. Every other one stays open.
A new agent's V1 stays open until it goes live
A new agent is created offline, so its V1 isn't locked: Save on V1 adds your changes to it, as on any open version. V1 locks the first time it goes live. An agent created before agents started offline had its V1 recorded as live at creation, so that V1 is locked and marked Was live, and its first saved changes went into V2.
Engine
Each version runs on an engine you pick in the editor. For a shopping assistant you choose between three tiers, AISA Light, AISA Standard and AISA Max, which trade response speed against answer quality. The selector lists them in two groups:
- Current: AISA Light 1.1, AISA Standard 1.1 and AISA Max 1.1.
- Previous: AISA Light 1.0 and AISA Max 1.0.
A new version starts on AISA Standard 1.1. AISA Standard 1.0 is no longer offered, and neither are AISA Extra Light 1.0 and 1.1: AISA Light 1.1 is the lightest tier. AISA Standard 1.2 is withdrawn for now: it isn't in the selector and you can't create a version on it. A version already running on one of these engines keeps it and keeps answering on it. If you open a version on AISA Standard 1.2 in the editor, the engine field opens on AISA Standard 1.1, since 1.2 can't be picked. Custom agents run on Custom 1.0, their only engine, so the selector is fixed and shows no groups.
On a version's read-only page the selector shows the one engine that version runs on.
The engine is part of each saved state, so it never changes on its own. To move an agent onto a different engine, pick it in the editor and save, on the same version or as a new one. A version that is locked takes the change as a new version.
Instructions
Instead of one free-text field, a version's guidance comes from instruction blocks it selects, in order; see Instructions for how to write and manage them. Here's how they fit into a version:
- Every site has a mandatory Général block, always active and forced-included in every version: the direct replacement for "just type your instructions." Blocks beyond it are optional.
- Each block is either Always active (its text is always composed into the system prompt) or Conditional (the assistant loads it only when its condition matches the conversation).
- A version pins the exact revision of each selected block at the moment you create it, never "whatever the block currently says." If a block you've selected has picked up a newer revision since, the picker flags it and offers update to latest for that one block, in what you're editing only.
- Reorder selected blocks with the up/down arrows; order sets both how they compose into the prompt and how they render in the picker.
- You can write a block without leaving the editing surface: New instruction creates one in a side panel and adds it to the selection, and the pencil on a selected block's row edits that block and re-pins what you're editing to the revision you just wrote. See Author a block from the editing surface for what that does and doesn't touch.
A version never follows a block's later edits
Editing a block adds a revision, but any saved state that already pinned an earlier one keeps using that exact text, including your live version. To give a version the newer content, use update to latest in the picker, then save. A version that is locked takes it as a new version.
Conversation starters
A version carries a welcome message per language the site has enabled (see Languages), a single alignment setting, and a switch deciding whether the welcome screen shows starter questions.
- Welcome message: up to 200 characters, shown above the composer on an empty conversation. Required in every language the site has enabled.
- Alignment: Left (the default), Center, or Right. Starter-question chips always stack in a single column, one below another. Alignment positions that column horizontally, it doesn't lay chips out side by side. It affects only the chips: the welcome message and the agent identity shown above it are always centered, regardless of this setting. One value for the whole version, the same across every language; there's no per-language alignment.
- Show starter questions: on by default. With it on, the welcome screen shows up to three chips from the site's starter-question library; with it off, none, whatever the library holds. Manage questions next to the switch opens that library.
Configure these on the Identity tab of the editing surface, in the Conversation starters section: pick the alignment once, fill in the welcome message, then set the switch. With a single language enabled, the message is a plain field. With two or more, a compact language list before the field shows the code of the language on screen (EN); open it to write another language. Your site's default language comes first, marked Main, and the form opens on it. When the editor opens, every empty language is filled with a base text ("Hi! How can I help you today?", "Bonjour ! Comment puis-je vous aider ?", "Hallo! Wie kann ich Ihnen helfen?") as an unsaved change. Empty a language and the list shows a red dot, the field reads "Required in French" under it, beside the character count, and Save is refused with "Add the name and the welcome message in every language to save." To fill the other languages from the one shown, use Translate into the other languages under the field: it replaces their messages, offers Undo for 8 seconds and saves nothing until you save the version. See Text in several languages.
The chips themselves aren't part of the version
This section holds the on/off switch only. The questions are written once per site in Engagement → Questions, are shared with your engagement widgets, and are not versioned: editing one applies immediately, on your live version included. That includes the questions AISA generates from your pages: they start switched off unless the site switches them on, so the switch here shows none of them until you switch them on in the library or in Site access. See Starter questions.
Nothing configured, nothing shown
The dashboard won't save a version with an empty welcome message, and a version created through the REST API gets the base text in every language it leaves out. A version saved before that rule can still lack one in a language. A language with no welcome message and no starter question carrying text in it renders a bare composer; there's no generic fallback message or default chips.
The welcome message, the alignment and the switch are part of each saved state, like a version's instruction blocks: a change applies once you save it, and only to the version you save it on. They apply to the AI Storefront and the embedded web tag, and you can preview the result per language from the Playground.
Per-version starter suggestions are gone
A version used to carry up to 3 suggestion chips of its own, per language. Those were removed and not migrated into the library: a version that had them lost them. Write them again in Engagement → Questions and every surface with the switch on picks them up. Versions that existed before the change have Show starter questions on, so a question you write there shows up on your live version without a new save.
Edit a version
There's no separate page for editing. Identity, Capabilities and Instructions are the editor: landing on any of the three means you're already editing, split across the three tabs:
- Identity: avatar, per-language display name (see Public identity), and conversation starters.
- Capabilities: one card each for connectors, chat tools, capabilities, and the engine, in that order.
- Instructions: a card holding the instruction block picker described above.
Switching between the three tabs never loses what you've typed: they share one form. A tab holding changes you haven't saved shows an amber dot.
Editing requires the Agents: Edit permission. Without it, the agent page shows no tabs: opening the agent takes you to the versions page, where each version opens on a read-only page, every field filled in and disabled, with Playground in its header. An old link or a typed address to Identity, Capabilities, or Instructions shows a no-access message under the agent's header, not the editor.
Which version the editor opens on:
- Opening the agent, or Identity, Capabilities or Instructions in its tab bar: the agent's most recent version, live or not, on its latest saved state.
- A version picked from the version switcher or a row of the versions page: that version, on its latest saved state.
- Restore in the change history: that earlier saved state. See Go back to an earlier state.
Save
The header holds one Save button. It opens two choices:
- Save on V2 ("Keeps working on this version."): adds your changes to the version you're on, as its newest saved state. Disabled on a locked version, with the reason.
- Save as a new version ("Creates V3. V2 stays as it is."): a dialog asks for an optional Name, then Save as V3 creates the next version. The version you started from doesn't change.
Unsaved changes, with an amber dot, sits before the button while you have edits that aren't saved. Save is unavailable until you've changed something: hover over it, or reach it with the keyboard, and a tooltip says "Nothing to save yet: make a change first."
Saving never puts anything live. Shoppers keep getting the live version until you go live with another one.
Go live never saves either: it sends the version's last saved state. While you have unsaved changes, the editor's Go live is blocked with "Save your changes first. Going live sends the last saved version." Save, then go live.
Some versions open with unsaved changes even before you touch anything, because the editor had to clean them up to make them editable: their engine is no longer offered and the editor switched to the default one, or an instruction block or a connector they used was deleted and the editor dropped it. Save to keep that cleaned-up version. Until you do, Go live stays blocked, so it never sends the stored version the editor no longer shows.
Leaving with unsaved changes
Navigating away from the Identity/Capabilities/Instructions surface while you have unsaved edits (to the versions page, or anywhere else) shows a dialog: Save and leave, Stay, or Discard and leave. Save and leave saves the way Save does: on the version you're on, or as a new version when it's locked. Closing the tab or reloading the browser while dirty triggers the browser's own "leave site?" prompt instead. Switching between the three tabs never triggers either.
When someone else saves while you edit
Two members can work on the same version, or one member in two tabs. The editor stays on the saved state it opened: Save on V2 adds your changes after that state, or after your own last save, and never on top of a save you haven't seen. This holds even when the page refreshes under you, for example after you create an instruction block or a connector from the editor.
While you edit, the editor checks for other saves once a minute while its tab is visible, and again when you come back to the tab. It doesn't check while one of your saves is in progress. When it finds one, a notice appears above the tabs. It never blocks editing, and your changes stay in the form:
- Someone saved on V2: "anna@example.com saved V2 5 minutes ago. Reload to see the latest.", with Reload.
- Someone created a newer version: "anna@example.com saved V4 2 minutes ago, a newer version than the one you are editing.", with Open V4. Only a version created after you opened the editor counts.
- V2 went live, or joined an A/B test: "V2 went live while you were editing, so it is kept as it is. Your changes go into V3." (or "V2 joined an A/B test while you were editing…"), with Save as V3.
The notice names who saved: a member by the email address their Admin activity entry recorded, "Someone" when none is on record (a save made by the system rather than by a member, or one so recent that its Admin activity entry isn't written yet), "An API key" for a save through the API, and "You saved V2 in another tab" for your own save from another tab. The time reads relative to the check, such as "5 minutes ago". A check that fails (you're offline, for example) shows nothing, and the next one tries again.
When a save can't be written
If Save on V2 finds that V2 changed since you opened it, nothing is written and a dialog says why. Your changes stay in the editor either way:
- Someone saved on V2 after you opened it: "V2 changed since you opened it", then who saved and when, such as "anna@example.com saved on this version 5 minutes ago." (or "You saved on this version in another tab…", "An API key saved on this version…"). Save as V3 keeps your changes as a new version. Reload opens the latest state of V2, after asking (see below).
- V2 went live in the meantime: "V2 can no longer be changed". Save as V3 keeps your changes as a new version.
Reload and switching versions ask first
Reload, from the dialog or the notice, replaces the form with the latest saved state of the version. With unsaved changes, it asks first: "Discard your changes?", with Cancel, Discard and reload, or Save as V3 to keep your changes as a new version instead. Without unsaved changes, it reloads straight away.
Picking another version in the version switcher, or Open V4 in the notice, loads that version in place of the form. With unsaved changes, the same dialog as leaving the page appears: Save and leave, Stay, or Discard and leave.
What the editor doesn't do
It never merges your changes with someone else's: Reload replaces the form
with the saved state, and Save as V3 keeps yours as they are. It doesn't
lock a version while someone edits it either, so two members can always open
the same version. A save through the REST API that finds the version changed
is still refused with version_changed,
as before.
Start a new version from another
Start a new version from it opens the editor prefilled from that version, and offers only Save as a new version: whatever you save becomes a new version, and the one you started from stays as it is. It's in a version's ⋯ menu on the versions page and in the header of its read-only page.
Preview in the editor
The editor has no preview of its own. Beside the form on Identity, Capabilities and Instructions, a card says there is no live preview of unsaved changes yet and links to the Playground for the agent. The Playground opens on the agent's default version. Pick the version to test in its Version selector. It tests that version's latest saved state, never your unsaved edits.
Test conversations are saved with Playground as their source, so you can reopen them under Conversations.
The versions page
Open the versions page with All versions in the agent's name menu in the header (there's no Versions tab). A switch at the top shows one of two views: Versions and Change history.
Versions
One row per version, most recent first, with its name or number, its Status, its Engine and when it was last Updated. Filter by engine, and sort any column. Next to the name:
- a lock icon when the version is locked;
- Tried: someone has chatted with it in the Playground;
- Was live: it was live before and isn't any more.
Click a row to open the version in the editor (or on its read-only page, without Agents: Edit). Its ⋯ menu holds Open, Playground (opens the Playground pinned to that version), and, with Agents: Edit, Rename, Start a new version from it, and Go live on any version that isn't live. Go live asks for confirmation first.
Change history
Every saved change, most recent first: when it was Saved, By whom, and on which Version. The version's newest state carries a Latest tag.
Here each row names the exact saved state, not just the version: V2.0 is the state Save as a new version opened V2 with, then each Save on V2 adds V2.1, V2.2, and so on, counted in save order. A named version keeps its name in front: Winter · V2.1. The same label shows wherever the exact state matters: a conversation's Details, the Agent versions filter of Reports and Conversations, and the MCP server's version and conversation tools. Everywhere else (the agents list, the version switcher, the versions list) a version reads as its name, or V2. The author comes from Admin activity; a save with no recorded author reads Unknown.
Each row has Open for a version's latest state, and Restore for an earlier one. Without Agents: Edit, every row has Open, which shows that saved state read-only.
Go back to an earlier state
Restore opens that saved state in the editor, under a notice that names the version and the date and time of that save, and ends with "Save to restore it." You can save it as it is, without changing anything:
- Save on V2 makes it V2's newest state again. The states saved since stay in the history.
- On a locked version, it saves as a new version.
Nothing reaches shoppers until that version goes live.