I need to create a system with 3 roles: admin, client, operator.
Basically the client will make a request of the operation from the list set up by the admin and operator will perform those operations.
I would like to find a solution that will satisfy the following conditions:
1. Clients request operations from a predefined list.
2. Additional parameters can be entered for each operation. The parameters for different types of operations are different.
3. After the operation is requested, the request is queued.
4. Several queues for requests with different priorities.
5. Setting up SLA for each type of operation.
6. Reporting (start / end time of the request, the percentage of requests exceeding the set time threshold, etc.)
Opportunities that I would like to have too:
7. The operator does not think about what request to perform. The algorithm determines which request should be executed next (baseline is the oldest request with the highest priority) and the operator only sees it
8. Changing the order of requests in the queue of one priority and transferring requests to the queue of other priorities.
9. Approval system: the generated request will not be queued until an approval is received from another client / admin. Accordingly, the one who must give the approval have to receive a notification about this (maybe this could be an additional queue of the requests that need approval).
10. The expected execution time of each request seen by the client based on the set execution time for one request and the number of requests (different execution times are set for the different request types)
11. Queues should be updated in real time.
12. One request can contain several operations. So, expected time to perform the request should depend on the amount of operations in the request. The amount of operations in the request could be defined by the client (better count it automatically but I have no idea how for now).
Can you please tell me what will be the best solution and maybe give some advices how to set up that system? Is it even possible to do with Jira Service Management?