Sessions and publishing
Every change to configuration is staged in an edit session, reviewed, and made live by publishing the session. Nothing reaches the agent on your website before that.
A session is a named set of staged changes to one workspace. Changes made in the dashboard and changes made by a connected assistant both land in sessions; the session is the same object either way.
What goes in a session
Chatbots and their goals, tools (workflows), custom agents, cards, knowledge-base pages, connectors, booking calendars and conversion rules. Related changes share one session, so a new goal and the tool it uses go live together or not at all.
Workspace settings, tasks and onboarding answers are not configuration and apply at once, outside any session. Clearing a workflow step's cached results applies at once too: it deletes cached results and no configuration.
Life of a session
Open
A session is opened with a name that says what the change is: "Support hours in About", "Refund goal". An assistant opens one with session:create; the dashboard opens one from the session chip.
Stage
Writes carry the session id and change the session's copy of each entity. The live configuration is untouched. A staged entity shows in the dashboard with a marker when the session is selected.
Review
session:diff lists every staged entity with its change, field by field. session:validate runs the entity, cross-entity and cascade checks without saving. A dashboard link with the session selected opens the change in place.
Publish or discard
session:save validates everything, saves it in one transaction, and removes the session. session:discard deletes the staged changes. Both are through the algomo_publish tool, which clients confirm with you by default.
Testing before publishing
A session can be tried before it is live. A test conversation started with the session id answers from the staged configuration. The messenger on your own site can run against a session too: open any page with ?algomo-draft=<session id>, and the widget on that tab uses the staged configuration for the rest of the visit. Conversations from either are test conversations and never appear in your customer list.
Conflicts
A save checks that nothing it is about to overwrite changed since the session was opened. If someone saved the same entity meanwhile, the save is refused with the conflicts listed and the session is left intact. Stage the change again in a fresh session.
Who sees sessions
Everyone in the workspace, in the dashboard and through any connected assistant. Two people can work on one session, and either can publish it. A session stays until it is published or discarded; disconnecting an assistant does not remove the sessions it opened.