Chrome : Version 81.0.4044.138 (Official Build) (64-bit)
Expected behavior:
Ticket is assigned to a user ‘XYZ’. After a day ‘XYZ’ is made inactive, then I want the ticket to be reassigned to ‘ABC’.
I thought if a person is made inactive,ticket assigned to that person will be assigned to ‘nil’ but its not happening.
Is there a way to check the condition if owner is inactive then change the owner in scheduler or trigger.?
Actual behavior:
If user is inactive, tickets already assigned to him in open state doesn’t get reassigned to nil
Steps to reproduce the behavior:
Create a ticket and assign to a user
Make that user inactive
Before answering your question, one very important thing:
For the sake of your and Zammads security, please upgrade to the latest Zammad version asap. You’re vunerable to at least 14 security issues you may want to solve.
Zammad doesn’t update old tickets owners upon deactivating owners because of performance reasons.
Technically, if you deactivate a user with let’s say 10.000 Tickets, you’d potentially temporary strike the systems performance, as such a task is quite expensive in I/O and time terms.
There’s no logic available in Zammad that does the trick for you.
so what can you do…?
If you require to ensure to reset the owner to “nobody”, you could do so on the rails console.
Theoretically this shouldn’t be a regular task (except if you change your agents alot).
To do so you can run:
Untested command ahead
zammad run rails r "p Ticket.where(owner_id: User.find_by(email: '{email@inactive.agent}).id).each{|ticket| ticket.update(owner_id: nil) }
Replace {email@inactive.agent} with the agents mail address.
Technically you could also do that magically task via API if you’d want to.
Please, again, keep in mind that this may strike performance greatly.