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

# State and sessions

> How your agent stays stateful — separate conversations per channel, per-user workflow progress, and configuration history you can roll back.

Your agent is stateful in a few ways: the **configuration** that defines it,
the **conversations** it holds, the **per-user progress** it tracks through a
workflow, and the **memory** it keeps per user. This page describes what's kept
and where you manage it.

## Conversations per channel

Each channel keeps its own conversations, and every conversation is retained in
full. The same user returning on the same channel — the same WhatsApp sender,
the same email address — resumes their existing conversation, even after a
restart or update. A brand-new dashboard or web chat starts a fresh
conversation each time.

Every conversation from every entry point — web, widget, API, A2A, email,
schedules, webhooks, IM, and more — shows up in the owner
[Inbox](/sidebar-menu/conversations) in one place, and its full transcript and
turn-by-turn record are viewable together (see
[Observability and debugging](/runtime/observability)).

The same person on two different channels — say Telegram and email — is treated
as two separate identities, with separate conversations and separate memory.
They're unified only for viewing, in the Inbox and Contacts pages. The
per-channel identity rules are documented in [User memory](/user-memory).

## Per-user workflow progress

If your agent uses stages and goals, each user's progress is tracked
separately, alongside their memory:

| Tracked          | What it holds                                              |
| ---------------- | ---------------------------------------------------------- |
| Stage position   | Which stage the user is currently in                       |
| Collected values | Values gathered in earlier stages, available to later ones |
| Goal results     | Whether each goal has been met for the current stage       |
| Stage history    | A record of every stage change                             |

You author the workflow — stages, goals, and how a user moves between stages —
on the [Purpose page](/sidebar-menu/purpose), and configure goal checks on the
[Goals page](/sidebar-menu/goals). A user only advances past a stage's required
goals once those goals are met.

## Configuration history

Every time you save a configuration section, the previous version is kept, so
you can roll back. The most recent versions of each section are retained,
covering every save from the [agent editor](/configuration), the Designer
Chat, template application, and restores themselves.

* **Identical saves don't add clutter** — saving unchanged content is skipped.
* **Restores are safe** — a restore is checked against the current section
  format before it's applied, and the state before the restore is itself saved,
  so a restore is undoable.
* **Clones start fresh** — cloning an agent copies its configuration but not its
  history.

You access and restore history from the [agent editor](/configuration).

## What you can rely on

* **Your saves are never left half-written.** A restart mid-save leaves either
  the old version or the new one — never a corrupted state.
* **Configuration edits take effect immediately**, with no restart.
* **Approved actions run at most once**, even across a retry — see
  [Tool execution and reliability](/runtime/tool-execution).

<Warning>
  A completed external action — a sent email, an IM message, a write through a
  connector — has no undo. If the surrounding turn later fails, that action still
  stands. Design flows so that irreversible actions happen as late in a turn as
  possible, and see [Tool execution and reliability](/runtime/tool-execution) for
  the consent gates and guards that control when they fire at all.
</Warning>

## Related pages

* [Runtime overview](/runtime/overview) — the harness at a glance
* [Durability and recovery](/runtime/durability) — what survives a restart
* [User memory](/user-memory) — per-channel identity and memory
* [Purpose: stages and branches](/sidebar-menu/purpose) — authoring the workflow
