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

# Ticket lifecycle

> How Headless opens, claims, transcribes, and closes a ticket and what is retained after the channel is deleted.

The implemented workflow has four stages: opening from the panel, claiming the case, generating a transcript on request or at close, and closing with delayed channel deletion. The ticket record remains associated with the server after the scheduled deletion.

**1. Open**

A member presses the panel button. If `require_reason` is enabled, they submit a required reason and optional text evidence. Headless creates a private channel and persists its record.

**2. Claim**

A configured support role or a member with `Manage Channels` uses the claim control. The claim is stored on the active ticket.

**3. Generate a transcript**

`.ticket transcript` or closing attempts to send a transcript of the selected recent messages to the explicit log channel. Transcripts must be enabled.

**4. Close**

`.ticket close [reason]` closes the record, attempts the transcript and closing DM, posts the closed-ticket control, and schedules channel deletion according to `close_delete_seconds`.

## Transcript delivery

The log channel must be explicitly configured with `.ticket log #channel`; the panel channel is not a fallback. `.ticket transcript` creates a file with up to `transcript_limit` recent messages. If transcripts are disabled or no usable log channel exists, Headless has nowhere to send it.

### Configure the log destination

```headless-command Syntax theme={null}
.ticket log <channel>
```

```headless-command Example theme={null}
.ticket log #ticket-logs
```

### Generate a transcript

```headless-command Syntax theme={null}
.ticket transcript
```

```headless-command Example theme={null}
.ticket transcript
```

## Close a ticket

`.ticket close` closes the record, attempts transcript generation and closing DM delivery, posts the closed-ticket control, and schedules channel deletion. If transcript or DM generation/delivery fails, Headless does not revert the closed state; those notifications are best-effort.

```headless-command Syntax theme={null}
.ticket close [reason]
```

```headless-command Example theme={null}
.ticket close Resolved
```

> [!WARNING]
>
> `.ticket close` and `.ticket transcript` do not perform a separate staff check. Any member with access to the private channel can invoke them; limit access with Discord overwrites and protect the log channel.

## Deletion delay

The initial delay is 10 seconds; the accepted range is 0–86,400 seconds. `0` requests immediate channel deletion. The closed record remains in per-server storage.

```headless-command Syntax theme={null}
.ticket close-delay [seconds=10]
```

```headless-command Example theme={null}
.ticket close-delay 3600
```

> [!WARNING]
>
> A zero-second delay requests immediate deletion. The stored record does not preserve the deleted Discord channel or its messages.

## Features not implemented

There are no configurable inactivity timers, inactivity reminders, auto-close, reopen, move, independent auto-delete, or reopen history. Delayed deletion only happens after a ticket is closed.

## Related pages

* [Commands and permissions](/docs/en/server/tickets/commands.md)
* [Options](/docs/en/server/tickets/options.md)
* [Access and privacy](/docs/en/server/tickets/access.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.