# Ticket lifecycle

> How a ticket moves from creation to closure: replies, resolution, scheduled closure, scheduled deletion, and reopening.

Source: https://joely.io/documentation/tickets/lifecycle
Last updated: 2026-10-20

This page walks through the life of a ticket from the moment it is created to the moment it disappears. For the exact rules per status, see [Ticket statuses](https://joely.io/documentation/tickets/statuses.md).

## Creation

- **Customers** create tickets from the customer portal, optionally linking a purchased Tebex package so staff immediately know which product the request is about.
- **Staff** with the Create tickets permission can also create tickets from the dashboard.

A new ticket starts in the **Open** status.

## The conversation

Both sides post messages in the ticket thread:

- **Customers** can reply and edit their own messages on any status except **Closed**.
- **Staff** can reply on any status. Staff can also post **internal notes** that customers never see (requires the Send internal notes permission).
- Status changes along the way (**In progress**, **Awaiting customer**, **Required test**, **Required action**) are made by staff or by [automation workflows](https://joely.io/documentation/automations/actions.md#set-status); a customer reply never changes the status by itself, except to cancel a closure an automation scheduled with **Cancel if the customer replies** (the ticket goes back to **Open**, see [scheduled closure](https://joely.io/documentation/tickets/statuses.md#automatic-transitions)).

The creator can invite other customers to the ticket via [invite links](https://joely.io/documentation/portal/overview.md); those links stop working once the ticket is resolved or closed.

## Ways a ticket ends

There are four paths to closure:

### 1. Staff resolves or closes directly

Staff changes the status to **Resolved** or **Closed** from the dashboard. **Resolved** is a soft landing: the customer can still reply if something is not actually fixed. **Closed** is final: customer replies are blocked.

### 2. Staff schedules a closure

Staff can schedule a closure for a future date. The ticket moves to **Closure scheduled** and a system message announces when it will close. When the time passes, the ticket is closed automatically and a system message is added.

The date is pre-filled with a configurable default delay (set in **Ticket settings**, defaults to 24 hours), and staff can always adjust it before confirming. The default only pre-fills the form, it never closes a ticket on its own.

While the closure is pending:

- Staff can still change the status (which cancels the scheduled closure), but cannot schedule a second closure on top.
- The customer can **close the ticket immediately** instead of waiting.
- A customer reply keeps the closure, unless an [automation workflow](https://joely.io/documentation/automations/actions.md#schedule-closure) scheduled it with **Cancel if the customer replies**: then the reply cancels it and the ticket goes back to **Open**.

### 3. The customer requests closure

From the portal, the customer can request closure on any active ticket. The ticket moves to **Pending closure** immediately, a system message is posted, and a satisfaction survey is created right away. Staff then confirms by closing the ticket (or moves it back to an active status if there is more to do).

A closure request is rejected when the ticket is already **Closed**, **Pending closure**, or **Closure scheduled**.

### 4. Staff schedules a deletion

Staff can schedule a ticket for permanent deletion at a future date. Two things happen immediately:

1. The ticket is **closed right away** (if it was not already closed).
2. A system message announces the scheduled deletion date.

The actual deletion happens automatically at the scheduled time. Until then, staff can cancel the scheduled deletion; the ticket stays closed but is no longer marked for deletion. Deletion is permanent: the ticket and its messages are removed.

## Reopening

A **Resolved** or **Closed** ticket is not gone; staff can move it back to any active status at any time:

- Reopening deletes the satisfaction survey if the customer has not submitted it yet; a new survey is created the next time the ticket reaches a survey-eligible status.
- On **Resolved** (but not **Closed**), customers can simply keep replying, which is the usual signal that the issue was not fully fixed.

## Side effects along the way

| Event | Side effect |
|-------|-------------|
| Ticket enters **Resolved**, **Closed**, **Pending closure**, or **Closure scheduled** | A CSAT survey is created for the customer |
| Ticket leaves one of those statuses | The survey is deleted if not yet submitted |
| Ticket enters **Resolved** or **Closed** | The ticket is removed from all customers' favorites |
| Ticket is **Resolved** or **Closed** | Invite links stop working |
| Deletion is scheduled | The ticket is auto-closed and a system message is posted |
