Unable to close a ticket as non-owner due to rule that reopens a ticket upon non-owner ticket update.
Currently, we have a rule set up so that if a ticket is closed, and a user responds to the ticket via email or adds a comment, it will automatically reopen the ticket and set it to Reopened status.
This is all hunky dory, however with this rule enabled, only the owner of the ticket can close it due to the rule to applying to any changes by non-owners. So, say if Tech A is on vacation and Tech B wants to close Tech A's ticket, Tech B has to take ownership and close it even if Tech B did nothing for the ticket. If not, attempting to close the ticket will place it in Reopened status.
Is there a way to modify the rule so the flag to change the status to Reopened only applies if the ticket Submitter modifies the ticket, instead of any non-owner?
Here's the content of the rule:
SELECT SQL:
select distinct HD_TICKET.ID,
HD_TICKET.OWNER_ID as OWNER_ID,
HD_TICKET.ID as TICKNUM,
HD_TICKET.TITLE,
HD_STATUS.NAME AS STATUS_NAME,
HD_STATUS.STATE as STATE,
OWNER.USER_NAME as OWNER_NAME,
OWNER.FULL_NAME as OWNER_FULLNAME,
OWNER.EMAIL as OWNER_EMAIL,
UPDATER.USER_NAME as UPDATERNAME,
UPDATER.EMAIL as UPDATEREMAIL
from (HD_TICKET, HD_STATUS)
left join HD_TICKET_CHANGE on HD_TICKET_CHANGE.ID = <CHANGE_ID>
left join HD_TICKET_CHANGE_FIELD on HD_TICKET_CHANGE_FIELD.HD_TICKET_CHANGE_ID = HD_TICKET_CHANGE.ID
left join USER OWNER on OWNER.ID = HD_TICKET.OWNER_ID
left join USER UPDATER on UPDATER.ID = HD_TICKET_CHANGE.USER_ID
where HD_STATUS.ID = HD_TICKET.HD_STATUS_ID
and HD_TICKET_CHANGE.HD_TICKET_ID = HD_TICKET.ID
and HD_TICKET_CHANGE_FIELD.FIELD_CHANGED !='SATISFACTION_RATING'
and HD_TICKET_CHANGE_FIELD.FIELD_CHANGED !='SATISFACTION_COMMENT'
and HD_STATUS.STATE = 'closed'
and (UPDATER.ID <> OWNER.ID or OWNER.ID is NULL)
and UPDATER.ID > 0
UPDATE SQL:
update HD_TICKET as T, HD_STATUS as STATUS
set T.HD_STATUS_ID = STATUS.ID,
T.RESOLUTION = CONCAT(T.RESOLUTION,'
Reopened'),
T.TIME_OPENED = IF(STATUS.STATE = 'opened', NOW(), T.TIME_OPENED),
T.TIME_CLOSED = IF(STATUS.STATE = 'closed', NOW(), T.TIME_CLOSED),
T.TIME_STALLED = IF(STATUS.STATE = 'stalled', NOW(), T.TIME_STALLED),
T.SATISFACTION_RATING = IF(STATUS.STATE = 'closed', NULL, T.SATISFACTION_RATING),
T.SATISFACTION_COMMENT = IF(STATUS.STATE = 'closed', NULL, T.SATISFACTION_COMMENT)
where STATUS.NAME = 'Reopened' and
T.HD_QUEUE_ID = STATUS.HD_QUEUE_ID and (T.ID in (<TICKET_IDS>))
This is all hunky dory, however with this rule enabled, only the owner of the ticket can close it due to the rule to applying to any changes by non-owners. So, say if Tech A is on vacation and Tech B wants to close Tech A's ticket, Tech B has to take ownership and close it even if Tech B did nothing for the ticket. If not, attempting to close the ticket will place it in Reopened status.
Is there a way to modify the rule so the flag to change the status to Reopened only applies if the ticket Submitter modifies the ticket, instead of any non-owner?
Here's the content of the rule:
SELECT SQL:
select distinct HD_TICKET.ID,
HD_TICKET.OWNER_ID as OWNER_ID,
HD_TICKET.ID as TICKNUM,
HD_TICKET.TITLE,
HD_STATUS.NAME AS STATUS_NAME,
HD_STATUS.STATE as STATE,
OWNER.USER_NAME as OWNER_NAME,
OWNER.FULL_NAME as OWNER_FULLNAME,
OWNER.EMAIL as OWNER_EMAIL,
UPDATER.USER_NAME as UPDATERNAME,
UPDATER.EMAIL as UPDATEREMAIL
from (HD_TICKET, HD_STATUS)
left join HD_TICKET_CHANGE on HD_TICKET_CHANGE.ID = <CHANGE_ID>
left join HD_TICKET_CHANGE_FIELD on HD_TICKET_CHANGE_FIELD.HD_TICKET_CHANGE_ID = HD_TICKET_CHANGE.ID
left join USER OWNER on OWNER.ID = HD_TICKET.OWNER_ID
left join USER UPDATER on UPDATER.ID = HD_TICKET_CHANGE.USER_ID
where HD_STATUS.ID = HD_TICKET.HD_STATUS_ID
and HD_TICKET_CHANGE.HD_TICKET_ID = HD_TICKET.ID
and HD_TICKET_CHANGE_FIELD.FIELD_CHANGED !='SATISFACTION_RATING'
and HD_TICKET_CHANGE_FIELD.FIELD_CHANGED !='SATISFACTION_COMMENT'
and HD_STATUS.STATE = 'closed'
and (UPDATER.ID <> OWNER.ID or OWNER.ID is NULL)
and UPDATER.ID > 0
UPDATE SQL:
update HD_TICKET as T, HD_STATUS as STATUS
set T.HD_STATUS_ID = STATUS.ID,
T.RESOLUTION = CONCAT(T.RESOLUTION,'
Reopened'),
T.TIME_OPENED = IF(STATUS.STATE = 'opened', NOW(), T.TIME_OPENED),
T.TIME_CLOSED = IF(STATUS.STATE = 'closed', NOW(), T.TIME_CLOSED),
T.TIME_STALLED = IF(STATUS.STATE = 'stalled', NOW(), T.TIME_STALLED),
T.SATISFACTION_RATING = IF(STATUS.STATE = 'closed', NULL, T.SATISFACTION_RATING),
T.SATISFACTION_COMMENT = IF(STATUS.STATE = 'closed', NULL, T.SATISFACTION_COMMENT)
where STATUS.NAME = 'Reopened' and
T.HD_QUEUE_ID = STATUS.HD_QUEUE_ID and (T.ID in (<TICKET_IDS>))
4 Comments
[ + ] Show comments
Answers (2)
Answer Summary:
Please log in to answer
Posted by:
chucksteel
6 years ago
Top Answer
If you only want your rule to reopen the ticket if the submitter makes a change, then change this:
and (UPDATER.ID <> OWNER.ID or OWNER.ID is NULL)
and UPDATER.ID > 0
and UPDATER.ID > 0
To this:
and UPDATER.ID = HD_TICKET.SUBMITTER_ID
Comments:
-
Awesome! Thanks! I'll give it a try! - JerradH 6 years ago
-
So I've edited it and saved it, but after enabling the rule, it reverts back to the line:
and (UPDATER.ID <> OWNER.ID or OWNER.ID is NULL)
and UPDATER.ID > 0
Also, now when I email with [TICK:#####] at the beginning of the subject line, it's not appending my email to the comments of the ticket. - JerradH 6 years ago-
Are you sure you didn't duplicate the rule? You shouldn't have to enable it again after making a change. - chucksteel 6 years ago
-
Nope, wasn't duplicated. It now appears to be sticking. It was strange. I'll likely delete it and recreate it if happens again.
I figured out the email issue. Did some testing and things look to be working fine now. Thanks for your help! - JerradH 6 years ago
Posted by:
tbatchelder
1 year ago
We are running into a similar issue with this reopen rule, but would like it so that someone who doesn't own the ticket can close it. Currently, ONLY the owner of the ticket can change the status to closed. If someone who is not the ticket owner tries to change the status to Closed and then saves changes, the status reverts back to Reopened. I'm guessing we need to make a change to the last couple lines, but am unsure what it needs to be changed to.
Comments:
-
Were you able to get this figured out? - Marcia.VanDyke 1 year ago
-
Negative, we ended up disabling the rule since it was causing more issues that what it was worth. - tbatchelder 1 year ago
We have a label for each queue's ticket owners, and we add all our technicians to this label. Then, in the queue's configuration, under User Preferences, we add the label. - crodriguez 6 years ago
While this is ideal for the submitter of the ticket to automatically re-open their ticket it if they make any additional comments or changes, it's not ideal for us as it requires us to be the assigned owner in order to close any tickets.
Ideally, I'd like to just not use that rule altogether, but management and decisions and PR and etc. - JerradH 6 years ago
Also, I forgot to ask what version you're on. Are you on 8.1 or what version are you guys on? - crodriguez 6 years ago