Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Prevent/Inhibit status from the customer

Note

These options will inhibit the notification if the Status is updated regardless of any other changes to the Issue for example comments or custom field updates.

You may want to masquerade the status instead or check if the only item in the is the status change see Examples section.

Make sure you review which changeList items are triggered before inhibition. For example if you want to inhibit a Resolved Status there may be more changeList items than expected.

As test show the changelist items during a status change by running in a test notification:

#set ($changeList = $changelog.getRelated("ChildChangeItem"))
#foreach($changeListItem in $changeList)
$changeListItem
#end


Output in test notification email:
[GenericEntity:ChangeItem][newvalue,10000][field,resolution][oldstring,null][newstring,Done][id,10119][fieldtype,jira][oldvalue,null][group,10112]

[GenericEntity:ChangeItem][newvalue,5][field,status][oldstring,In Progress][newstring,Resolved][id,10118][fieldtype,jira][oldvalue,3][group,10112]

Notice there are two change log items with fields: resolution and status. Therefore if you want to inhibit if the only change was a resolved status type you will need to take into consideration the field “resolution”.

If you want to prevent customers from receiving updates to particular statuses then you will need to set an inhibition more information here: Prevent /inhibit sending of a notification (Issue Event or Postfunction).

...

Code Block
#set($inhibitThisStatus = "In Progress")

Inhibit

...

if update is the same

Code Block
#if($newStatus == $inhibitThisStatus)
  #if($oldStatus == $newStatus)
    $jemhUtils.setInhibitSending(true)
    $jemhUtils.setInhibitSendingReason("Status Notification is inhibited") 
  #end 
#end

...

  • Masquerade “To Do” and “Waiting for support” as “In Progress”

  • If the issue was already in progress then inhibit the notification and the only notification was a status update then inhibit the notification.

  • When the issue first transitions to “In Progress” or changes from “In Progress” to different status not listed in the list $masqueradeAsInProgress then continue with notification

Code Block
#macro(customerVisibleStatus $displayStatus)
  #set($displayStatus = "")
  #set($oldStatus = "")
  #set($newStatus = "")
  #set($masqueradeAsInProgress = ["Todo", "Waiting for support"])
   
  #if ($!changelog)
    #set ($changeList = $changelog.getRelated("ChildChangeItem"))
    #foreach($changeListItem in $changeList)
      #if($item.getString("field") == "status")
        #set($newStatus = $item.getString("newString"))
        #set($oldStatus = $item.getString("oldString"))
      #end
    #end
    
    #if ($masqueradeAsInProgress.contains($newStatus)) 
      #if($masqueradeAsInProgress.contains($oldStatus) && (changelog.size() == 1))
        $jemhUtils.setInhibitSending(true)
      #else
        #set($displayStatus = "In Progress")
    #end
  #end
#end