Understanding Salesforce queues
In Salesforce, a queue is a shared work pool that holds records (such as Leads, Cases, or custom objects) until a member of the queue claims one and works it. Queues spread work across a team, keep the distribution even, and make unassigned records visible instead of leaving them to sit with nobody looking at them.
Key characteristics
- Standard objects like Leads and Cases, plus custom objects, can be assigned to a queue.
- Users, public groups, and roles can be queue members, and members can accept or pick records out of the queue.
- Assignment rules, workflow, Process Builder, and Apex can all route records into a queue automatically.
- Once a record sits in a queue, the queue owns it until a user takes ownership.
- Members see the records in the queue, but what they can do with them still depends on profile permissions and sharing settings.
When to use queues
Use a queue when several users or teams work the same backlog. Typical cases are support teams triaging incoming Cases, sales teams picking up unassigned Leads, and functional groups working approval or review tasks on custom objects.
How to create and configure a queue
- Navigate to Setup > Users > Queues.
- Click New, give the queue a name and optionally a queue email.
- Select the supported objects (e.g., Case, Lead, or a custom object).
- Add users, public groups, or roles as queue members.
- Save, then configure assignment rules or automation to route records into the queue.
Best practices
Keep membership tight. Adding only the people who actually process the records cuts the noise for everyone else. Automate the routing with assignment rules so records land in the right queue instead of the nearest one. Watch the size of the queue with reports and dashboards, because large queues cause delays. And when you need real-time routing and capacity-based assignment, combine queues with Omni-Channel.
Sample Apex assignment to a queue
Here's a simple Apex example showing how to assign a record to a Queue by setting OwnerId to the Queue's Group Id:
Group q = [SELECT Id FROM Group WHERE Type = 'Queue' AND Name = 'Support Queue' LIMIT 1]; Case c = new Case(Subject = 'New case', Status='New', OwnerId = q.Id); insert c;
Limitations
- Queues are not supported for all standard objects (e.g., Accounts in some editions).
- A record in a queue has no single user owner until someone claims it.
- Access to records in a queue still respects sharing and object-level permissions.
Conclusion
Queues give a team one place to hold shared work until somebody picks it up, which takes the friction out of assignment and makes the backlog visible. Add automated routing or Omni-Channel on top and support, sales, and cross-functional teams can all pull from the same pool without an admin handing out records by hand.
Leave a Comment