How to Manage Queue Items (Delete Queue Items)?
Option 1: Managing of queue items looks a very easy job. Users can click on the “Remove” button on the Queue grid. This would unlink the reference of the queue item from the queue (which functionally delete the queue item) but not the actual record itself.
Option 2: The other option, users can use Navigate to a specific Queue and view the Queue items Sub grid or use Advanced Find and find the queue items (using one of many filter criteria’s). Using this, when the users delete (Bulk Delete) the queue items, the actual record itself also gets deleted.
Now, both the above options can be used based on the Organization’s requirements.
Option 1 is quite simple and works Out Of The Box for all users and mostly all scenarios and organization. Now consider, you need to provide the Option 2 for your users. Is that simple enough? Yeah looks simple, it’s just delete privilege which I need to give to specific user role. Right? Nah. Its not that simple.
Why its not simple:
- Do you see Queue Item as an entity in the security role?
- How the Security works for Queue Item?
- How to make sure that users can “delete” the queue item for specific queues only?
Let’s answer the above topics of discussion:
- Do you see Queue Item as an entity in the security role?
No, Queue Item is not available anywhere in the security role. Neither its available in “Core Records” tab or “customization” or “Service management”.
- How the Security works for Queue Item?
Queue item is tightly coupled with the Queue Entity and as Queue Item entity is not available in the security role, thus there are no separate privileges which can be given to the security roles for this. So, the “Delete” button is also based on privilege of the Queue Entity itself.
This would mean, user who are given this access will be able to “Delete” the Queue itself, which we may never want.
Note: We can’t define which users (User roles) can pick or release or remove the queue items. For which there shouldn’t be much of a challenge as these are required functionalities (in most cases).
- How to make sure that users can “delete” the queue item for specific queues only?
There is no such option available Out of the box.
So how to make Option 2 works?
A simple solution: Add a custom button using Ribbon Editor (Thanks to XRMToolBox and Ribbon Workbench) and once the users add the emails (records/queue items) to the specific Queue for which the queue items are to be deleted or if the button is visible across all queues, then users will be able to use the custom delete button.
Like this :
And how do you specify which role can view and action on the delete button – Refer to my blog article below and follow similar steps: “Restrict Advanced Find Functionality for End Business Users“