Queue entities

Queues are instrumental in organizing, prioritizing, and monitoring the progress of your work while you’re using Dynamics 365 Customer Engagement (on-premises). As a central location for work management, queues assist you in processing cases, responding to service calls, or sending out product information to prospective customers. Programmatically, a queue is a collection of queue items. A queue item serves as a container for an entity record, such as a task, an email, or a case that needs processing.

Note

The capabilities of queues was enhanced in Dynamics CRM 2013 Service Pack 1 (SP1) (on-premises) and Dynamics CRM Online Spring '14. For details about what was added from earlier versions, see the Dynamics CRM 2013 version of this topic.

The following information pertains to queues:

  • All customizable entities can be enabled for queues. If you enable an entity for a queue, you can't disable it.

  • Queues may be public or private. Private queue items are only visible to the members of the queue.

  • A private queue is automatically created for each new user or team.

  • A queue can contain multiple entity types, such as tasks, emails, or cases.

  • A queue contains information about the user who is working on a particular queue item. This helps you manage your resources more efficiently and helps to prevent duplication of work.

  • Queues can be enabled for workflows and audit. This helps improve productivity and track the entity and attribute data changes for future analysis and reporting.

Members capabilities

Queues are categorized into public or private queues. Private queues have individual users as members to make controlling access to queues easier. If you add a team to a private queue, all the members of that team become members of the private queue.

Public and private queues

The QueueViewType attribute is a picklist that defines whether a queue is public or private.

  • All user queues are private queues for the user: Only the user will be able to see the queue.

  • Team queues are marked as private with members: the team owner and all team members will be able to see the queue in the application.

  • All other queues are public. Everyone with read privileges for the queue entity will be able to see these queues.

Important

Private queues are a great way to organize cases, but do not restrict access to the records they contain. If your organization handles sensitive data and needs to restrict access to queue items or fields, explore the different options given in Dynamics 365 security model.

Attributes used to manage queues

Use the following attributes to manage queues.

SchemaName DisplayName Type Description
NumberOfItems Queue Items Integer Number of Queue items associated with the queue.
NumberOfMembers No. of Members Integer Number of Members associated with the queue.
QueueViewType Type Picklist Select whether the queue is public or private. A public queue can be viewed by all. A private queue can be viewed only by the members added to the queue.

Restrictions on deleting queues

A queue can’t be deleted if the following are true:

  • When the queue has queue items.

  • When any routing rule uses the queue.

Enable entities for queues

To enable a customizable entity, business or custom, for queues, use the UpdateEntityRequest message to set the IsValidForQueue attribute to true. For a list of customizable entities, see Which Entities are Customizable?. The queue entity and the queue item entity are customizable entities, but they can’t be enabled for queues.

The following list contains default queue-enabled entities in Dynamics 365 for Customer Engagement:

  • Appointment

  • Campaignactivity

  • CampaignResponse

  • Email

  • Fax

  • Incident

  • Letter

  • PhoneCall

  • RecurringAppointmentMaster

  • ServiceAppointment

  • SocialActivity

  • Task

Inherit privileges and provide limited access to a queue

A queue and a queue item have a parental relationship in which operations on the parent queue record are propagated to the child queue item records. For more information about parental relationships and cascading rules, see Entity Relationship Behavior.

Note

In this particular parental relationship, only the Delete action is cascaded from the parent queue entity to the child queue item entity. Other actions, such as Assign, Merge or Share are not cascaded.

The privileges on a queue item are inherited from the privileges on a queue.

  • If you have prvReadQueue privilege, you also have read privilege on a queue item entity.

  • If you have prvAppendToQueue privilege, you also have create, update, and delete privileges on a queue item entity.

    Often, you must limit access to the queue when permitting access to the queue items. As a queue owner with full access to the queue, you might want to share a queue with a team that will have only limited access to the queue. For example, if the support team is given read and append to privileges on a queue, team members can’t make any changes to the queue, such as changing queue name or queue owner. However, they can create, retrieve, update, and delete queue items.

Actions on queues and queue items

You can perform a variety of actions on queues and queue items, if you have appropriate privileges on the queue entity and the queue item entity.

Actions on queues

Perform the following actions on the queues:

  • Customize queues and queue items by adding custom attributes.

  • Add an entity record to a queue.

    Note

    An entity record cannot be added in multiple queues. An exception is an email entity record with the status “Received”.

  • Add entity records of different entity types in the same queue.

  • Change an ownership of a queue by assigning it to another user or team.

  • Add principals to a private queue using the AddPrincipalToQueueRequest.

  • Clean up the history for a queue by deleting inactive queue items in the queue, such as completed or canceled phone calls.

  • Retrieve all the queues that a user has access to using the RetrieveUserQueuesRequest

  • Make a queue the default queue for a user by setting the SystemUser.QueueId attribute to the ID of the queue. The same queue can be specified as a default queue for different users.

  • Create a workflow that operates on all private queues. For example, whenever a user creates a task, the workflow adds the task to the default queue of the user. You can also create a workflow that operates only on a particular queue.

  • Configure an email for incoming messages, if you want incoming email messages to be delivered to a queue.

Actions on queue items

Perform the following actions on the queue items:

  • Assign a queue item to a user using the PickFromQueueRequest.

  • Move a queue item from a source queue to a destination queue by using the AddToQueueRequest message. A queue item can be moved from one queue to another until it’s deactivated by using the SetStateRequest message.

    Note

    A queue item is automatically deactivated if the state of the record in the queue item changed from Active to Inactive. This applies to queue-enabled entities that have Active and Inactive states. To determine if an entity is queue-enabled and if an entity record can be in an Active or Inactive state, see entity metadata information. To view the entity metadata for your organization, install the Metadata Browser solution described in Browse the metadata for your organization. You can also browse the reference documentation for entities in the Entity Reference.

  • Release a queue item back to the queue using the ReleaseToQueueRequest.

  • Delete a queue item from a queue by using the DeleteRequest message. When you delete a queue item, a referenced entity record isn’t deleted. However, when you delete an entity record, all queue items that reference this entity record are deleted.

See also

Configure EMail for Incoming Messages
Queue Entity
QueueItem Entity
Sample Code for Queue Entities
AddToQueueRequest
Business Management Entities