Using Queues in Microsoft Dynamics CRM

Queues can be instrumental in helping to organise, prioritise, and monitor the progress of your work, such as Cases while you are using Microsoft Dynamics CRM.

If used properly they can act as a centralised location for users to manage case progress, respond to service calls or work with prospects in your sales pipeline. There is often times when the feature is overlooked or misunderstood, however as the functionality was updated around the use of queues in MS Dynamics CRM 2013 SP1 and 2015 there is a lot more to do with queues and it is not as difficult as you may think.

Recently I published a blog post on the use of Routing Rules in CRM 2015 and CRM Online and during the process referenced the Queue entity. So I thought I would expand a little. At a high level what you may or may not know is that queues;

  • Can be used with any custom entity
  • Can be made “Public” or “Private” (with Private queues making the queue items only available to members)
  • Private queues are auto-created for new users or teams when they are created
  • Queues can actually contain multiple entity types, (e.g. tasks, emails, cases)
  • Users can work on Queue Items to prevent task duplication
  • Queues can be workflow enabled
  • Queues cam ne enabled for auditing

Public or Private? In CRM there is an attribute called “QueueViewType” which is used to define if a queue is public or private. Private uses have individual members (users) which are used to allow/remove access to the queue. You can add a team to a private queue and this will add all the team members as members of the private queue. Some other things to remember about queues are that;

  • All user queues are private, so only the user will be able to see queue items in this queue
  • Team queues are marked as private by default, the team owner and all its members have access to the queue
  • All other queues are considered public, anyone with ‘read’ access to queues can see them

For information on CRM queues in previous versions check this MSDN article; https://msdn.microsoft.com/en-us/library/gg328459(v=crm.5).aspx

Creating a Public Queue:

Creating queues are simple enough in CRM, as mentioned above each user account has it’s own private queue created automatically. The ability to create a queue will be based on the users security role, out of the box the following roles can create a queue;

  • Customer Service Manager
  • System Customizer
  • System Administrator

If you have an applicable role with create permissions then you are good to go – if you are not sure you can check your role by using the steps in this Customer Centre article; http://www.microsoft.com/en-us/dynamics/crm-customer-center/view-your-user-profile.aspx

Next go to; Settings > Service Management/Business Management* > Queues, then choose New. You will then need to complete the required fields in the Queue form, out of the box these fields will be;

  • Name
  • Type (Public or Private)
  • Owner (Lookup to System User)
  • Convert Incoming Email To Activities

The “Incoming Email” field is for exactly that purpose, here you can enter the email address that receives all messages for this queue, for example; ‘info@myorganisation.com’.

In the “Convert Incoming Email to Activities” field you will need to make sure you choose the appropriate action, by default this will likely be populated with “All email messages“, this will not be suitable for everyone. Depending on the purpose of the queue you may want to only covert emails that are “Email messages in response to a CRM email” or only emails from Leads, Accounts and Contacts.

The locked field referring to “Mailbox” will be automatically populated with a new mailbox record when you have created the Queue, once this has occurred you can update the mailbox details using the link.

Finally, click Save.

*Service Management will be visible in the Settings area of CRM based on the version you are using.

Queue_Create

Queue Items:

Queue items are displayed in the associated sub-grid within the Queue form. If you are using Cases for your solution then all cases that are either; (a) routed to this queue (using routing rules) or (b) manually assigned cases will be displayed.

It is worth noting that a queue item is automatically deactivated if the associated record is updated from Active to Inactive, which applies as you’d expect to all queue enabled entity records that have Active or Inactive states in CRM.

Create an Automatic Case Creation Rule;

Automatically creating cases from incoming email can be awesome for reducing the amount of manually created cases in CRM and increasing the actual contact time of a support desk and your agents for both internal and external channels. Case creation rules use conditions similar to those found in Advanced Find to automatically convert emails into support cases.

Please Note; This functionality applies to MS Dynamics CRM Online that were either updated to CRM 2013 SP1 (or Spring ’14 release as it is known) or the CRM 2015 product update. If your deployment is On Premise you will also need to have updated to CRM 2013 Sp1 or CRM 2015.

Step 1 – Create a New Record

To create a new Case Creation Rule in CRM 2015 click the “Email to Case Settings” button in the ribbon from your Queue (as created in the above steps). The create window will pop a new Case Creation Rule form, complete the required fields, which include;

  • Name
  • Source Type (Email)
  • Queue (Lookup to your Queue)
  • Owner

Now, you can only associate one rule per source type, so in this example once we have selected the “Source Type” as “Email” in a rule for this queue, we cannot have another active rule associated unless it is used for Social Monitoring. Also, make sure your queue has an email address as per the previous section.

Case_Creation_Rule1

Step 2 – Specify Conditions

Next you will need to go to the “Specify Conditions for Case Creation area in the next section of the form and choose your condition or conditions (as you can add multiple). These include;

  • Create cases for email from unknown senders+
  • Create case if a valid entitlement exists
  • Create cases for activities associated with a resolved case
  • Create case when the case associated with the activity is resolved since

Create Cases for email from unknown senders – if you select this option all emails from unknown senders (i.e. a sender that cannot be associated with an email in a CRM record) are converted to a case, be default this will also create a contact record. However this does work in conjunction with the personal options for “Automatically Create Records” set by the user that owns the rule.

+If this option is not selected cases will only be created automatically for email senders that are attributed to an Account or Contact in CRM, (those email addresses associated to other records will not create a case).

Create case if a valid entitlement exists – if you select this option then the rule will do exactly that, to read more on entitlements see; https://msdn.microsoft.com/en-us/library/dn689025.aspx. If the sender of the email is a contact that has a parent account with a valid entitlement and the contact is associated using the sub-grid on the entitlement, then a case is created, this is also true if the entitlement sub-grid is empty as the entitlement can be applied to all contacts for that account.

Create cases for activities associated with a resolved case – a case will be created if the email is related to a resolved case if it references an active case then no case is created. If you select this option then the option for Create case when the case associated with the activity is resolved since appears which allows you to select/define a duration. This will mean that a new case will be created only if it is resolved earlier than the specified duration. If it is later then it is associated with the existing resolved case.

When you are done click “Save”.

Step 3 – Specify Case Details

Now we need to add conditions for the creation rule, for those users familiar with Advanced Find it is as easy as that. We also need to add the case properties for the records we are going to work with once created, such as the priority etc.

In this step you can define how to treat cases based on their customer category or the contact type, a good tip is to be sure that you use the correct reference in the conditions, for example, for Contacts it is; “Sender (Contact)”, for Accounts the reference is; “Senders Account(Account)”. You add conditions by clicking the “+” icon near for “Condition”.

Case_condtitions

Once you are done click “Save” and if you are happy click “Activate”.

Please Note; Once a case is created the incoming email is removed for your Queue. If there are no routing rules to apply to the newly created case to a user or Queue then the case owner will be set to the user that owns the case creation rule.

Hope this helps, if you need to dig deeper check out the CRM Customer Centre, or for technical information such as case creation from a web service see MSDN. Happy CRM’ing!

Using Routing Rules in MS Dynamics CRM 2015

Creating a Queue in Dynamics CRM can be useful when managing incoming email, but to feel the benefit from a service management or support perspective adding Routing Rules can add a whole new dimension.

It can be useful for an organisation to manage incoming case emails in CRM based on the content or level of service offered to their customers. In the latest version of MS Dynamics CRM Online it is possible to configure “Routing Rules” against the Case entity to push cases to the correct queues using a combination of workflow processes and routing rules.

In this example I will  be using a previously configured Case field named “Service Level” to define the queue to which the case will be assigned in CRM, in this case I will use “Service Level” as an option set with the values – “A”, “B” and “C”. The solution will also include the use of:

  • Routing Rule Sets
  • Rule Items
  • Queues

Sometimes we may need to create additional workflow as the “Routing Rules” functionality only route cases automatically when cases are created either by Automatic Case Creation Rules or by Workflows. Routing Rules are applied to Manually Created cases by clicking the Apply Routing Rules button. So we will need to use workflow functionality to route cases to queues when needed.

Please Note; The same logic can be applied to other attributes in CRM either out of the box or custom. The same solution should apply to CRM Online and CRM 2015 On Premise depending on your current version/UR installed.

Step 1 – Create Additional Queues for Service Levels:

To set up routing rules in CRM you will need to create or utilise existing queues, this step includes the creation of queues from scratch and assumes that the required mailboxes/server sided configuration for email has been completed. For more on this subject see this TechNet post: Create_Profile

In your CRM 2015 organisation navigate to; Settings > Service Management > Queues and click “New” to create a new queue. Enter the “Name” and then select “Public” for the “Type” field. Insert the email address required for the queue, for example; @.onmicrosoft.com. Then click :Save and Close” to create the queue. Repeat this step for the queues required for additional service levels, (in this example B and C).

Step 2 – Create and Configure a Routing Rule Set for the Case Entity:

In your CRM 2015 organisation, navigate to; Settings > Service Management > Routing Rule Sets and click “New” to create a new Rule Set. Complete the required fields giving your Rule Set a “Name” and click “Save”do not close the record at this point.

Routing_Step_1

Step 3 – Create a New Rule Item:

The next step is to add your “rule items’, these will contain the conditions that you want to apply to the routing rule set.

From within your new Routing Rule record click “+” to add a new “Rule Item” in the sub-grid controls. In the “create record” window add the name of the rule item; in this case. Then navigate down to the “Rule Criteria” tab and add your “If Conditions”.

The conditions in this example are; Case > Service Level > Equals > A. (This will look for all Cases that are assigned the “A” value in the Service Level option set). Navigate to the “Then” conditions and for “Route To” select “Queue” and the Queue you require. Then click “Save and New”.

Routing_Step_02

Repeat this step for your other variables, for this example; Service Level B and C and set the queue you wish to route to in CRM. After creating your last rule click “Save and Close” and then activate the Rule Set created in step 1.

Please Note; this will be the same interface as the Advanced Find function in CRM and so should be easy for System Customiser , Administrators or End Users to configure (security role permitting).

Step 4 – Test Routing Rule Set:

As mentioned earlier in the post, it is still necessary to supplement your rules with workflow processes at this point in time, therefore the next step is to create the required workflow in CRM if you want cases to be assigned to a particular queue based on updates to field values such as ‘case escalated’ or status reason.

To test your routing rules send an email to the email addresses used for your queues, for example;

To: username@on.microsoftcom
Subject: Support Request Routing
Body: This Case should be routed to queue.

I hope this helps, if you want to know more about working with Queues in CRM with your Routing Rules, check out this post; Using Queues in Microsoft Dynamics CRM – and happy CRM’ing!