/bundles/itninjaweb/img/Breadcrumb_cap_w.png
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>))
Answer Summary:
Cancel
3 Comments   [ - ] Hide Comments

Comments

  • I'm confused. Are you saying that you don't have it set so all technicians are ticket owners for your queues? Or by "ticket owner" do you mean the assigned technician drop-down?

    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.
  • All technicians are listed in the owner queue. The issue is that if you're not the assigned owner, you can't close the ticket because the rule in place dictates that any activity by anyone that's not the assigned owner once it's closed will set the ticket to re-opened.

    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.
  • I guess what I don't understand is what is being done to the ticket after it's closed, that it re-opens the ticket? Is it because Tech A's away message prompts the re-opening of the ticket?

    Also, I forgot to ask what version you're on. Are you on 8.1 or what version are you guys on?
Please log in to comment

Answer Chosen by the Author


Answers

1
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

To this:
and UPDATER.ID = HD_TICKET.SUBMITTER_ID

Answered 04/16/2018 by: chucksteel
Red Belt

  • Awesome! Thanks! I'll give it a try!
  • 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.
    • Are you sure you didn't duplicate the rule? You shouldn't have to enable it again after making a change.
      • 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!
Please log in to comment
Answer this question or Comment on this question for clarity

Answers

Share