I’ve been looking at how to group multiple service requests together, and while Service Desk has bundles and the shopping cart, neither appear to meet my requirements, which are to minimize the number of e-mails that go to approvers while retaining full flexibility for the user to request whatever combination of catalog items are required. The bundles, being predefined, lose on the flexibility score, and as far as I can tell (please correct me if I’m wrong) the shopping cart merely groups a set of requests together for the user’s convenience but each request item's process is still handled individually, so a cart of 20 requests that must be approved by one person will result in 20 separate e-mails to that approver.
So here’s what I’m considering:
New attribute for the Service Request business object: Is Basket.
New actions: Add to Basket and Submit Basket.
If the user selects Add to Basket, a boo decision will check to see the user has any Requests with Is Basket=True in a presubmission state. If the decision returns a Yes, the process will add the current request as a child to that open basket request. If no, it will create a new parent request whose title will be the user’s name followed by a date stamp.
The Submit Basket action will only be available if the request is a child or the request’s Is Basket field is set to True.
When the user selects Submit Basket, LPM will take over, deduping all the approvers, and sending a single e-mail to all approvers. Approvals received will apply to all the children, and whenever a new approval comes in, if it pushes any given child over the top then that child request will immediately begin executing.
So let’s say user Cindy wants Visio, Salesforce and the accounting application. Visio must be approved by her manager Jill. Salesforce must be approved by Jill plus someone from the CRM approval group (Huey, Dewey and Louie). And the accounting app must be approved by Jill plus someone from the Finance approval group (Dewey, Cheetham and Howe).
- Cindy requests service for Visio. While she’s in the request window, she clicks on the action to Add to Basket.
- The process creates a new request object named Cindy Basket - 2015/02/23 12:07.
- The new request object is a parent to the Visio request.
- Cindy requests service for Salesforce. Again, she clicks Add to Basket.
- The process adds the Salesforce request to Cindy Basket - 2015/02/23 12:07.
- Cindy requests service for the accounting app. She clicks Add to Basket.
- The process adds the accounting app request to Cindy Basket - 2015/02/23 12:07.
- Cindy clicks Submit Basket.
- LPM dedupes the approver list and sends Jill, Huey, Dewey, Louie, Cheetham and Howe an e-mail to approve the requests. The body of the e-mail explains who’s responsible for what:
Cindy has submitted a request for the following basket of items. Please approve.
- Jill approves.
- Since only Jill’s vote is required for Visio, that request is considered approved and Visio is installed on Cindy’s PC. When the LDMS task has completed successfully, the request is marked Complete.
- Dewey approves.
- Since Jill + Dewey is enough to satisfy the other two requests, the entire basket is now considered approved and she is given access to the other two apps.
- When done, the other two requests are marked Complete.
- Once all the requests are marked Complete, the parent basket is marked Complete.
Does the above sound like a rational approach to the process design? Is there a better way to go? All input appreciated.