Dynamics 365 Customer Service: Automatic Case Assignment

In this article I am going to explain how we can use workflows to assign cases to a team in Dynamics 365 based on the issue type(category and subcategory). Once the case is assigned to a team, managers or customer service reps can then pick cases they want to work on by assigning cases to others or themselves. The team membership will determine which team Customer Service Reps can pick cases from.

This functionality is very similar to assigning cases to queues, but the reason I am using teams and not queues is because queues don’t restrict access to the records they contain. There are also some assignment restrictions with private queues; I.E the system doesn’t allow queue items from a private queue to be assigned to someone that is not a member of the private queue.

Configurations

First we will create some new fields and entities:

  • Case Entity
    • New Fields:
      • Category-Required Field-Lookup to Drop Down entity below (these records will represent the category of the issue (I.E product issue, billing issue)
      • Sub Category-Lookup to Drop Down entity below (these records will this represent the sub category of the issue (I.E product damage, product malfunctioning, invoice not received, invoice amount incorrect)
    • New View
      • My Team’s active cases – set filter: Status equals active and owner equals current user’s teams
      • My Teams & My Active Cases – Set Filter: Status equals active and owner equals current user or User’s Teams (We will use this for the CSR Dashboard)
  • New Entity – Drop Down Value- We will use these records to create parent and child case categories. When logging a case, users can pick a category and subcategory. The subcategory options will be filtered on the record selected in the parent category field on the case form. When a drop down value is set to inactive, these will no longer be available to pick on the case form.
    • Fields:
      • Parent Category-lookup to Drop Down Value (We will use this to setup case parent and child categories  (I.E Product Issue, Billing issue) and will be able to sort the category fields on the case record based on the parent/child relationship
      • Name
      • Assign to Team- (lookup to team)
    • Views: We will create 2 custom views for parent categories and child categories
      • Active Parent Case Types-Set filter as: Parent Category doesn’t contain data and status is active
      • Active Child Case Types-Set filter as: Parent Category contains data and status is active
  • Assignment workflow – The workflow will assign cases to a team based on the sub category selected on the case. It will assign it to the team that is populated in the “Assign to Team” field on the drop down value record.
  • CSR Dashboard that shows all cases assigned to teams the user is a member of, and cases that are assigned to the individual user.

Once all the entities, fields and views are created, I’m going to start with the form configurations. First I will configure the Drop Down Values form by adding the fields on the form and adding a subgrid to the form to show the drop down value child records.

Open the form and add the following fields to the form: Parent Category, Name, Assign to Team. For the Parent Category field properties set the ‘Active Parent Categories‘ view as the default view and turn the view selector off. For the subgrid properties select ‘Drop Down Values(Parent Category)‘ as the entity and to only show related records. The default view will be ‘Active Drop Down values‘.

Let’s add some team and drop down value records:

TEAM RECORDS:

Team 1:

  • Name – Accounting Team
  • Team Type: Owner
  • Make sure you assign the Customer Service Representative security role to the team.
  • Add yourself as a member to the team

Team 2:

  • Parent Category: Blank
  • Name: Billing Issues
  • Tier 1 Support: Accounting Team
  • Name – Product Team
  • Team Type: Owner
  • Make sure you assign the Customer Service Representative security role to the team.
  • Add yourself as a member to the team

DROP DOWN VALUE RECORDS:

Drop Down Values: (Parent Category)

Drop Down Values (Child Record):

  • Parent Category: Billing Issues
  • Name: Bill not Received
  • Tier 1 Support: Accounting Team

Drop Down Values (Child Record):

  • Parent Category: Billing Issues
  • Name: Incorrect Invoice Amount
  • Tier 1 Support: Accounting Team

Drop Down Values: (Parent Category)

  • Parent Category: Blank
  • Name: Product Issue
  • Tier 1 Support: Product Team

Drop Down Values (Child Record):

  • Parent Category: Product Issue
  • Name: Incorrect Quantity Shipped
  • Tier 1 Support: Accounting Team

Drop Down Values (Child Record):

  • Parent Category: Product Issue
  • Name: Packaging
  • Tier 1 Support: Accounting Team

After having added the records, this is what the Billing Issues record looks like:

Next I will add the newly created Category and Sub Category fields on the case forms. I will add them to the quick create form and the regular case form. After placing the Category on the forms we are going to edit the field properties. Set the Active Parent Case Types as the default view and disable the view selector. For the Sub-Category field we’re going to enable related records filtering so that the values in this field will depend on the category field. Don’t forget to publish your changes!

Now let’s create the workflow. These will be a real-time workflow that will run on the case entity.  We want this workflow to run after a record is created and after the sub category or category fields change.
The workflow will assign the case to the team that is populated in the “Assign to Team” field of the drop down value record that is populated in the sub category field on the case.
If there is no team populated, there will be no assignment. We also want the system to show an error if the sub category field is populated with a record that is not a child of the record selected in the category field on the case.
Below is what the workflow looks like: (By clicking on the image you’ll be able to view the full image)

We can configure the error message by clicking on the properties button and entering a message. The message I’m using for this error is: “THE CASE SUBCATEGORY DOESN’T MATCH THE CASE CATEGORY. PLEASE CHANGE YOUR SELECTION.”
In order to assign the correct team to the case, we’ll click on the properties button on the right side of “Assign Case”. In the form assistant window, select the ‘sub category (dropdown value)’ field and then select the ‘Assign to Team’ field to add the dynamic value as shown below.
By configuring the system to use a dynamic value, we won’t have to go back and change the workflow if a particular sub category need to be assigned to a different team. The only thing that would need to be done is to update the ‘Assign to Team’ field on the drop down value record.

Lastly we’re going to create the CSR Dashboard. To create the dashboard I navigate to the default solution, and select Dashboards. Click “New” and select ‘Interactive Experience Dashboard”, then select the 4-Column Overview Dashboard.
Name: CSR Dashboard
Filter Entity: Case
Entity View: My Team and My Active Cases
Filter By: Modified On
Time Frame: This Quarter

The next step is to add some charts to the dashboards in the 4 top slots of the dashboard, feel free to add any charts that are available, or you can create some new ones yourself.

Note: In order to view them on the dashboard, you need to click the ‘Show Visual Filter” when viewing the dashboard.

Next I’m going to add the streams to the dashboard that will show all cases assigned to a team, and cases assigned to the user.  Other streams can be added here too, I.E my draft emails  and my activities.
Click the ‘Stream’ button on the top of the Dashboard form. Select ‘Case’ as the record type and select the ‘My Teams Active Cases’ view.
I’m adding a second stream where the record type is ‘Case’ and the view name is ‘My Active Cases’. Feel free to add other streams as needed.

Once the dashboard is published and added to the Customer Service Hub app you can start using the new functionality! Enjoy!

Share this!

Comments are Closed