HelpWP registers eight ticket statuses. Most transitions happen automatically based on who replied last or what an agent did; the rest are manual.
The full list
| Status | Slug | Meaning |
|---|---|---|
| Open | open | Just submitted. No one has replied yet. |
| In Progress | in-progress | Agent has replied. Ball is in the client’s court. |
| Waiting | waiting | Client has replied. Ball is in the agent’s court. |
| On Hold | on-hold | Paused for an internal reason (waiting on a third party, etc.). |
| Resolved | resolved | Agent marked the ticket as resolved. |
| Reopened | reopened | Client commented after the ticket was already resolved or closed. |
| Cancelled | cancelled | Closed without resolution by client or agent. |
| Closed | closed | Fully closed; no further action expected. |
Automatic transitions
Two transitions fire on every ticket comment unless the current status is Resolved, Closed, or Cancelled:
- Client replies -> status flips to Waiting.
- Agent replies -> status flips to In Progress.
If the ticket is already in a terminal state (Resolved, Closed, Cancelled) when a client replies, the auto-transition is skipped — the status does not change automatically. An agent must manually move the ticket to Reopened (or any other status) if they want to re-open it.
What does not auto-transition
- Moving from In Progress / Waiting to Resolved is always manual. An agent decides the issue is done.
- Moving to On Hold is manual.
- Moving to Cancelled or Closed is manual.
The hook
Every status change fires the action helpwp-tickets-ticket_status_changed with three arguments: new status, old status, ticket. Email notifications and the AI auto responder cancellation logic listen on this hook.
The transition is only fired when both the old and the new statuses exist in HelpWP’s status list, which is why moving a ticket to Trash does not fire it.
Bypassing the auto-transition for a single comment
The filter helpwp_auto_status_transition_on_comment lets you opt a comment out of the auto-flip. The auto responder uses this so its bot replies do not flip the ticket.
Was this doc helpful?