> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callkaro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Versions and Publishing

A chat agent is not one configuration — it is a set of **versions**, of which exactly one is **published**. Live conversations always run the published version, so you can edit freely without touching what customers are talking to.

## The model

| Concept               | Meaning                                                                     |
| --------------------- | --------------------------------------------------------------------------- |
| **Version**           | One complete configuration: prompt, model, settings, functions, webhook     |
| **Current version**   | The one open in the builder — what Save writes to and what Test Chat runs   |
| **Published version** | The one serving live traffic. Shown as a green tag in the Chat Agents table |

An unpublished edit changes nothing for customers. That is the point: you can rewrite the prompt at 2pm and publish it at 6pm.

## Working with versions

<Steps>
  <Step title="Create a version before a risky change">
    Use the version selector in the header. The new version starts as a copy of the current one, so you branch rather than overwrite.
  </Step>

  <Step title="Edit and save">
    **Save** writes to the current version only. The published version is untouched.
  </Step>

  <Step title="Test">
    The Test Chat always runs the version open in the builder — so you are testing the edit, not the live agent.
  </Step>

  <Step title="Publish">
    Publishing points live traffic at that version. From the next inbound message on, customers get the new behaviour.
  </Step>
</Steps>

<Warning>
  **Publish ships the last saved version, not what is on screen.** If you have unsaved edits the builder will stop you — save first, then publish.
</Warning>

## Rolling back

Select the previous version and publish it. Nothing is deleted by publishing, so a bad change is one publish away from being undone — which is the reason to create a version instead of editing the live one in place.

## Saving safely

The builder sends **only the fields you actually changed**, so two people working on different panels do not overwrite each other's untouched settings. If someone else changed the same version while you had it open, you are shown the conflict rather than silently winning.

An **Unsaved Changes** notice appears whenever the current version differs from what is stored, and returns on every further edit until you save.

## Related

<CardGroup cols={2}>
  <Card title="Create a chat agent" icon="plus" href="/chat-agents/create-a-chat-agent">
    The builder and its panes
  </Card>

  <Card title="Testing" icon="vial" href="/chat-agents/testing">
    Test the version you are about to publish
  </Card>
</CardGroup>
