Statuses and lifecycle
Five statuses, what each means, and when they transition.
Every ticket sits in exactly one of five statuses:
| Status | Meaning |
|---|---|
| Open | New or reopened, no agent has replied yet. |
| Pending | Waiting on something external (customer reply, third-party fix). |
| In progress | An agent has replied at least once; active conversation. |
| Resolved | Agent thinks it's done; customer hasn't confirmed. |
| Closed | Done. No longer active. |
Default transitions
- Create →
Open(orIn progressif it came from chat-to-ticket conversion — see Convert chat to ticket). - First public reply by agent →
Open→In progress. Also stampsfirst_response_at. - Customer reply while Resolved or Closed → reopens to
Open. Clearsresolved_at/closed_at. - Agent sets status manually to any of the five values. We auto-stamp
resolved_at/closed_atif those weren't already set.
Internal notes never change status. They're conversation state, not lifecycle state.
When to use each
Open — nobody has touched it yet. Useful as a filter ("who hasn't been responded to?").
Pending — there's nothing for you to do until something external happens. Use it generously: it's the difference between "waiting on the customer" and "stalled because nobody noticed". Marking a ticket Pending takes it out of your active queue without closing it.
In progress — active back-and-forth. Most of your tickets live here.
Resolved — you believe the issue is fixed, but the customer hasn't confirmed. Useful for SLA reporting (resolved-time isn't necessarily closed-time).
Closed — done done. Customer either confirmed, or you waited long enough that you're declaring victory.
What about auto-resolve and auto-close?
Not built yet. Tickets stay in their current status until someone moves them. Two rules we'll likely add later:
- Auto-resolve after N days in In progress with no customer reply.
- Auto-close after N days in Resolved with no customer reply.
Until then, set up a weekly cleanup hour to walk the queue.
Tracking time
The first_response_at, resolved_at, closed_at timestamps are stamped automatically. They're shown on the ticket page and included in the CSV export. SLA reporting from these is on the roadmap.
What changes when a ticket hits Resolved or Closed
- The customer portal renders a 1-5 star "How did we do?" prompt — see Customer feedback (CSAT). One rating per ticket.
- Closed tickets remove the reply form on the customer portal entirely. Resolved tickets still allow replies (a reply reopens the ticket).
- If the customer sends a follow-up after Resolved or Closed, the ticket auto-reopens to Open and
resolved_at/closed_atare cleared. Any existing CSAT rating stays on the ticket; the customer can't re-rate the new round of work.