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

# Conversation status

> How ProVision tracks where a conversation is in the support workflow.

Status shows whether a conversation is active, waiting, resolved, or closed.

For exact request and response schemas, see
[Get conversation details](/api-reference/conversation/get-conversation-details) and
[Update conversation](/api-reference/conversation/update-conversation) in the API
Reference.

## Status values

| Status    | Business meaning                                 |
| --------- | ------------------------------------------------ |
| `new`     | Newly created conversation.                      |
| `open`    | Active conversation.                             |
| `snoozed` | Waiting until a specific future time.            |
| `on_hold` | On hold without an automatic return time.        |
| `solved`  | Resolved, but still able to move back to `open`. |
| `closed`  | Terminal. The conversation cannot be reopened.   |

## Lifecycle

Most conversations move between `new`, `open`, `snoozed`, `on_hold`, and `solved` as work
starts, waits, resumes, and resolves. `closed` is different: it is terminal. A non-private
reply outside ProVision creates a new follow-up conversation instead of reopening the
original.

## Snoozed conversations

Snooze is a status plus a future timestamp:

* Setting a snooze sets `status` to `snoozed`.
* Setting snooze records `snoozeUntil`, the time when the conversation should return to
  active work.
* `snoozeUntil` must be an ISO 8601 date-time in the future.
* A scheduled ProVision job automatically changes the status back to `open` when
  `snoozeUntil` is reached.
* ProVision does not clear `snoozeUntil` during automatic unsnooze. The timestamp is kept
  for history.

Because `snoozeUntil` is preserved, do not treat a non-empty `snoozeUntil` as proof that a
conversation is currently snoozed. Check `status === "snoozed"` first.

To snooze through the API, update both fields together:

```json theme={null}
{
  "status": "snoozed",
  "snoozeUntil": "2030-06-10T15:00:00.000Z"
}
```

## Closed conversations

`closed` is terminal. Replies outside ProVision, such as replies to an email thread, do
not reopen it.

When a non-private outside reply arrives for a closed conversation, ProVision creates a new
follow-up conversation and keeps a reference back to the original closed conversation for
context. Treat the original conversation as history and continue work from the follow-up.

## Deleted conversations

`deletedAt` is separate from status. A `null` value means the conversation has not been
deleted. A timestamp means the conversation was deleted at that time.

## Working with status in the API

* Read `status`, `snoozeUntil`, and `deletedAt` from
  [Get conversation details](/api-reference/conversation/get-conversation-details).
* Update `status` with
  [Update conversation](/api-reference/conversation/update-conversation) when your API key
  has `conversation:write`.
* When setting `status` to `snoozed`, include a future `snoozeUntil`.
* When `status` is `closed`, create or follow the new follow-up conversation instead of
  trying to reopen the original.
