In my Salesforce setup, we have several queues set up that we use to route certain cases to groups within the support team, such as technical, training, developement, and so on. The problem is, users can freely escalate cases to queues that either aren't monitored or aren't appropriate for their workflow. Is there a way to restrict which queues users can change ownership to, or is there a better way to set this up?
You could always use validation rules on Case to restrict the routing. Something that'd use the
But I confess it's first time I see a setup where somebody would be banned from sending Case to specific queue. What if they'll have a legitimate reason to do so?
Usually it's other way around - system built to assist users, with rules like "if Type contains 'IT' send it to Tier 2 support". Easiest way to build such rules is to explore Cases -> Assignment Rules. If your users don't know about this routing, you can tick the checkbox "Assign using active assignment rules" by default in the page layout (under the "layout properties" button). If they untick it on purpose, you could write some catch-all workflow rules ;)
I'm not aware of other means to limit. If the queue is marked to support Cases I think anybody who is allowed to change the Owner field will be able to send a Case to it. Maybe you could discourage them by playing with sharing settings... something like "if the Case is with the Tier 3 members it will disappear or become readonly for all other users").
There's also a trigger way, or even you could hide the owner field... replace it with link field that would display current owner but when clicked - would go to your custom VF page for assigning. But this smells like security by obscurity, a smart hand-crafted link will let them bypass it :)
I've run into requirements similar to this a number of times, which end up resembling the types of problems that BPM solutions are so good at solving - routing, decision limiting, state-transition etc.
For something like this, without hearing more about your requirements as to how fancy your filtering needs to be, the best general solution I've found is:
I've done things like this for Opportunity Stage, various Owner fields, and various picklist fields. It's a bit of work but is more elegant than hidden validation rules.