Why is the customer's reply not changing the ticket status to open?

Question

Why didn't my ticket reopen with a comment from the end user?

Answer

When an end user comments on a pending, solved, or on-hold ticket, the ticket status automatically changes to Open as part of the inborn system ticket rules.

Quick Diagnosis: Open the ticket in Zendesk, click Events (top right), and check what caused the last update:

A trigger name is listed: A trigger changed the status back to Solved or Pending.

Shows "By Web Service": An API update occurred using agent credentials.

Shows an agent's name: The requester has agent/admin permissions.

A new follow-up ticket was created: The original ticket was already Closed (Closed tickets cannot be reopened by design).

There are three likely causes for this behavior:

A trigger changed the status

A trigger may have run immediately after the user's reply and reset the status back to Solved or Pending.

How to fix: Check the ticket events to see which triggers executed during that update, then adjust the trigger conditions to prevent them from firing on end-user replies.

API updated the ticket using agent credentials

If updates made via the API display a By Web Service message in ticket events, the endpoint used determines whether the ticket reopens automatically:

Requests Endpoint (End Users): Updates submitted via the Requests API automatically set the ticket to Open because the actor is an end user.

Tickets Endpoint (Agents/Admins): Only agents or admins can use the Tickets API. Even if you pass an end user's author_id with the comment, the system treats the update actor as an agent—so the ticket will not automatically reopen.

How to fix: When updating tickets via the Tickets API, explicitly pass the status parameter in your request body:

{
"ticket": {
"comment": { "body": "User reply text", "author_id": 12345 },
"status": "open"
}
}

To verify if an update used the Tickets endpoint with a different author_id, inspect the ticket audit log at api/v2/tickets/TICKET_ID/audits.json and compare the audit author ID against the comment author ID.

The requester is an agent

By design, when an agent or admin replies to a ticket where they are also listed as the requester, the ticket status remains in whatever status was selected when submitting the reply.

How to fix: Create a custom trigger to force tickets requested by agents to reopen when updated:

Go to Admin Center > Objects and rules > Business rules > Triggers.

Under Meet ALL of the following conditions, add:

Ticket | Is | Updated

Comment | Is | Present

Requester | Is | (current user)

Current user | Is | (agent)

Status | Not changed | Solved

Under Actions, add:

Status | Open

Agents replying via email can also include the #open command using the Mail API to reopen the ticket upon update.