A queue is a Salesforce construct that owns records (typically Leads, Cases, or custom objects) on behalf of a group of users who then “pull” records they want to work on. A public group is purely a collection of users, roles, and other groups used to grant access via sharing rules, manual sharing, and other mechanisms — public groups can never own records. The fundamental difference: queues own records and route work; public groups grant access.
Side-by-side comparison
| Capability | Queue | Public Group |
|---|---|---|
| Can own records | Yes (the queue itself is the OwnerId) | No |
| Can be used in sharing rules as the “shared with” target | No (sharing rules can’t target a queue directly) | Yes |
| Can be used in assignment rules (lead/case routing) | Yes — primary purpose | No |
| Members can include users, roles, public groups | Yes (users, roles, roles+subordinates, public groups) | Yes (users, roles, roles+subordinates, other public groups) |
| Supported objects | Lead, Case, Service Contract, Knowledge Article Version, custom objects (must enable) | All objects (it’s not object-specific) |
| Auto-notifies members of new records | Configurable (email when new records arrive) | No |
| Members can “accept” records to take ownership | Yes — “Take Ownership” button | N/A |
| Created in Setup | Queues | Public Groups |
What a queue actually does
A queue serves three workflows:
- Record holding. When an assignment rule (or a manual operation) places a record into a queue, the
OwnerIdis set to the queue ID. Queue members can list these records, and any one of them can click Take Ownership (or Accept, depending on object) to claim the record. At that moment, ownership flips from the queue to the user. - Permission filtering. Only queue members (or users with sufficient sharing-level access) can see queue-owned records.
- Workload distribution. Cases and Leads typically flow into queues from web-to-case, web-to-lead, email-to-case, or assignment rules. The queue is the “inbox” the team pulls from.
What a public group actually does
A public group has no record-ownership power. It’s a referenceable collection used in:
- Sharing rules as the recipient.
- Manual sharing when an owner wants to share with a group of people at once.
- List view filtering (My team’s records → public group selection).
- Folder access for reports, dashboards, email templates, documents.
- Apex sharing when a programmatic share targets a
Grouprow.
If you need a bundle of users you can hand to anything that asks for a group, that’s a public group.
When interviewers combine the two
“You want to share all queue-owned leads with a different team for visibility — but the team should not pull leads from the queue. How?”
You cannot share to a queue via a sharing rule. But you can share the queue-owned records by creating a sharing rule based on owner, where the owner role/group is the queue (queues can be the source of an owner-based rule because internally they are stored as a Group of type Queue), and the recipient is a public group containing the visibility-only team.
This trips up candidates who don’t realize that under the hood, queues are stored in the Group object with Type = 'Queue' — so they show up in some places groups appear, but they have additional ownership semantics public groups don’t have.
Practical scenarios
- Routing inbound support cases → Queue. Cases land in the Tier 1 queue. Members of Tier 1 take them.
- Granting the analytics team read access to sales opportunities → Public group. Build “Analytics Team” public group, share opportunities with it via sharing rule.
- Email auto-creates a Lead that should be evaluated by SDRs → Queue. Web-to-lead assignment rule places the lead in the SDR queue.
- Restricting a custom dashboard folder to specific stakeholders → Public group. Share the folder with the stakeholder group.
Common follow-up: enabling queues on a custom object
To make a custom object queue-eligible, you must:
- On the object definition, check Allow Queue Assignment.
- Create the queue at Setup → Queues → New and add the object to the queue’s supported objects list.
- Optionally configure assignment rules or process automation to route records into the queue.
Queues do not support every standard object — most notably, Account, Contact, and Opportunity do not support queue ownership out of the box.
Verified against: Salesforce Help — Queues and Public Groups. Last reviewed 2026-05-17.