Not revert to open on email

Infos:

  • Used Zammad version: 4.0.X
  • Used Zammad installation type: Package
  • Operating system: Ubuntu 20.04 LTS
  • Browser + version: N/A

Question:

I am currently using Zammad as a task tracker for myself at work and home because it fits in well with how my brain works and the ticketing systems I’ve used my whole life in IT.

One of the changes I made was to add a ticket state called “Queued” which are the tasks that I and my boss have chosen to be prioritised for the week, the issue I have is that any ticket in that state that gets updated via email reverts to an “Open” state.

Is it possible for Zammad to consider Queued an open state and not revert it or would I be looking at something like a trigger to switch it back?

Any help is appreciated.

Anybody have any ideas? Have done some more searching and tried a couple triggers but have not come up with a solution. Can switch to a tag but would rather it be a state.

What state type does queued have?
Technically if the state is of type closed or pending (reminder|action) you’ll have no chance.

The default behavior of Zammad is to reset a tickets state to open if the customer updates the ticket.

The state type is open. I made it open thinking exactly that but it didn’t seem to help.

By default Zammads open state is the default follow up state.
This means this will be the state to use -no matter which state is set- if an customer answers on your ticket.

Disclaimer: dangerous theory a head, may break your system

Below following is theory stuff and should never be used on productive systems unless proven to be working. Please note that the behavior we’re trying to get here is not officially supported by Zammad core and may change it’s behavior in the future. Below approach is not tested.

So the following command tells you if the state in question is a default follow up.
Note: You can only have one.

Ticket::State.find_by(name: 'open').default_follow_up

If you got the right state, you could set it to false and see what happens. Again untested and may break things.
Ticket::State.find_by(name: 'open').update(default_follow_up: false)