On this page



Use case

From time to time employees leave a company. What happens to the respective Jira account? Deactivating could be an option but for data security reasons users might have to be deleted.

To avoid issues when deleting the user from the internal directory, the following rule can come in handy. It replaces all affected assignees and reporters. Otherwise user cannot be deleted! Plus: Issue related users will be informed by a comment!




 Manual trigger


Add a Trigger → Manual

No further configuration needed. The rule will only be executed if a user hits the Execute button .



We want to update both the assignee and the reporter but the issues might not be identical. This is why we have to set up two selectors and dedicated action.


JQL Selector


Add Selector → JQL Selector


JQL Query

Use the following Expression:

reporter = john.doe


Replace "john.doe" with the user name of the user that should be deleted.



Update field action

Next to the JQL Selector click on Add → Action → Update field


Field

Choose Reporter


Update to

Choose Selected value


Value

Select the new reporter that should be set.



Add comment action

Underneath the Update field Action click on Add → Action → Add comment


Comment text

For liability reasons the reporter has been automatically changed.






JQL Selector

Underneath the first JQL Selector click on Add → Selector → JQL Selector


JQL Query

Use the following Expression:

assignee = john.doe


Replace "john.doe" with the user name of the user that should be deleted.



 Assign issue action

Next to the second JQL Selector click on Add → Action → Assign issue


Assignee

Choose one of the given options that fit most for you.


 Add comment action

Underneath the Assign issue action click on Add → Action → Add comment


Comment text

For liability reasons the assignee has been automatically changed.







Screencast

This is how the configuration above should look on your screen


Import the example

Import the JSON file below to get started in no time.



After importing the JSON file, make sure to check the configuration of the rule. Non-existing configuration elements (issue types, fields, values etc.) will be highlighted.


{
    "name": "Update assignee and reporter to facilitate user deletion",
    "description": "",
    "creator": "admin",
    "status": false,
    "triggerData": "",
    "triggerType": "MANUAL",
    "configuration": {
        "refs": [
            "issue",
            "system",
            "trigger.issue",
            "trigger.parent"
        ],
        "actingUser": "field_00020",
        "triggerType": ""
    },
    "children": [
        {
            "sequence": 0,
            "type": "JQL_SELECTOR",
            "ruleEntityType": "SELECTOR",
            "configuration": {
                "refs": [
                    "system"
                ],
                "jql": "reporter = %{system.currentUser}",
                "jqlParsingMode": "jql",
                "actingUser": "fixed_user",
                "fixedActingUser": "cowens"
            },
            "children": [
                {
                    "sequence": 0,
                    "type": "ADD_COMMENT",
                    "ruleEntityType": "ACTION",
                    "configuration": {
                        "refs": [
                            "issue",
                            "issues",
                            "selector.issue",
                            "selector.parent",
                            "system"
                        ],
                        "comment": "For liability reasons the reporter has been automatically changed.",
                        "commentParsingMode": "textBasic",
                        "actingUser": "field_00020",
                        "commentVisibility": "everybody",
                        "sendMail": "true"
                    },
                    "children": null,
                    "hasChildren": false
                }
            ],
            "hasChildren": true
        },
        {
            "sequence": 1,
            "type": "JQL_SELECTOR",
            "ruleEntityType": "SELECTOR",
            "configuration": {
                "refs": [
                    "system"
                ],
                "jql": "assignee = eparis",
                "jqlParsingMode": "jql",
                "actingUser": "field_00020"
            },
            "children": [
                {
                    "sequence": 0,
                    "type": "ADD_COMMENT",
                    "ruleEntityType": "ACTION",
                    "configuration": {
                        "refs": [
                            "issue",
                            "issues",
                            "selector.issue",
                            "selector.parent",
                            "system"
                        ],
                        "comment": "For liability reasons the assignee has been automatically changed.",
                        "commentParsingMode": "textBasic",
                        "actingUser": "field_00020",
                        "commentVisibility": "everybody",
                        "sendMail": "true"
                    },
                    "children": null,
                    "hasChildren": false
                },
                {
                    "sequence": 1,
                    "type": "ASSIGN_ISSUE",
                    "ruleEntityType": "ACTION",
                    "configuration": {
                        "refs": [
                            "issue",
                            "issues",
                            "selector.issue",
                            "selector.parent",
                            "system"
                        ],
                        "assignMode": "user",
                        "user": "eparis",
                        "mode": "projectRoleRandom",
                        "sendMail": "true",
                        "actingUser": "field_00020"
                    },
                    "children": null,
                    "hasChildren": false
                }
            ],
            "hasChildren": true
        }
    ],
    "hasChildren": true
}




 Related use cases





Status
Tech review

Style guide