Quantcast
Channel: Neil Parkhurst's Groups Activities
Viewing all 1692 articles
Browse latest View live

MB-230: Microsoft Dynamics 365 Customer Service – Case Management (Part One)

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will begin to describe the important topic of case management.

Part of the skills measured statement relating to case management is shown below. From this we can see that case management covers a wide variety of capabilities;


We need to cover quite a bit of ground! In this post I will include;

  • An over of Cases
  • Case Views
  • Searching Cases
  • Creating Cases from Activities

In a later post I will cover other topic including;

  • Resolving Cases
  • Parent / Child Cases
  • Merge Cases
  • And more!

As already mentioned cases are a fundamental part of the customer service functionality in Dynamics 365, therefore I suggest you spend a significant amount of your exam preparation time creating cases and then experimenting on the various ways to route, resolve, cancel, merge etc etc.

Cases An Overview

Cases (also known as incidents) are the most fundamental entity in the service module of Dynamics 365, it will therefore be essential that you have a detailed understanding of their management. If you are familiar with Dynamics 365, you may find much of this post covers concepts that you are already familiar with but if you are preparing for the MB-230 exam a little revision won’t hurt.

Each case represents a single incident of support, some companies may refer to a case as a ticket, service request etc. Each customer can have multiple open cases at any moment in time. Cases can have subjects, knowledge base articles, products and / or entitlements related to them. Cases also have activities associated with them. And cases can originate from activities, such as an email support query.

Cases can be created directly from the main case form, a quick create form or by converting activities. (Activities can include, appointments, emails, phone calls, faxes, letters, service activities, campaign responses, tasks and even custom activities.) It is also possible to use record creation rules to automate creation of cases, for example on receipt of an email.

Out of the box the customer (account or contact) and case title are mandatory fields on a case.

Cases, by default, utilize a business process flow to display stage information. The default stages are identify, research and resolve. (We’ll look at this business process flow in more detail later in this post.)

Over and above the typical actions available from the ribbon bar we have multiple actions that are specific to cases. Case specific actions include;

  • Save & route
  • Create new case
  • Create child case
  • Resolve Case
  • Reactive Case (If viewing a resolve case)
  • Cancel case
  • Adding to a queue or viewing current queue item detail
  • Do not decrement entitlements
  • Convert to work order (assuming Field Service is installed)

Note: Some of these actions may be self-explanatory. But I will return to some options in later posts. For example, to appreciate the reasons for not decrementing entitlements you will first need to understand entitlements.

Tip:
I strongly recommend that your revision includes testing out all of these case specific actions. (Especially any options you are not familiar with or ones you haven’t used recently.)

Additionally you will find many options common to all tables in Dynamics 365 including things like;

  • Save & Close
  • Assign
  • Follow / unfollow
  • Delete
  • Email link
  • Share
  • Word Templates
  • etc.

Out of the box tabs on the case form include;

  • Summary (Case title, ID, subject, customer, timeline etc.)
  • Details( Type of case, parent case, escalation details etc.)
  • Case Relationships (merged cases, child cases and associated knowledge articles)
  • SLA

Tip: It might be worth remembering that the case form can be customized. Meaning your form could include slightly different tabs to the ones mentioned above. What will be important is understanding all of the concepts with each attribute on the form. Rather than its position!

In the center of the “standard” case form the timeline gives users access to posts, activities and notes regarding the case. This becomes a very important control to visualize the efforts completed towards resolving the case. We can also create activities and notes directly from the timeline.

Tip: The timeline is an important concept! Therefore as part of your revision I suggest you experiment by creating activities and notes directly from the timeline. Plus ensure you are familiar with how we can filter and search the timeline.


Case Views

Views are lists of data and are used to filter results. Examples include “Active Cases”, “My Cases” and “Resolved Cases”. Views can be system views or personal views. Many system views are provided out of the box but others can be added by developers / customizers. Personal views are saved “advanced finds” and can be created by users. Personal views can be shared with other users and teams in the organization.

All tables in your model driven app will have a set of system views out of the box. With cases you will find that quite a few of useful views exist. The will allow users to view their active cases, resolved cases, cases being followed and much more. I suggest you become familiar with the views available on cases!

From any case view the user can select multiple rows in a view. They then have the ability to perform actions on all the selected rows including delete, bulk edit, merge cases, apply routine rules, assign, add to a queue. If just one case is selected it is possible to resolve or cancel the case directly from the view. (You can NOT resolve or cancel when multiple cases are selected.)

Tip: You can merge cases when multiple rows are selected. I will cover the concept of merging cases in a later post.

Views can be sorted by clicking on column headings. Then selecting the sort method. Typically this will be “A to Z”. But with dates we can also sort “Oldest to Newest”.  Plus you can sort by multiple columns by holding down the shift key and selecting additional columns. An arrow will show in the column heading depicting the direction of the sort, clicking the column again will change the direction of the sort.

We can also use the filter by button to refine the rows shown in our view. (Note: If you have filtered a column, clicking the column heading again will give you a clear filter option.)

Case Dashboards

Another useful way agents can filter cases is to use the case dashboards. The case table has a case specific dashboard enabled by default. To access this you can use the “Open Dashboard” option from any case view.


I suggest you become familiar with how we can use visual filters and more to help agents navigate cases. Showing the visual filters can give the agents a very quick way to navigate to high priority cases (and more).


Additionally agents can perform actions on the cases directly from the dashboard. By clicking “…” they can resolve cases (and more) directly from the dashboard views.

Searching Cases

Cases are commonly searched directly from views by selecting a specific view or using the filter functionality. It is also possible to search for specific cases by typing directly into the quick find search box, by simply entering what is required or by also entering wild cards. Typically, the direct search will use case number or case tittle to locate the case however customizers have the ability to extend this functionality to decide exactly which fields will be included in the search. (By amending the “quick find view” on the case table.)

You should understand that this search will look in the current view to located the required case. So in my example I have searched “All Cases”. But if I had opened the “Active Cases” first then I’d be looking at just open cases.

Additionally cases maybe returned (along with other entities) in the relevance search. You access this style of search from the search box in the command bar. Notice that on the relevance search results will include other entities but you can filter by the case record type if required. Also notice that I can easily filter and sort the results on the search.

Tip:
If you haven’t used the search function recently, I suggest your revision includes some hands on time searching for cases and other entities. (Not least because in recent releases Microsoft have made some improvements in this area!)

It might also be worth noting that you can open and interact with the cases directly from the relevance search. (As shown below.)


Create Cases from Activities

Activities track relevant interactions between a company and their suppliers / customers. There are many situations when you might want to convert an activity into a case, for example a customer may email about an issue with a product. The email can then be converted into a case. Any of the activity types can be converted into a case. (So, Letter, Fax, Phone call, email, appointment or task.) To demonstrate this, below you can see that I can convert a phone call into a case.


In addition to being able to convert out of the box activities you can also covert custom activities into cases. Below is an example of a custom activity “SMS Message”, notice that I still have a “To Case” option.


When converting an activity into a case, you confirm the customer and case subject. (Don’t forget that the customer field could be a contact or an account.) You can also select to automatically open the newly created case record and optionally also close the activity that is the source of the case.


When an activity is converted into a case the originating activity is automatically tracked against the newly created case. You can see this below on a case I have created from my phone call. Notice the originating activity shows in the timeline on the newly created case.


I hope this post has started to explain the basic concepts connected with case management. As I said in my introduction I will split this topic across two blog posts. In my next post I will cover resolving cases, routing cases, parent / child cases and merging cases.


MB-230: Microsoft Dynamics 365 Customer Service – Revision Guide

$
0
0

I have been completing a series of posts to help people prepare for the MB 230 certification (Microsoft Dynamics 365 for Customer Service). Here is a collection of links to all of those posts. I hope these might serve as a useful revision aid for the MB 230 exam.

The MB 230 certification is not easy! I guess because customer service is a big topic covering many aspects of your “CRM” system. Including the ability to raise tickets (aka cases) but also how to automate the processes around those cases. We also have additional topics such as Omnichannel which cover how we engage with our customers. And then (of course) we’ll need to understand how to report on service metrics.

Note: This guide is a work in-progress, please keep checking back for updates.

Introduction

Customer Service Overview

Manage cases and Knowledge Management
Create and manage cases· configure cases

· manage case lists

· create and search for case records

· convert activities to cases

· perform case resolution

· implement parent/child cases

· merge cases

· set autonumbering for customer service entities

Configure and automate cases· implement Advanced Similarity rules

· implement record creation and update rules

· implement case routing rules

· customize the Case Resolution form

· configure Status Reason transitions

· configure business process flows

· capture customer feedback by using Customer Voice

Implement Knowledge Management · configure the Knowledge Search control

· link an article with a case

· use Knowledge Management to resolve cases

· manage the Knowledge Management article lifecycle

· manage Knowledge management articles

· configure entities for Knowledge Management

· manage Knowledge article templates

· implement Knowledge Search

· enable Relevance Search

· configure categories and subjects

· convert cases to knowledge articles

Revision Guides

Case Management – Part One

<<Case Management – Part Two>>

<<Case Automation – Part One>>

<<Case Automation – Part Two>>

<<Knowledge Base>>

<<Customer Voice>>

Manage queues, entitlements, and service-level agreements
Create and manage queues · describe use cases for each queue type

· configure queues

· add cases and activities to queues

· configure entities for queues

· perform queue operations

Create and manage entitlements · configure entitlements

· define and create entitlements

· manage entitlement templates

· activate and deactivate entitlements

· renew or cancel an entitlement

Create and manage SLAs · define and create service-level agreements (SLAs)

· configure SLA settings

· configure a holiday schedule

· configure a customer service schedule

· implement actions by using Power Automate

· manage cases that are associated with SLAs

· manually apply an SLA

· create and manage SLA items

Revision Guides

<<Queues>>

<<Entitlements>>

<<SLAs>>

Implement scheduling
Manage resources · configure business closures

· configure organizational units

· configure resources

· configure work hours

· configure facilities and equipment

Manage Services· define services

· schedule a service activity

· configure fulfilment preferences

· create a schedule board

· schedule a service activity by using the schedule board

Revision Guides

<<Resources>>

<<Services>>

Implement Omnichannel for Customer Service
Deploy Omnichannel for Customer Service
· provision Omnichannel for Customer Service

· define user settings

· configure application setting

· manage queues

· configure skills-based routing

Implement Power Virtual Agents
· describe Power Virtual Agents components and concepts

· integrate Power Virtual Agents with Dynamics 365 Customer Service

· escalate conversations to a live agent

Manage channels · describe use cases for the Channel Integration Framework

· configure channels

· enable the chat widget on websites

· configure pre-chat surveys

· configure proactive chat

· configure Secure Message Service (SMS)

Distribute work
· describe difference between entity routing and channel routing

· configure work streams

· configure entity routing

· configure routing values

· implement context variables

Configure the agent experience
· create macros

· define agent scripts

· configure Quick Responses

· configure sessions and applications

· configure notifications

Configure the supervisor experience
· configure Omnichannel Insights dashboard

· configure intraday insights

· customize KPIs for intraday insights

· enable sentiment analysis

Revision Guides

<<Deploy Omnichannel>>

<<Power Virtual Agents>>

<<Omnichannel channels>>

<<Distribute / Route Work>>

<<Omnichannel Agent Experience>>

<<Omnichannel Supervisor Experience>>

Manage analytics
Configure Customer Service Insights· describe capabilities and use cases for Customer Service Insights dashboards

· connect to Customer Service Insights

· manage workspaces

Create and configure visualizations
· configure interactive dashboards

· design and create charts

· design reports by using the Design wizard

Revision Guides

<<Customer Service Insights>>

<<Customer Service Visualizations>>

Omnichannel for Customer Service – Simplify Navigation

$
0
0

I recently read about the ability to simplify the user navigation in Microsoft’s Dynamics 365 Omnichannel for Customer Service and Customer Workspace apps. I’m all for something that might reduce my mouse clicks! In this post I will explain how I configured this option and give my initial thoughts.

Normally in the multi-session interfaces we have in Omnichannel for Customer Service or Customer Workspace apps user can manually create sessions by holding shift and clicking the mouse on a Dynamics 365 record / hyperlink. Or to open new tabs in an existing session they can hold the Ctrl key and click the mouse.

Don’t get me wrong this navigation works really well. But wouldn’t it be “nice” if users didn’t have to hold the shift or Ctrl keys? And more importantly had to put less thought into when to start sessions or open tabs in existing sessions.

As I have already mentioned we have two apps that contain this multi session interface. In my opinion the biggest benefits might be achieved by applying this idea to the Customer Service Workspace app. My logic being that with Omnichannel as users click on notifications for incoming communications new sessions will automatically start anyway. But with Customer Service Workspace we might not be using the communication channels and simply want to start new sessions as cases or any record is opened from dashboards or views.

You can read Microsoft’s full instructions on enabling this feature using the link below. I will mention the process in this post but I encourage you to read these instructions. And you will also need to copy some code which is best done directly from their instructions.

https://docs.microsoft.com/en-us/dynamics365/customer-service/csw-overview#navigate-and-view-records

Setup Simplified Interface

So first of all I logged into Dynamics 365 and opened my Customer Service Workspace app. I then clicked F12 to open the developer tools and selected the console tab.

Next I copied the code mentioned above into the console tab to run it. After running the code you need to run one of three different commands.

For Customer Service workspace:CSWAppUtility.setMultisessionNavigationImprovementsSetting();

For Omnichannel for Customer Service app:OCAppUtility.setMultisessionNavigationImprovementsSetting();

For both the multisession apps:AppSettingUtility.updateAppSetting(‘msdyn_MultisessionNavigationImprovements’, true);

Below you can see that I ran the command for the customer Service Workspace and soon afterwards received a message that the update was successful.

Testing the change

Before I could test the change I did find I needed to refresh my browser. But once done I my simplified navigation was working. Simples!

As you can see below, from any “home” page clicking on a case (or any record type) will automatically start a session containing that case.

Tip: With the Customer Service Workspace you can define a session template for each entity. So if I want to control what tabs open in the session you could do this using a template.

Now my session is open clicking on any link will open a new tab in that session. Below you can see that I clicked on the customer name and a new tab opened.

But what happens if the user clicks on another account record? …. Well then another tab would open for the second account.

Or what happens if the user clicks on the same account again? …. If the record you are trying to load is already open in your session it doesn’t open another tab. Instead the existing tab is given focus. I really liked that feature!

If you create a new record (using quick create) the quick create form opens on the right hand side, as normal. When you have finished with the form you return to the tab within your session. Whilst in the middle of a quick create the rest of the screen becomes inactive. So you can’t swap sessions whilst creating the new record. (Which felt reasonable to me!)

And if you try and create a new record when no quick create form is available the new form simply opens in a new tab in the current session.

Also, if I am in a session and I would like a new session to open for the record I’m opening. Then I can still use “Shift Click” to start a new session.

Conclusion

So what do I think???

This is a subtle change but it is actually one that will greatly benefit users. I think anyone “just” managing cases or other entities directly in the Customer Service Workspace will find this simplified navigation to be exactly what they’d want. I doubt anyone will want to reverse this change after they’ve enable it.

I will flag that I haven’t tried to disable this style of navigation! And I’m not sure the Microsoft instructions mention an approach for removing this change. So you might want to test this out in a sandbox before upgrading your production instance.

I think mixing this change with session templates and app profiles could result in an excellent experience. If you don’t know about session templates or app profiles I suggest you look them up! Plus I might create a blog post for those soon.

All in all, nice job Microsoft.

MB-230: Microsoft Dynamics 365 Customer Service – Case Management (Part Two)

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will continue to describe the important topic of case management.

Part of the skills measured statement relating to case management is shown below. From this we can see that case management covers a wide variety of capabilities;


In total I will cover quite a bit of ground! In a previous post I have already included;

  • An over of Cases
  • Case Views
  • Searching Cases
  • Creating Cases from Activities

This post will cover multiple topics, including;

  • Resolving Cases
  • Parent / Child Cases
  • Merge Cases
  • And maybe more!

Resolving Cases

The purpose of a case is to track customer issues, questions, and requests. And then to manage them through to resolution. It is therefore a given that cases will eventually be resolved and makes it important to understand the resolution process. When cases are resolved we must enter the resolution type, resolution and billable time. Out of the box the two resolution types are “Problem Solved” and “Information Provided.”. The resolution field is simply a text field describing how the case was resolved.

After resolving a case its status changes to resolved. Additionally a resolution activity is created that we can see in the timeline.

Cases are never resolved with open activities. I guess technically this means they can’t be resolved until all activities are completed. However if you try to resolve a case with open activities, you will see a prompt similar to the one below. If you click confirm all open activities will be marked as cancelled. This is because it is not possible to resolve a case with open activities.

It is however possible to create an activity on a resolved case, that way we can have open activities on a resolved case! Why? The resolution logic forces us to complete everything before resolving, that makes sense! But imagine you want to call the customer back to check they were happy with the service provided. Then you would need to create an activity on the resolved case.

Cases can be cancelled or deleted. Deleting a case will also remove all of the associated activities, notes and attachments. Cases cannot be cancelled whilst open activities exist. (So any open activities will be marked as cancelled when you opt to cancel the case.)

Cancelled or resolved cases can be reactivated. (Obviously deleted ones can’t!) You should probably be aware that a resolution activity is created each time a case is resolved. Meaning we can see multiple activities for case resolution. (An example is shown below.) . If the case be reopened the status on the existing resolution activity will change to cancelled. Another resolution activity will be created when the case is finally resolved. Meaning you can have multiple resolution activities per case but only one will have a status of complete.

Below you can see that I have two case resolution activities in my timeline as the case has been resolved, reopened and then resolved again. You might want to try this process as part of your revision. Once you have multiple resolution activities try opening those to see the detail of each. (You should notice that the status on the original resolution activity becomes “cancelled”.)

As we resolve cases the billable time and total time on the case is defaulted to a sum of the duration of the completed activities associated with the case. The billable time can be changed as you may need to bill more or less time than the amount calculated from the activities. This sum of billable time is always all completed activities. (Meaning if you spent 5 hours working on a case, resolved it, reactivated it, spent 5 more hours and then resolved again. You would have two resolution activities, the first for 5 hours. And the second for 10 hours.)

As cases are resolved they will disappear from the active case views, as they are no longer active. They can however still be viewed in the resolved case views.

With earlier versions of Dynamics 365 I would have told you that the case resolution dialog cannot be customized. (At least not in a supportable way!) But more recently Microsoft has given developers the ability to customize the resolution dialog. We can now add or remove fields on the dialog or even use a Quick Create form as a replacement for this dialog.

Below you can see that with the Service Management area of the customer service hub I can control various settings about the behavior of the customer service app. (No doubt we will return to this screen in future posts!) In this instance you can see that under the service configuration option we have a field which allows us to define what type of case resolution dialog to use. Be that the out of the box (standard dialog), a customized dialog or quick create dialog. Obviously if you select customized dialog or quick create a developer may need to have created you a customized experience.

Why is this important?? Well… one common example is the billable time field. I have explained how the billable time is calculated and also you may notice it is a billable field. But many organizations might not bill for each case. It may therefore be a common customization to hide this billable time field. (Please understand that this is just one example of why we might customize the resolution dialog, obviously many other reasons will exist.)

If you’d like to find out more about customizing the case resolution dialog … check out the link below to Microsoft’s documentation on the subject.

Modify case resolution dialog in Customer Service Hub | Microsoft Docs

Parent / Child Cases

Parent and child cases are designed to help cases be used efficiently. You can create a primary case (parent) and then create a secondary case(s) (children).  Child cases can inherit information from a parent case. This can be very useful to group related problems. You might do this is a single customer has multiple issues that will be worked on together. Or you may have a common problem with multiple customers.

You can see child cases in the case relationships section of the case relationships tab. To create a child case you use the “Create Child case” button which can be found in the command bar.

Note:
You might need to be aware that a child case cannot be a parent. Meaning a complex hierarchy of cases is not possible.


You can see below that I have clicked “Create Child Case”. A quick create form has opened an I can fill in any additional information as required. You may notice that many fields will default from the parent into the child. We will look at how to control that behavior later!


Below you can see that on my parent case, in the “case relationships” tab I can view the child cases. I could also create a new child case from here or even use the “…” option to associate an existing case to this parent.


It is also possible to build a parent / child relationship between existing cases. Below you can see that I have selected two existing cases in a view. (I could select many more cases!) I can then use the “Associated Child Cases” option to link these.


Having clicked the “Associate Child Cases” button I am presented a list of the selected cases. I can then pick which of the cases will become the parent.


Several settings control how parent / child cases behave. I have already mentioned that we can control which fields are defaulted on the child from the parent. We may also want to define what happens to the child cases when the parent is resolved.

Below you can see that from within my Customer Service Hub I have opened the “Service Management” area. In here you will find an option called “Parent and Child Case Settings”.


Below you can see that within the settings I can control which fields are inherited on the child from the parent. Out of the box the case title and customer are copied from the parent case. But I might want to add additional fields. Maybe, for example, the same user should own the child case as the parent.


Next you can define what happens when you try to resolve the parent case.

One option is to stop the parent case being resolved until all the children are resolved. To give an example … imagine you are installing a new central heating system. You might have multiple separate cases to install the boiler, radiators, thermostat and more. You won’t resolve the parent for these until all the separate jobs (cases) have been completed.

Another option is to resolve all the children when the parent is resolved. For this think about other scenarios. Say you provide internet connections to customers. You might have multiple customers effected with the same outage. In this example resolving the primary parent issue would in turn resolve the issue for all the effected customers.


Merge Cases

Sometimes you might find that duplicate cases have been created, maybe a customer reports the same problem on different communication channels or multiple contacts at an organization report the same issue. When this happens cases can be merged, avoiding the need to resolve each incident separately.

Merging cases combines related open activities and attachments under one case and cancels the other case(s).  When a case is merged, the state of the case is changed to cancelled and the status reason is changed to merged.  You can merge up to 10 cases at a time.

To merge case select up to 10 cases and then select the merge case option. Typically I find it will be active cases we’ll want to merge but it is possible to merge resolved cases.

Below you can see that I have selected three cases and now I can use the “Merge Cases” option to merge them.

Having clicked merge cases I am presented with a list of cases to merge. I select the case I want to retain and click merge.

If your merge is successful you will see a confirmation message. Alternatively you might see an error. (For example, an error could happen, for example if you try to merge multiple child cases with different parents.)


You can see any cases that have been merged into a case in the case relationships tab. Notice that my merged cases now have a cancelled status.


As part of your revision I suggest you try merging multiple different cases. One thing to test is what happens with any activities (and notes) that already exist on the case. As below you can see that the timeline on my merged case has multiple activities. These came from the now cancelled cases. (Meaning the activities will no longer show against the cancelled case!)

If you merge a case that has child cases (i.e. A Parent), then the child cases become child cases of the new parent case.

But you can only merge a child case into another child case if both of the child cases have the same parent case.

Theoretically, you could merge cases from multiple customers. (Although “maybe” this isn’t common.)

Autonumbering

Whenever a case is created it is given a unique reference number. This can be really useful to help you search for cases, often this number will be given to a customer. So they can quote it in any follow-up communications. Below you can see that the case number is often shown in views. (You will also find it prominently displayed on the main case form!)

Often times the logic applied to generating this number will remain unchanged. But you do have some control how this number is generated.

Tip:
Auto numbering actually applies on other entities including contracts, cases, quotes, orders, invoices, campaigns, articles, categories and knowledge articles.

Knowledge articles are an another example of a customer service table which can have an auto number applied.

You will find the “Auto numbering” option in the “Data Management” area of the settings for your environment. You can find this option within the “Power Platform admin center”. Which is accessed from “admin.powerplatform.microsoft.com”.

Opening the auto numbering option will give us access to amend the format of the number used. For each table that has an auto number we can set the prefix and control the length of the suffix. (The suffix can be 4,5 or 6 characters long.)

Hopefully this post has helped you prepare for your MB 230 exam. I have covered quite a lot of concepts in one post. As always I do stress that you should test out these options for yourself, do not rely on just theory!

Customer Service Workspace – App profile manager, session templates and more!

$
0
0

Customer Service Workspace for Microsoft’s Dynamics 365 gives us the ability to open sessions and tabs in customer service scenarios. This can be very useful when an agent is juggling resolving multiple cases simultaneously. When they open a case it will be common to open the customer record, in this post I will show how we can always open the customer record and therefore save a few clicks. And in doing so, I will introduce several concepts including the app profile manager, session templates and application tabs.

App Profile Manager

Firstly I would like to mention the App profile manager. As I am going to use this for my example ….

The App profile manager allows me to create profiles which in turn I can assign to users. This gives us an approach to customize the interface for specific users. Some of my users may require particular behaviour when a session starts, maybe some want the productivity pane to be open by default, maybe some need access to specific communication channels etc etc.

You may already be using Customer Service Workspace or the Omnichannel for Customer Service apps without using the app profile manager! This is probably working fine as any user not assigned to a specific app profile will be using the default app profile. If you apply any customizations to the behaviour of the Customer Service Workspace app I advise you to consider using the App profile concept. You can of course start off with just one profile but by using the App profile manager adding suer specific customizations later will become an easy process.

Something else that is really cool about app profiles is that they are solution aware. Meaning you can migrate them from environment to environment.

Below you can see I’ve opened make.powerapps.com. I have used the app option to find my “Customer Service Workspace” app. It is from here that I can open the “App profile manager”.

Initially when you load the App profile manager you will be presented with a screen something like the one below. If this is your first time loading the App profile manager you will probably want to use the “create an app profile” option to start creating your first profile. Or you can use the “See you app profiles” option to open a list of your existing app profiles.

If you are creating a new app profile, you will need to give your app a name. Then specify a unique name.

Tip: The app unique name needs a “publisher” style prefix, say “neil_”!

Now your app is available and you can start to customize it.

Example Session Template

Whenever I consider a new feature like this I like to work with an example. Hopefully showing how an example session template will work I can help give you ideas for your own sessions.

Note: In my example I am going to focus on session templates but you should be aware that within my app profile I can control the behaviour of the productively pane. I can also define which omnichannel or third party channels I might want to include in this profile. Say some of your users need access to web chat and others don’t then you can use this feature to support that requirement.

In my example, whenever a user opens a case I want that case to open in a new session. I also want to make the title of the session the case number.

But I would also like to go further, as whenever the case opens in a session I would like a second tab which will include the customer associated with the case. Not forgetting that sometimes that will mean opening a contact and sometimes an account.

If I have an existing session template I can search for that and include it in this profile. Or I can use the “+Add entity session templates” option to create a new one. (As shown below.)

Below you can see that when I click the “…” option on an existing session template I can open it in the Unified Interface or remove it from this profile. Opening in the Unified Interface will open a fresh browser tab containing the session template and access to all of the other Customer Service Workspace options.

Below you can see that I have created a customer session template. I will give more detail of each field below!

FieldDetails
Name“Custom Case Session”

This can be anything you like, it describes the session template.

Unique Name“neil_CustomCaseSession”

The format is important here! You need to add a prefix which will normally be your publisher. So in my example “neil_”.

Type“Entity”

Two types of session exist.

In my example I have used “entity” as when a user opens a case entity (or phrased another way a case table row!) then we want a session to start.

The other type of session is a “Generic” session. We use that with Omnichannel for Customer Service when the session start will happen as conversations begin.

Entity“Case”

Assuming your session type is “Entity” then you will need to specify which table triggers the start of these sessions.

Title“{anchor.ticketnumber}”

We can optionally add details of how to name the sessions as they open. If you leave this field blank then the primary field from the entity selected would be used. Typically this would be a name field or in my case example the title of the case. But in my example I didn’t want to use the title as the shorted ticket number seemed like a better field.

I have surrounded the “slug” in brackets. And also added the keyword “anchor.” before the name of the field. This is because we can reference fields from the tab used to open the session by adding this “anchor.” prefix.

Communication panel mode“Hidden”

In my example the communication panel is hidden. Other options include “Docked”.

We’d probably want to see a communication panel on a generic session that has been started as a result of an incoming omnichannel conversation. But in my example I don’t need the communication panel, hence the setting of hidden.

Having saved my session template I can add additional details. These may included which agent scripts to load at the start of the session. Or like in my example, any additional tabs you’d like to open. As each time my session opens I wanted to also open a tab contain the customer from the case.

Therefore I created an Application tab and added this as an additional tab on my session. I have shown my Application tab below. And again I will give you some additional detail below!

FieldDetails
Name“Customer – Customer Application Tab”

This is simply a descriptive name for my tab.

Unique Name“neil_customcustomer_applicationtab”

Like the session template the format is significant here! You need to create a unique name that is prefixed with your publisher. So in my example “neil_”.

Note: This idea of creating a unique name that includes the publisher prefix should start to make more sense when we add our app profile into a solution. As then the names for our templates will be following the same naming convention as other assets in our solutions.

Title“Blank!”

In my session template I completed the title field. As an example in my application tab I left the title blank. This is because I was happy to name the tab as the customer being opened.

Page Type“Entity Record”

In my example I want to open an application tab containing a Dataverse table. (aka entity).

But I could have selected one of several different page types. Including an entity view, web resource, dashboard and more.

Description“Blank!”

I didn’t enter a description. I was being lazy!

In a production instance it might be useful to enter details of how and when this tab will be used. As that might aid future maintenance.

Can close“No”

When my customer tab opens I want it to remain open until the session is close. By entering “Can Close” as “No” I prevent the users from closing this tab.

ParametersDepending on the page type different parameters may exist. Having saved my application tab as I had select “Entity Record” I have a set of standard parameters. These included “createFromEntity”, “data”, “entityID” and “entityName”.

In my example I want to open an existing customer record into the tab. The customer many by a contact or account. So I need to supply two fields, one being the GUID of the record to open and the other being the type of table (entity) I want to load.

Both of these fields can be “grabbed” from my anchor tab. Which will be the case I am opening.

Set the “entityID” to “{anchor._customerid_value}”. This will be the GUID of the customer I want to open.

Set the “entityName” to “{anchor._customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname}”. This will be the entity type I am trying to open. So “account” or “contact”.

Assign Users

Having completed the definition of my app profile, I can now add users. These will be the users that will use this profile in preference to the default App profile.

Below you can see that I have opened my App Profile and selected the users option.


A screen similar to the one shown below will open and you can add users into this profile.


Testing

Once I had completed the above changes I opened my “Customer Service Workspace” app. You can see below that by default I have my customer service agent dashboard open.

Opening a case into a new session from this dashboard or any home page will start a session.

Tip:
Out of the box use “shift and click” to open your case into a new session. Or configure the simplified interface option that will open all records opened from a home tab into a session.

As my case opens in the session several things happen!

Firstly notice that the session name is not the title of the case. As above I set the session title to be the case number instead.

Also notice that a second tab opens that contains my customer record.


And when I click on my customer tab notice that I don’t have the ability to close the tab. Meaning the user is forced to keep this tab open until they have finished with the case and close the session.


Solution Aware!

I mentioned earlier that app profiles are solution aware.

As a test I created a solution. You can see that I then used the “Add existing” option. Here you will find an option called “App profile”. So I used that to add my custom app profile into my solution.

Next I used the add required components option on the app profile I just added into my solution.

You can see below how my application tab and session template that had been included into my App Profile are now added into my session for me. I could (of course) have added these components manually but I found using the “+ Add required components” option made my life really easy!

I can now export my solution and import it into other environments as required.

Hopefully by showing this example I have introduced you to the Customer Service Workspace and shown how I can use the App Profile Manager to customize my agent experience. I hope this example has proved useful and that you can adapt this idea for many other purposes. Enjoy.

Dynamics 365 Birmingham – Amazing Free May 2021 Event

$
0
0

We have our next “Birmingham” Dynamics 365 event planned for Wednesday 19th May at 5:30pm. This is a free virtual event so open to everyone.

Everyone can register on meetup here for free.

Our next exciting Dynamics 365 Birmingham User Group meeting will be taking place on Wednesday 19th May 2021 at 5:30pm, and we would love to have you along!


We hope to see our local friends. But being a virtual event EVERYONE will be very welcome.

This time we have two amazing speakers. But I would think that … one of them is me!!!

Session : A new & unique approach to data cleansing in D365
Speaker : Ben Warren, The Software Bureau

Ben Warren, from The Software Bureau & Clean Contacts will join us to describe their data cleansing tool. Every business has to clean their data, but the current methods can be complicated and risky. Clean Contacts enables automated data cleansing of UK consumers – identifying where an individual has moved, where they have moved to or if they have passed away.

Hosted within MS Azure, with no data having to leave the environment to ensure maximum security, and integrated into D365 using the Power Platform.

This session will provide an overview of the solution and demonstrate how a D365 user can gain total peace of mind.

Session : Customer Service Workspace
Speaker : Neil Parkhurst (aka me!!)

Dynamics 365 now includes several user interfaces your customer service agents may want to use. I’m sure you know we already have Customer Service Hub, Unified Service Desk and Omnichannel for Customer Service.

Customer Service Workspace is the newest kid on the block! So what does it offer and when might you use it in preference to these existing established options.

In this presentation you will see a demo of the Customer Service Workspace. And additionally the App Profile Manager and more!!!

Everyone can register on meetup here for free.

MB-230: Microsoft Dynamics 365 Customer Service – Automate Cases (Part One)

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will begin to discuss the options available to use for case automation.

Part of the skills measured statement relating to case management and case automation is shown below. From this we can see that case automation includes many topics. Including record creation rules, case routing, status reason transitions and more.

In this post I will cover;

  • Advanced similarity Rules
  • Record Creation and Update Rules
  • Case Routing Rules

In a future post I will cover;

  • Case resolution form
  • Status reason transitions
  • Busines Process flows

Note:
I will leave “Customer Voice” for a further post as that “feels” like a bigger subject that deserves its own post.

Similarity Rules

As agents work on cases it can be useful to view similar cases, as these might give clues to resolution approaches. Or maybe it might highlight a fact that other people are having a similar issue. Advanced similarity rules give us a way to configure how this feature will look for possible similar cases.

Below you can see that I have opened a case and that I have navigated to the similar cases area. Having done this I can see other similar cases.

If the agent thinks the information on any of these case may be useful …. Click the case will open additional details without them needing to navigate away from the current case. As shown below!

As mentioned in my introduction to this section we can tailor the similarity rules. Maybe in your organization we only want to look at resolved cases or maybe you’d like to add the ability to search additional custom description fields. Below you can see that I have opened the “Service Management” area of my customer service hub. Here we will find an option called “Advanced Similarity Rules”.

You will see the rules in this option. Notice that my rule is active. If you wish to amend the rule you will need to deactivate it. And don’t forget to re-activate … as until you do the search will not operate!

Opening my rule will initially who various options. I can for example add “noise key phrases”, these are terms I wish to exclude from my search. Maybe you have commonly used business phrases that would add no value in being searched and could also result in false matches. Additionally I can filter by the case status. Meaning I could focus on just resolved or open cases if required. (Or maybe I want to exclude all cancelled cases from my search!)

The match fields tab lists the fields which are being used in my similarity search. In my example we are just looking in the case title and description.

We can option to complete a text match on the fields, meaning we’d look for matching “phrases” within this fields. Alternatively you could also set the criteria to look for an exact match.

Note: You may need to be aware that the case similarity logic uses the relevance search. Which should ideally be enabled to allow accurate matches to be returned. Additionally any fields enabled for exact matching logic will need to be defined as “find columns” in your quick find view on the case entity.

You will find a detailed explanation of the implications of the relevance search and how to add columns into your quick find view in the article below from docs.microsoft.com

Suggest similar cases for a case with Dynamics 365 Customer Service | Microsoft Docs

Case Routing Rules

An important aspect of working with cases is ensuring the right people are working on the right cases. For this we use case routing rules. Cases can be routed to a team, user or queue.

This will happen when a case is created or the “Save and Route” command button is selected. I think the idea being that you’d initially route a case to a queue when it is created. But during the life of the case we can use the “Save & Route” option to trigger the case to be re-routed to an alternative queue. (You might do this, for example, when the priority changes.)

You might want to send all high priority cases to a particular queue or assign all major complaints to your complaints manager.

Whenever the “Save & Route” option is selected you will be prompted that the case is going to be automatically routed. The routing rules are then reviewed and the case assigned to a team, user or queue as required. If not matching rule is found the cased would be saved and the ownership would remain unchanged.

Case routing rule sets are created in the settings / service management of Dynamics 365. To find this open the customer service hub and change to the “Service Management” area.

The concept is that we create a set of rules for a table (entity). You might find it useful to understand that we can create routing rule sets for any entity that can be queued. For example, above I have created a routing rule set that might apply to leads collected from our web site.

Note:
Organizations can only have one active routing rule set [er entity at any given point in time.  If you create a second one and activate that, the first rule set will return to a draft status

Below you can see an example rule set. Notice that I have two rule items (you could have more) … in my example I have deiced to route high priority cases to a particular queue. I also route any cases that have been generated from Internet of Things (Iot) alerts to a particular user.

Note:
After you create a rule set it will be in draft mode. You need to select activate to make it live. Only one rule set can be active at any point in time. So activating one rule set will set all others back to a draft status.

Notice that my rule set below is “Read-only” meaning it is activated. If I need to make any changes I will need to deactivate it, make the changes and then re-activate.

Opening the detail of my rule item shows that I can filter cases using rule criteria. This is used to decide when a particular routing rule should apply. In my simple example I am used checking the priority of the case but you may need to create more complex rule criteria.

Below the rule criteria I define what action I want to take. In my example I have decided to route to a queue called “Urgent Cases”. But I could have easily routed to a team or user.

We have seen that I can route cases when they are created or when I select the “save & route” option. It is also possible to select one or more cases from a view and use the “Apply routing rule”. This might be really useful if you need to re-evaluate the queue for many cases at once.

Record Creation Rules

Record creation rules are something I often think about in context of customer service scenarios but you could also use them in many other scenarios. For example in service I might want to create a case when someone sends an emails to my “support@blablabla.com” email address. But equally I might want to create a lead if someone sends an email to “sales@blablabla.com”.

Tip: If you haven’t used record creation rules for a while ensure your revision includes creating some rules! As they have evolved in recent times. In that they are now based on Power Automate Flow rather than classic workflows.

You can find the option to setup automatic record creation rules in the service management area of the customer service hub. I have shown mine below.

Tip:
You might find this article from Microsoft useful!

Automatically create or update records in Customer Service Hub (Dynamics 365 Customer Service) | Microsoft Docs

Rule Creation

Initially we create the record creation rule “header”, this includes setting the source type, queue and such like. Below you can see I have linked my record creation rule to a queue I’ve called info@npdynamics.com.

The queue field allows me to define the source queue. Often this could be a queue associated with a “generic” email account. For example, info@npdynamics.com. Meaning any customer who sends a message to this type of address may be registering a service request or sales enquiry. Prior to creating the record creation rule you may need to create and test a suitable mailbox.


Activity type to monitor, a common use of automatic record creation rules is to create records as emails arrive. But we can configure multiple other source types. Including phone calls, social activities and many more.

Additionally you may need to check (or change) the options on the advanced tab. Here you can control when happens when an email from an unknown send is received. In some scenarios you may want to ignore emails from unknown sends. But in others you may want to automatically create contact record for these people.

Plus we can require a valid case entitlement. In the scenario we would want to identify the sender and also check they are entitled to support on the email channel. (or other channels as required!)

The final option lets us define what will happen is an email is received regarding a resolved case. We might want to track those emails against the resolved case. But it may sometimes be an advantage to create a new case if an email regarding a resolved case is receive ed. (As this might suggest a new problem.) This logic can be tailored, as maybe you don’t want to create a new case if a reply is received quickly. But after a period of time it might suggest the customer still has an issue and a fresh case might be required.


Having specified the “header” details I can then add the record creation and update rule. In my example I will create just one rule but you could have multiple rules with different conditions active on one mailbox.

Below you can see that we give the rule a name and then specify a condition to define when this rule should be triggered. In my example I decided to add some conditions to try to filter out automatic replies (e.g. out of office messages) and email that don’t allow replies.

Having defined my condition I now say which type of entity I need to create.


In background a Power Automate Flow will be generated for me! I can click on the “Save and open Power Automate” option to review this. Mine is shown below. In is important that you notice that some of the actions in this flow tell you not to rename the action. So don’t! The actions will be pre-populated and may be sufficient to create your case. But equally you may need to amend these. (For example, you may have some custom fields on the case you need to default etc.) You may also want to add some additional actions into this Power Automate Flow. Maybe you’d want to send an acknowledgement to the customer or a notification to an agent.

Tip:
As part of your revision I suggest you experiment with make changes to this Flow and maybe add some actions to help you understand how this process works.


I have actually covered quite a lot of theory in this post! Similarity rules, case routing rules and record creation rules are important but potentially complex concepts, therefore I suggest your MB 230 revision includes plenty of hands on time using these features.


MB-230: Microsoft Dynamics 365 Customer Service – Automate Cases (Part Two)

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will begin to discuss the options available to use for case automation.

Part of the skills measured statement relating to case management and case automation is shown below. From this we can see that case automation includes many topics. Including record creation rules, case routing, status reason transitions and more.

I have already covered the following topics in a previous post;

  • Similarity Rules
  • Record Creation and Update Rules
  • Case Routing Rules

In this post I will focus on;

  • Case resolution form
  • Status reason transitions
  • Busines Process flows

Note:
I will leave “Customer Voice” for a further post as that “feels” like a bigger subject that deserves its own post.

Case Resolution Forms

The point of a case is to log and resolve a customer query. Therefore the resolution approach is essential to this process. With previous versions of Dynamics 365 we had just one possible approach to case resolution but we can now customize the resolution process. It will therefore be essential that during your revision you are aware of the options to customize the resolution dialog.

Within the customer service hub you will find the service management area. It is here that we find many options that control the settings connected with customer service. In the “Service Configuration Settings” option you will find the ability to change the case resolution dialog from the standard dialog into a customizable dialog or a quick create dialog.

Standard Dialog

The standard case resolution dialog is shown below. This is the standard approach to case resolution that has existed in Dynamics 365 for many versions. And in many situations will work perfectly well without change.

Customizable dialog

Next we have the customizable case resolution dialog. At first glance it will look very similar to the standard dialog!

However as a developer I can use “make.powerapps.com” to customize the resolution form. So if we navigate to the “Case Resolution” entity you will find the “Information” form. As an example I have created a solution and added the information form of the case resolution entity.

Once done I can now use the Power Apps form editor to make makes to the form. Maybe, for example, I don’t need to see the total time and billable time fields. So I could simply hide them on this information. Once the change is completed and published my case resolution form will behave differently.

Quick create dialog

The final option available is to use the quick create dialog from the case resolution entity. And like the customizable dialog mentioned above a developer could tailor the quick create form as required.

Below you can see an example of the quick create dialog. Notice that the user experience is slightly different but until I customize the quick create form the fields is identical.

Tip: This post from Microsoft includes a description of a possible way we might want to customize the resolution process.

Status Reason Transitions

The is idea of customizing status reason transitions is to enforce a logic in what status values can be assigned next. You may, for example, want to ensure a user can change an “on hold” case to be “In progress” but you may want to prevent the user taking an “on hold” case directly to a resolved state.

Before considering status reason transitions you should ensure you understand the concepts of status and status reason.

  • Status… the status is the “ultimate state” of a record. Typically the values cannot be customized and for most entities just two states exist. (Active and inactive.) Although a case can be “Active”, “Resolved” and “Cancelled”.
  • Status Reason … the status reason field shows the reason for a particular state. For example, an active case can be “In Progress”, “No Hold”, “Waiting for Details” and “Researching”. You can customize the options in the status reason! (Meaning you can add additional reasons as required.)

Status reason transitions allow us to decide which values are available for transition at each reason. This concept might be of particular use if you have created custom status reason values and want to control their behavior.

Below you can see that I have opened my status reason field on the case. It is here that I have customize the options available. I can also use the “edit Status Reason Transitions” option. Importantly notice I am using the classic interface, you may need to be aware of this! As at the time I am creating this blog post I don’t believe you can edit the transition reasons in the newer interface found in “make.powerapps.com”. But luckily we do have a “switch to classic” option which helps in rare situations like this!

Below you can see that I have clicked on edit status reason transitions and I have enabled the feature. Now, for each status reason I can define which reasons can be selected.

For example, with the settings below I can change a case in status “Waiting for Details” to be “Information Provided”, “Cancelled” or “Merged”. But no other state. Therefore before the case can be resolved I would force the user to show that the information has been provided.

This article from Microsoft might be useful when reviewing status reason transitions …. Define status reason transitions with Power Apps – Power Apps | Microsoft Docs

Business Process Flows

Business process flows are a key element of working with cases. Typically, organizations have specific stages in their service management processes. Business process flows can help guide users through the steps to complete each stage.  On a Dynamics 365 record, each stage of the process is represented by a circle.  Additionally, within each stage multiple steps can be found that the user needs to take before they move on to the next stage.  Some of these steps  may be mandatory and need to be completed before the user can navigate to the next stage. (For example: in the identify stage you must enter the customer before moving to the research stage.)

You can see which is the current stage as it has the “double circle” icon. Usefully we can see how long this case has been paused at this stage. Completed stages are marked with a tick.

Clicking on a “stage circle” shows the steps (or fields) which need to be completed before progressing to the next stage in the business process.

The out of the box business process flow on cases includes the following stages / steps;

StageSteps
IdentifyFind customer (Mandatory)

Find Contact

ResearchAssign to Others (Mandatory)
ResolveMark as resolved

Business processes help to provide a consistent approach to handling cases. They can also contain conditional branches giving the ability to handle multiple scenarios.

You can move forward and backwards in the business process. The active stage is indicated by the position of the “double circle” icon in the process bar. And how long the entire process has been active. In my example above the research stage has been active for just 1 minute, as I have only just move the process forward to that stage.

An out of the box process for management of cases is provided but it can be customized to meet an individual organization’s needs. In fact I would suggest that this process will almost always need to be customized to meet the specific needs of each organization.

Note:
Cases aren’t the only record type that can leverage business process flows, they can be applied nearly any record type in Dynamics 365. It is quite common, for example, to have a business process flow to manage the lead to opportunity cycle.

In the case resolution stage we can use the finish button on the business process flow to stop the timers in the business process flow. Therefore, after actually resolving the case you may want to also use the finish button to halt the business process flow.

Tip:
If you do finish the business process flow and the case is reactivated, you may need to also reactivate the business process flow. If, for example, you need to move the stage back to “Research” now the case is re-opened. You do this from the Process option on the case. (As shown below.)

I suggest that part of your revision should include “playing” with the put of the box business process flow. Try moving cases from stage to stage to understand how this operates in detail. And experiment with finishing and reactivating processes.

You may also want to attempt to customize the business process flow. Below you can see that we have a design screen available at make.powerapps.com. This gives developers that ability to tailor business process flows..

If you wish to find out more about amending business process flows …. you could refer to this post for more information on business process flows.

In this post I have (again) covered loads of detail! This time around case resolution, status reason transitions and business process flows. Your MB 230 revision should include some significant hands on time experimenting with these features. Enjoy!


Dynamics 365 Customer Service – Three Stage SLA

$
0
0

Out of the box it is pretty easy to create a two stage SLA with Dynamics 365. This is great as often we have a need for a service level agreement that relates to “First Response By” and “Resolve By”. But occasionally a requirement comes up for a third stage to our SLA, typically something like “Resolution Planned By”. I recently needed to configure exactly this for a customer and thought it might be useful to document the process.

In my example I am going to concentrate on the case table, as generally speaking SLAs will be applied to cases. But you should be aware that you can associate service level agreements with other tables. Maybe you have an SLA for work orders, leads or pretty much any Dynamics 365 entity.

The steps involved in creating the third stage are as follows;

  • Step One – Create a two stage SLA!
  • Step Two – Create a lookup to “SLA KPI Instance”
  • Step Three – Create a “Resolution planned” column
  • Step Four – Create a quick view form and add to case form
  • Step Five – Create third stage in SLA KPI
  • Step Six – Create SLA

Step One – Create a two stage SLA!

For the purpose of this post I am going to assume you already have a two stage SLA. This does mean I’m making another assumption that the reader already has at least a basic understanding of how service level agreements in Dynamics 365 operate.

Below you can see that I have created a very simple example SLA. I have just two SLA items, one for first response and one for resolve by. So a simple but typical SLA.

Below you can see that my SLA results in the standard set of two timers on my case record.


Step Two – Create a lookup to “SLA KPI Instance”

My two timers are fine! But in this example I want to add a third SLA, maybe I want to have an SLA to show when a resolution must be planned by.

Below you can see that I have created a solution for my example. Just to keep my changes grouped together! The first thing I need to do a create a new lookup field to the “SLA KPI Instance” entity. Below you can see that out of the box we already have two fields one for first response and one for resolve by.

Below you can see that I have created a new lookup field. I have mirrored the out of the box naming convention by calling my new field “Resolution Planned By”.

Step Three – Create a “Resolution planned” column

Next I want to create a simple yes/no column the purpose for this will become clearer soon!

I’m going to just call my field “Resolution planned”! Notice that I have opted for a “Yes/No” field with a default of “No”.


The purpose of this field is so that I know when a resolution has been planned. With my first response SLA I have an out of the box field called “First Response Sent” which can be used to know when this SLA has succeeded. So I am creating this field to simple mirror that idea.

In a real-world solution you could decide to know your SLA has succeeded using a different method. You will also probably want to add this field into your business process flow on the case table. But I am simply going to add it to my case form for my demonstration. My case form is shown below ….

Step Four – Create a quick view form and add to case form

I next want to create a new quick view form in the “SLA KPI Instance”. The reason being that the timers I see on the case form for first response and resolve by are actually quick view forms we can find on the “SLA KPI Instance” table.

Below you can see that out of the box I have two quick view forms that relate to cases!

I simply open one of these forms. I then change the field name on the form and save it with a new name. Say “Resolution Planned SLA”.

Tip: I think you should be able to complete this step in the newer editing experience we have in make.powerapps.com. But on the day I tried it I seemed to be struggling! So I reverted to the classic interface!

All I did was rename the existing timer control to be called “Resolution Planned In”!

My final step was to add my newly created quick view form into my existing case form. When I added the quick view form I selected the lookup we created earlier and then the quick view form we have just created.

Below you can see that I have positioned my new quick view form between the two existing out of the box forms.

Before you continue to the next step …. Don’t forget to publish all your changes!

Step Five – Create third stage in SLA KPI

Now my customizations have been completed I can create my the SLA.

Firstly I want to define a new SLA KPI. I do this in the service management area of the customer service hub.

Having selected the case “entity” I can now also select the “Resolution Planned By KPI” lookup as my KPI field.

Tip: Don’t forget to activate your new KPI after saving it!

Step Six – Create SLA

I can now create whatever SLAs I need using this new KPI. Below you can see that I have created a new SLA item in my demo SLA.

Notice that the KPI I have selected is my new “Resolution Planned By” KPI. Also that my success criteria is using the field I added onto my case earlier. As I am using this to know a resolution has been planned and therefore the SLA has been achieved.

My final SLA looked like this …. Notice that I have three SLA items. When I started I had two!

Now when I create new cases (as shown below) I have three stages in my SLA. “First response in”, “Resolution Planned in” and “Resolve in”. All three timers are independent.

You can see below by setting my “Resolution planned” field to yes my SLA for resolution planning changes to a “succeeded” status.

Hopefully you will agree the process of adding a third stage to the out of the box SLAs is pretty straight forward. You can of course have even more stages if needed! Enjoy.

MB-230: Microsoft Dynamics 365 Customer Service – Knowledge Management

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will review knowledge management.

The section of the skills measured statement that mentions knowledge management is shown below. As you can see we have quite a few concepts to cover connected with knowledge management. I will do my best to cover all of these in this post but please don’t forget that you should actually try these things out for yourself. Real hands on experience is very important!

A knowledge base is a collection of articles which is searchable and can be used to answer customer questions. The articles typically refer to products and services. In Microsoft Dynamics 365 you can search knowledge base articles and quickly associated them with cases, helping to resolve cases. Additionally those articles maybe emailed to customers or even accessed publicly from your customer service portal.

Search Knowledge Articles

Searching for knowledge articles may use the relevance search, so you might need to confirm this is enabled!

You can search for knowledge articles directly from the case form in the customer service hub. As shown below.

Tip: I suggest as part of your revision you experiment with the options available whilst searching!

Articles are initially searched based on the case title. But an agent could refine this search is if needed. The results are sorted by their relevance. The agent can change the sort order to be based on number of views or when the article was last modified. They can also filter articles by status, visibility and modified date.

Articles can be linked to cases. This is useful to show which articles have been used when resolving a case. You can see which articles have been used on the case relationships tab of the case form.

We also have a useful option to email a copy of the article to the customer.

And articles can be rated by agents. This might be useful later when we want to consider which articles are useful as they are and which need to be revised.

In addition to searching for articles directly from the case the agent can use the relevance search to find articles. In the screen shot below you can see that my search has returned both articles and cases which match with the keyword I entered into the relevance search.

You may find this article from Microsoft useful, as it describes the knowledge search ….

Search knowledge articles in the Customer Service Hub in Dynamics 365 Customer Service | Microsoft Docs

Maintaining Articles

We maintain knowledge articles in the customer service hub. You can see below that when I access knowledge articles I can add new ones using the “+ New” option or directly from the + icon in the ribbon bar. (aka Quick create)

Below you can see that I have started to create an article. Notice that a business process flow is used to help with the authoring process.

Tip: Using the business process flow will help you understand the flow of status values on knowledge articles. As they start off as proposed, become approved and eventually get published.

You can use the “summary” tab to view other details about the article. Including its version. Each article has a major and minor version. I will explain these in greater detail below.

It will be import to understand the life cycle of an article. Articles start off in a draft mode. When we move them forward in the business process flow they can be approved or rejected. Draft articles can use the status reason field to show if they are “proposed”, “draft”, “needs review” or “in review”.

Rejected articles will revert to the draft status. Additionally you will see an entry is added to the articles time line containing the reason for rejection.

Approved articles can be published. Below you can see that published articles can be given an expiry date. (Expired articles may still show in search results but will clearly show as expired.)

A published article may have a new version created. (A described below.) Or it can be reverted back to draft mode. Also, an option does exist to directly update the published article if required.

Articles can have major and minor versions. A major or minor version can be created for an existing article. At that point the current published version remains and a copy is created with a new version number. After any changes have been completed the original version will be archived and the new version will replace it.

We can see information in the articles timeline which overtime will provide a useful history of changes in the status and versions on an article. As each time an article is revised a post is created that will help us understand when revisions have been applied.

Additionally the article’s “SUMMARY” tab will give us access to some Additional fields and other related information. Including, related versions, related translations, related categories, related articles, related products.

Article Templates

When you create a new article you can create it as a blank article or use a template. Using templates might be a great way to ensure your articles have a consistent layout!

Below you can see that within the Service Management area of the customer service hub I can use the article templates option to create a template.

I can now use the “+ New from Template” option when creating a new article. As I do this a dialog will open and I can select a template.

Cases to knowledge articles

Sometimes it might be useful to create a new article based on an existing case. Doing so will create a draft article that contains key details from the case. If you do this from a resolved case the content of the article will include the resolution comments from the case.

Below you can see that I have opened a resolved case. The “Convert To” option allows me to create a knowledge article.

Having clicked convert to knowledge article, a dialog appears that will allow me to create anm article.

Below you can see my article has been created in draft mode. It will probably need some edits before being ready to publish but hopefully this process could be useful to at least create the outline of an article that can be revised, approved and published.

Configure entities for knowledge management

We do typically think of knowledge management as being something that applies to cases. (As it does out of the box.) But we can actually enable any entity for knowledge management.

Below you can see that within the “Service Management” area of the customer service hub I have opened the settings option. Within the settings option I can enable additional entities for knowledge management.

The article below from Microsoft explains how to add the knowledge control to the forms of any entity you have enabled for knowledge management.

Add the Knowledge Base Search control to Dynamics 365 Customer Service forms | Microsoft Docs

Categories and subjects

Each article has a subject and can also have categories. The subjects are mandatory and come from the subject tree. You can maintain the subject tree from with the service management area of the customer service hub. Out if the box you will have a default subject tree but this can be customized as required to reflect subjects relevant to your organisation.

You may find this article from Microsoft useful when considering maintaining the subject tree;

Create and manage subject tree (Dynamics 365 Customer Service) | Microsoft Docs

We also have categories that can be added to an article. Like subjects they can be maintained in the service management area of the customer service hub. And like subjects we can define a hierarchy of categories.

Unlike subjects, each article can have multiple categories. Below you can see that I have opened an article and navigated to the summary tab. In this tab, using the related information section I can add multiple categories to each article.


Tip: Categories can prove useful if you are using a customer service portal to show articles to your customers. As they can then be grouped by category.

Hopefully this post has given you a flavour of knowledge base articles and I hope I have covered most of the points significant to passing the MB 230 exam. I strongly suggest you experiment with this feature as part of your preparation. I am confident you will uncover even more cool features by getting some essential hands on experience.

MB-230: Microsoft Dynamics 365 Customer Service – Customer Voice

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will review surveying customer opinions with customer voice.

The section of the skills measured statement that mentions “customer voice” is shown below. Customer voice is a survey tool that we can use for many purposed connected with Dynamics 365, although in our context we are probably going to want to send a survey to a customer after a case is resolved. (etc!)

We use customer voice to capture, analyse and act on customer feedback. The concept being that surveys are created and sent to a customer. Any results collected are stored in the Dataverse and can be reported on alongside other Dynamics 365 data. (Such as cases.)

The customer voice surveys can contain various question types. Including choice, date, ranking, rating and text Additionally we can capture a Net promoter score (NPS) which is a value used to analyse the loyalty of customers. Many organisations focus on the NPS score as it suggests how likely a customer is to recommend them to a friend or colleague. (A good measure of overall satisfaction.)

Tip: Do not confuse “Customer Voice” with “Voice of the Customer” as that was a previous Microsoft survey tool which whilst conceptually similar to “Customer Voice” was quiet different. “Customer Voice” is a rebranded / enhanced version of Forms Pro which is now available as part of your Dynamics 365 subscription.

Opening Customer Voice

Lets start with a simple task … loading Customer Voice!

From my customer service hub (or other Dynamics 365 app) I can use the “waffle” icon.

At this point, if you have an older install, of Dynamics 365 you may see a “Voice of the Customer” icon. (As I have shown below.) This is not the “icon” you are looking for.

Click “All apps” will present more options. See below that I have now located the “Customer Voice” option. That is the one you want!

Once Customer Voice loads you will be presented with a screen that should look something like the one I have shown below;

Create a Survey

The surveys can be organized into projects. Each project would be a collection of related surveys. Your first step therefore will be to create a project.

Each project can include multiple surveys and will include reports that contain satisfaction (NPS) metrics that cover all t he surveys in the project. (A view of each survey within the project can also be created!)

After clicking “+New Project” I can select a project a template. The templates cover several common sales and service scenarios.

As MB 230 is a customer service exam … as an example I will focus on creating a survey using the “Support” template. But I suggest you experiment with the other templates as well. Maybe creating a survey from a blank start point may be a good exercise to help you appreciate all of the elements of a survey!

Next you will select where you would like to create your survey. This will be the Dynamics 365 (Dataverse) instance that contains your customer service application. This probably isn’t your default location so you may need to use the “see all environments” to locate and select the correct one. Once you have selected the correct environment click “Create”.

A survey is now created for me from the template I selected.

You can now amend the design of your survey and customize its appearance. For the purpose of this post I will not focus on these processes! As I’m simply going to work with the survey created from the template.

Tip: I encourage you to experiment with the design elements to add questions to the survey, And the customization options. Such as adding branding or conditional elements (using branching). As always hands on experience is important!

Send a survey

Once we are happy with the design of our survey we will need to distribute it. For this we have several options. Including;

  • Using automation (Power Automate) to send our survey.
  • Email the survey to one or more contacts.
  • By the customer selecting a link to the survey which might be via code you could embed into a web page, just via a URL or from a QR code.

I suggest you experiment with all of these methods of distributing a survey. I am going to stick with the customer service theme for my example. So I want to distribute a survey when a case is resolved. Meaning I will be use the “Automation” option.

Usefully, when we select the automation option a number of templates are available. One of which is “Send a survey when a case is resolved in Dynamics 365”. This is perfect for my example but again I encourage you to experiment with other templates and also maybe create your own automation from a blank flow.

Creating my Power Automate Flow from the template is simple! Firstly I click “Continue” which will confirm that I am going to connect this Flow to Dynamics 365 and Customer Voice.

Next I will need to select the correct Dynamic’s 365 environment before clicking “Create”.

After a very short pause I will see a message that my flow has been successfully created. At this point I can start disctributing the survey by resolving cases.

What has just happened is a flow has been created for me based on a template. In a real world scenario I will probably want to amend this flow before using it. As maybe I’d need to add some additional personalization or filter the sends to exclude certain customers or something ….

So; if you open make.powerapps.com and navigate to your correct environment. Under the “Flows” option you should now be able to see the flow which has been automatically created.

Below you can see that I have used the edit option to open my flow. I could now tailor any of these actions as required. Hopefully you can see that as cases are resolved a survey is going to be sent to my account or contacts as required.

Complete a Survey

As a test I created and resolved a case.(You should try the same as part of your revision!)

The default survey that I was sent looked like this;

Clicking begin survey in the email will open my survey in a browser

Review Results

In my quick example I have (so far) only created one response. (As I have resolved just one case.) As part of your revision I suggest you resolve multiple cases to generate some meaningful data.

See below how I could see details of each question. (I could also use the respondents option to see who has responded to the survey.)

Below you can also see that I can use the satisfaction metrics option to view those all important satisfaction / sentiment scores.

Other things to experiment with are adding alerts which would warn you of certain things. For example someone giving a very low satisfaction rating.

Dynamics 365

To complete my example / test I thought it was worth while to view my results in Dynamics 365. Below you can see that I have opened my case record. In the timeline I can see two actions. The first is an invite to complete the survey. The second is the response received.

Opening the response received allows me to drill into the survey responses. Here I can see details of the survey completed and all the answers given to the questions. This linking of the survey and the case could be very imp0-ortant. As now when someone gives a good ort bad survey response I can drill into the case to understand the full detail behind the scores given by the customer.

I hope you can see that we could do so much more with the “Customer Voice” option. My example has been a really simply eon designed to give you an overview of the basics. I encourage you to spend some hands on time with Customer Voice as part of your MB 230 revision. Enjoy.

MB-230: Microsoft Dynamics 365 Customer Service – Queues

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will begin to describe the concept of queues.

Below you can see an extract from the skills measured statement of the MB-230 exam. Notice that we’ll need to know how to configure queues, add cases to queues, configure tables (entities) for queues and more.

What is a Queue?

Let’s begin with a simple question …. “what is a queue!“.

A queue is simply a list of “work items” including cases, activities or other entity types. Queues are a place to organize and store “jobs” waiting to be processed. Dynamics 365 includes queuing and workflow tools to efficiently manage incoming requests, this post will explain the concepts connected with this management.

From a customer service point of view queues can be a very important concept to allow teams of users to manage incoming requests for service, as they can be routed to suitable queues to ensure the right agents work on the correct pieces of work.

Note: In this post I will not be discussing additional concepts we have within Omnichannel for Customer Service. As with that there is a concept of a messaging queue which is used to route conversations to agents. (I will cover those concepts when I review Omnichannel!)

Queue Types

There are essentially two styles of queue, user queues and system queues.

User queues are tied to an individual user (or team), whilst system queues are available across the whole system. User queues can be used to route important activities to individual users. Each user will have a queue (local user queue) created automatically as their system user record is created. Other users do not have access to see the details of the queue. It is possible to configure Dynamics 365 to automatically move items to local user queues as they are assigned.

System queues are used for queues of work that need to be shared. (For example: A queue of newly arrived support cases.) System queues are a container for work items that a group of people might work on. Queues can be configured for any record type in the system but by default queues are enabled to work with cases and activities.

With system queues agents can indicate what queue items they are working on, providing managers the ability to see who is working on what. (And importantly what items are not being worked on.)

System queues can be given a type of Public or Private. Public meaning that the queue is available to all users in the system. Private indicating that it is available to a list of members which can be defined on the queue. With a private queue you must be a member of the queue to see the queue items.

Queues can have an email alias, meaning you can create an email address such as support@mycompany.com and have emails to this address automatically routed to the support queue. (We may then also use an automatic record creation rule to create cases as emails arrive on this queue.)

As one example, below you can see an example queue definition. Notice that in this example the queue type is “private” and therefore the queue has a number of members.

Maintain Queues

Whenever a user or a team is created a default queue is automatically created, this is their “local user queue”. This shouldn’t be maintained! But system queues can be maintained in the queues option which can be found in the service management area of the customer service hub. (As shown below.)

Additionally queues can be created from the Service Management area of the advanced settings. Or in business management option within advanced settings.

It is worth understanding that the “queues” option within the customer service hub’s service area actually displays the “queue items”. So when you view a queue from here you see its contents not the definition of the queue.

Below you can see an example of a public queue I have created to handle any incoming support calls. Notice that I have assigned an incoming email address. When you do this an associated mailbox will be automatically created.

Note: Prior to creating this queue I created a suitable shared mailbox in Exchange, thus giving me a generic support email address without needing to create a Dynamics 365 user and consume a license!

When queues are created they are immediately active, they don’t need to be published to enable them. Active queues can be deactivated and reactivated. Queues can be deleted but ONLY if there are no queue items associated with the queue. Meaning that before you can delete a queue you must re-route the items to another queue or remove them before attempting the delete of the queue.

Note: Deleting the queue items removes them from the queue it does not delete the associated record.

The process for creating a private queue is pretty much the same as creating a public queue, except with a private queue you define a list of members for the queue.

Once the queue has been created you are ready to add queue items to the queue. With emails this could be automatically handled on the receipt of a new message, with cases you can use routing rules to automatically route cases to the queue. (Such as automatically move high priority cases to an escalation queue.) These options will be covered later in this post.

Or you can manually route items directly to the queue as required!

Add Cases / Activities to Queues

Now we’ll look at how to manually route a case (or other activities / entities) to a queue. From the case form you can access the “Add to Queue” option. Once selected you and chose the queue you’d like to move the case onto. In my example I have selected the “Urgent Cases” Queue.

Now the case is allocated to the queue, I can see it by looking to the list of active items in the “Urgent Cases” queue. You can also see the details of the queue the case is on by using the “Queue Item Details” button from the case. This will present a screen something like the one below. Notice that this allows the user to see (and change) which user is working on the case. (aka the “Worked by” field.) This field is set as users are assigned to the case or they pick the case from the queue.

Note:
If the case is already assigned to a queue the “Add to Queue” button still shows, in this situation the “Add to Queue” button would effectively remove the case from the first queue and move it to the new queue. A record can only exist one queue at any moment in time.

When we add a case to a queue, behind the scenes nothing is really happening to the case entity. But a new queue item is created on the required queue to show that this case is in the “list” of items to be processed from the queue. You can also move one (or more) items to a queue from an active case view. See below that you can select one (or more) cases and then select the “Add to Queue” option from the command bar above the view. This approach is useful when allocating several items in one go or when you want to quickly move something to a queue without opening the record.

The process for adding activities (or any entity enabled for queues) to a queue is pretty much the same. Although I suggest you experiment with a few entities to become familiar with this process. Below you can see I have added a phone call, case and task to the same queue. This also demonstrates that you shouldn’t think of a queue in terms of one entity type. It would be quite common to have a “support” queue that includes multiple entity types all of which need attention from someone in the support team.

Tip: This does mean I named my example queue badly! As I called my queue “Urgent Cases”. This queue could actually include entities other than just cases, so a better name might have been something like “Urgent Support Enquiries”.

Queue Items

Having routed one or more items, next we’ll look at how to work with the items on a queue.

A queue is simply a list of queue item records. Therefore, a queue is not a collection of records but a collection of queue items. What is routed to the queue is not the record itself but the queue item record. Meaning the queue item is a go-between record sitting between the record and the queue. When a queue is selected from a view the system is actually filtering the queue items by the queue selected. If you inspect a queue item you see no details about the actual case / activity associated, the queue item will simply state who is working on the case and when it entered the queue.

The drop down of queues will contain a list of all available queues, you also have their other options that might be useful to filter queue items. Including looking in all queues, all public queues or all queues the operator is a member of. These options are useful if a single person needs to monitor multiple queues.


Having selected an appropriate queue(s), you can then change the view to show;

  • all items,
  • just items you are working on,
  • items that are available
  • etc.

Using these views enables an operator to see work they have “to do” and work they “could” do.

The items someone is working on or items that are available is governed by the “worked by” field on the queue items. Meaning you’d either be looking at all queue items with the worked by set to the current user (your to-do list) or all items with a blank worked by (your “could do” list). The worked by field will remain set to the current user until the queue item is completed or the queue item is “released”, which effectively wipes the worked by field and puts the queue item back into the “pot”.


Pick Queue Items

From the queue you use the “pick” option to show when you are working on a case. (or other queue item.) Highlight one or more available queue items then select the pick option, this will present a dialogue similar to the one below. Picking the queue item will assign you as the owner. You then have an option to remove the item from the queue or not. If the item remains in the queue the “worked by” field is also set to show that you are now managing the case.


See below that I left the items in the queue so the “Worked By” field has been set to me.

You can also use the route option to move a queue item from one queue to another. Or in the route dialog select a user (or team) to allocate to the queue item. And again an option is presented to remove the queue item (or not). The owner and worked by fields are then set in the same manner as someone picking the queue item, except the selected user is used instead of the current user. This approach is typically used when a team leader “dishes out” the queue items rather than the operator picking them.


Release / Remove Queue Items

Let’s say you are allocated some cases you can’t do, maybe your about to take a holiday and need to release current activities to ensure that someone else processes these items whilst you are away. This is done by using the release option from the queue. Simply select the item(s) you wish to release and select the release option. This approach leaves the queue items in the queue, “waiting” for someone else to pick them up.

An alternative approach would be to use the “Remove” option. This however would remove the items from the queue. When considering the remove option it is important to understand that only the queue item is removed not the associated case / activity.


Note:
Directly from the case you can add the case or route the case to the queue. But to pick and release the queue items you are required to do this from the queue views.

Case Routing

Another important aspect of managing queues is the concept of case routing. Within a service management environment the use of queues is very common. The ability to automatically route cases is a really effective way to help with the management of queues. The automatic routing might be based on a characteristic(s) if a case, for example all new installation requests to be sent to the installation team’s queue or all high priority requests to be sent to a “High Priority” queue.

Auto-routing can be applied when a new case is saved or whenever a user uses the “save & route” option on the case.

Note:
If you are using auto-save, it is important to understand that the case is not routed when the auto save kicks in! The routing happens when the use selects the “Save & Route” option.

Routing rule sets are defined in the service management area of the customer service hub.

Below you can see an example of a routing rule set, one that hopefully illustrates the concept. I have created a rule set that will assign new IoT cases to my cat! And any high priority cases to my urgent cases queue.


Each routing rule set can have one or more rule items. Below you can see I have opened an example rule item. In this example I am assigning the case to a queue but I hope you can see that I also have an option to route cases to a user. The logic is simple enough, whenever the condition is met the case will be assigned to a team / user or routed to a queue as required.

Tip:
You cannot amend an active Routing rule set, So you will need to deactivate it to make changes. But don’t forget to activate again as only activate rules will be applied when you apply the routing rule.

Enabling Other Tables for Routing

I’m describing queues in the context of service management but it is important to understand that queues could be used by other parts of the business, for example, all fresh leads might be assigned to a new leads new leads queue.

Which tables are enabled for queues can be customized.

Below you can see that I have opened Power Apps (make.powerapps.com) and then opened my invoice table. Here I can access the settings option to control how this table (aka entity) will behave. You will find the options relating to queues under the “Collaboration” heading.

Below you can see I can now use the “Enable Queues” option to allow me to route records in this table to queues. One thing you should be aware of is that if you make this change it can not be reversed. Once a table is enabled for queues it cannot be disabled!

Also notice that we can also opt to add newly created records to the owners local user queue.

In this post I hope I’ve given you enough background information on queues to support your preparation for the MB 230 exam. Queues are actually a simple enough concept but I have found some Dynamics 365 consultants can become confused about how queues operated and when to use them. So as always I strongly encourage you to gain as much hands-on experience as possible. Enjoy!

Migrate to Omnichannel Admin Center

$
0
0

I have recently moved from using the original Omnichannel Administration app to the newer Omnichannel Admin Centre. If like me you want to use the newer admin experience you will need to migrate your current workstreams. In this post I will explain the process I followed.

As I have configured numerous channels I actually have quite a few workstreams, all of which needed to be migrated to the new admin experience. Lucky me Microsoft provide a tool to help migrate your workstreams to the new unified routing approach. You can find details about this here.

Once I’d download the migration tool I could begin!

Having extracted the tool I simply ran the “URMigrationConsolApp.exe” application. (As shown below.)

Nobody will describe this application as modern looking! In fact it reminded me of something I might have used on a Wyse terminal in the 1980s. (Gosh I am old!!)

Anyway, on running the application I needed to enter the URL of my Dynamics 365 instance and enter my user name. After a short pause I got some lovely green screen style text message telling me I’d connected successfully.

Cool … we have an old school menu! With 4 “real” options and one to exit the application. With a feeling of nostalgia I continued to experiment with each option!

Option One

Option “1” gave me a list of all the workstreams I needed to convert.

Option Two

And option “2” gave me a list of the new style workstreams. Below you can see that I have already migrated one workstream called “BOT Chat”. (The demo live chat workstream came out of the box with the new admin centre!)

Option Three

Option “3”performs a dry run. The description of this option seemed to suggest that it was going to simulate a migration of just one specified workstream. But it actually did a simulation for all workstreams. My simulation didn’t report any errors. Meaning (honestly) this option didn’t give me any real useful information. But still you might want to run it before doing an actual migration. As you may get a different result to me!

Option Four

So option “4” is the one we use to actually migrate the workstreams. You do this one by one. Having selected the option I needed to enter the ID of the workstream.

Tip: I copied and pasted this from the list I got in option 1.

Importantly notice that you are told that after the migration you should only maintain the workstream in the “Omnichannel Admin Center” App. I call the out as you will still see the workstream in the old app. But you should no longer maintain it using the old interface!

I continued repeating this process until all my workstreams had been migrated! As you can see below I was supposed to have no old workstreams remaining!

Conclusion

After the process I tested my various workstreams. So far they have all continued to work as I’d expected. Which is “really nice”!

Afterwards I also double checked that everything had migrated. It hadn’t! I found three workstreams that remained in the old Omnichannel Administration app but didn’t exist in the new Omnichannel admin center.

These three were all connected with my entity channels. These had been created to route cases and leads to omnichannel agents. None of these were available in the migration tool. I guess that means I will need to recreate those at some point. (Although for now they do still work.)

Note: It looks like my entity routing has continued to work after migrating to the newer Omnichannel Admin Center. But as this means I’ll need to maintain my entity channels in the old app and everything else in the new app I will probably want to manually recreate these very soon!

Apart from my entity routing workstreams (which you might not have) …. I am now ready to start using the newer Omnichannel Admin Center. I guess I’m going to need to use the new “Record routing” option to manually re-create my entity workstreams at some point.

In summary the conversion of my workstreams was pretty straight forward. (Except my entity workstreams!) And I am now ready to start to explore what additional features are available in the newer “Omnichannel Admin Center”. Enjoy!

Omnichannel for Customer Service and BOTS which don’t understand!

$
0
0

Omnichannel for Customer Service allows us to connect with a Virtual Agent. It is then possible to trigger a transfer to a human agent from within our topics / authoring canvas. But what if your customers are getting frustrated with a BOT that doesn’t understand them? In this post I will explain how we can use the “system fallback” setting to help with that scenario.

It may be common to construct a topic that allows the virtual agent to transfer the customer to a human. Maybe they enter an answer of “unsure” to a question and this could trigger the BOT to transfer to a human. (As I have shown below.) Or maybe you can have a topic of “human” that will transfer to a human if the customer enters certain key phrases. Like “I’d like to speak to a person” or “Can a human help me” etc etc.

But what if your BOT repeatedly does not understand what the customer is saying. (Or the customer doesn’t understand what the virtual agent is asking!) If you have ever experienced a BOT repeatedly saying “I don’t understand” you might know how frustrating this can be!

Imagine your virtual agent is asking the customer which colour they want. If the only options are “Red” and “Green” …. a customer asking for “Black” isn’t going to work. As an example I created exactly that scenario. Below you can see I am prompting for a colour and I have only added options of “Green” and “Red”.

Below is an example of the frustrating type of conversation which can occur. This is horrible as for the customer the loop will go on and on. Resulting in an upset customer. By the time they finally call to talk to a real agent they will already be annoyed. The BOT wants the customer to enter “Green” or “Red”. But this customer wants “Black”. The BOT tries hard by repeatedly offering an option it thinks is ok. But Red just isn’t want I want!

Note: This is just one example of many situations which could cause this type of problem. We could (and should) argue that your customers shouldn’t get stuck like this with a well-designed BOT! But in the real world we all know dead ends like this can (and will) occur.

Enable System Fallback

Luckily we do have a solution available to us! That being that we can enable a fallback topic which will be triggered if the BOT repeatedly asks the same question!

Below you can see that I can access the “System fallback” option from the settings cog on my virtual agent.

No we can add a fallback that will be triggered if the customer’s intent is unclear after two attempts.

You can see below that having clicked “+Add” a fallback topic has been created. I can now use the “Go to fallback topic” option to tailor it if required.

Below you can see the default fallback topic. Which you may want to tailor!

Now when I run the same test again you can see that eventually the virtual agent will transfer the customer to a human. Maybe that is still slightly frustrating but at least the customer isn’t stuck in a deadend.

I do advise you to try and avoid these “dead ends” in the first place. A design which avoids the situation in the first place has got to be the best option. But having a fallback for when everything fails also seems sensible to me. Enjoy!

Customer Service Workspace- API

$
0
0

Omnichannel for Customer Service and the Customer Service Workspace provide us an API where we can use JavaScript to control the behaviour of the multi-session experience for out customer service agent.

Below you will find a link to a video which explains the concept behind this API and gives one example of how we might use it.


MB-230: Microsoft Dynamics 365 Customer Service – Revision Guide

$
0
0

I have been completing a series of posts to help people prepare for the MB 230 certification (Microsoft Dynamics 365 for Customer Service). Here is a collection of links to all of those posts. I hope these might serve as a useful revision aid for the MB 230 exam.

The MB 230 certification is not easy! I guess because customer service is a big topic covering many aspects of your “CRM” system. Including the ability to raise tickets (aka cases) but also how to automate the processes around those cases. We also have additional topics such as Omnichannel which cover how we engage with our customers. And then (of course) we’ll need to understand how to report on service metrics.

Note: This guide is a work in-progress, please keep checking back for updates.

Introduction

Customer Service Overview

Manage cases and Knowledge Management
Create and manage cases· configure cases

· manage case lists

· create and search for case records

· convert activities to cases

· perform case resolution

· implement parent/child cases

· merge cases

· set autonumbering for customer service entities

Configure and automate cases· implement Advanced Similarity rules

· implement record creation and update rules

· implement case routing rules

· customize the Case Resolution form

· configure Status Reason transitions

· configure business process flows

· capture customer feedback by using Customer Voice

Implement Knowledge Management · configure the Knowledge Search control

· link an article with a case

· use Knowledge Management to resolve cases

· manage the Knowledge Management article lifecycle

· manage Knowledge management articles

· configure entities for Knowledge Management

· manage Knowledge article templates

· implement Knowledge Search

· enable Relevance Search

· configure categories and subjects

· convert cases to knowledge articles

Revision Guides

Case Management – Part One

<<Case Management – Part Two>>

<<Case Automation – Part One>>

<<Case Automation – Part Two>>

<<Knowledge Base>>

<<Customer Voice>>

Manage queues, entitlements, and service-level agreements
Create and manage queues · describe use cases for each queue type

· configure queues

· add cases and activities to queues

· configure entities for queues

· perform queue operations

Create and manage entitlements · configure entitlements

· define and create entitlements

· manage entitlement templates

· activate and deactivate entitlements

· renew or cancel an entitlement

Create and manage SLAs · define and create service-level agreements (SLAs)

· configure SLA settings

· configure a holiday schedule

· configure a customer service schedule

· implement actions by using Power Automate

· manage cases that are associated with SLAs

· manually apply an SLA

· create and manage SLA items

Revision Guides

<<Queues>>

<<Entitlements>>

<<SLAs>>

Implement scheduling
Manage resources · configure business closures

· configure organizational units

· configure resources

· configure work hours

· configure facilities and equipment

Manage Services· define services

· schedule a service activity

· configure fulfilment preferences

· create a schedule board

· schedule a service activity by using the schedule board

Revision Guides

<<Resources>>

<<Services>>

Implement Omnichannel for Customer Service
Deploy Omnichannel for Customer Service
· provision Omnichannel for Customer Service

· define user settings

· configure application setting

· manage queues

· configure skills-based routing

Implement Power Virtual Agents
· describe Power Virtual Agents components and concepts

· integrate Power Virtual Agents with Dynamics 365 Customer Service

· escalate conversations to a live agent

Manage channels · describe use cases for the Channel Integration Framework

· configure channels

· enable the chat widget on websites

· configure pre-chat surveys

· configure proactive chat

· configure Secure Message Service (SMS)

Distribute work
· describe difference between entity routing and channel routing

· configure work streams

· configure entity routing

· configure routing values

· implement context variables

Configure the agent experience
· create macros

· define agent scripts

· configure Quick Responses

· configure sessions and applications

· configure notifications

Configure the supervisor experience
· configure Omnichannel Insights dashboard

· configure intraday insights

· customize KPIs for intraday insights

· enable sentiment analysis

Revision Guides

<<Deploy Omnichannel>>

<<Power Virtual Agents>>

<<Omnichannel channels>>

<<Distribute / Route Work>>

<<Omnichannel Agent Experience>>

<<Omnichannel Supervisor Experience>>

Manage analytics
Configure Customer Service Insights· describe capabilities and use cases for Customer Service Insights dashboards

· connect to Customer Service Insights

· manage workspaces

Create and configure visualizations
· configure interactive dashboards

· design and create charts

· design reports by using the Design wizard

Revision Guides

<<Customer Service Insights>>

<<Customer Service Visualizations>>

Omnichannel for Customer Service – Simplify Navigation

$
0
0

I recently read about the ability to simplify the user navigation in Microsoft’s Dynamics 365 Omnichannel for Customer Service and Customer Workspace apps. I’m all for something that might reduce my mouse clicks! In this post I will explain how I configured this option and give my initial thoughts.

Normally in the multi-session interfaces we have in Omnichannel for Customer Service or Customer Workspace apps user can manually create sessions by holding shift and clicking the mouse on a Dynamics 365 record / hyperlink. Or to open new tabs in an existing session they can hold the Ctrl key and click the mouse.

Don’t get me wrong this navigation works really well. But wouldn’t it be “nice” if users didn’t have to hold the shift or Ctrl keys? And more importantly had to put less thought into when to start sessions or open tabs in existing sessions.

As I have already mentioned we have two apps that contain this multi session interface. In my opinion the biggest benefits might be achieved by applying this idea to the Customer Service Workspace app. My logic being that with Omnichannel as users click on notifications for incoming communications new sessions will automatically start anyway. But with Customer Service Workspace we might not be using the communication channels and simply want to start new sessions as cases or any record is opened from dashboards or views.

You can read Microsoft’s full instructions on enabling this feature using the link below. I will mention the process in this post but I encourage you to read these instructions. And you will also need to copy some code which is best done directly from their instructions.

https://docs.microsoft.com/en-us/dynamics365/customer-service/csw-overview#navigate-and-view-records

Setup Simplified Interface

So first of all I logged into Dynamics 365 and opened my Customer Service Workspace app. I then clicked F12 to open the developer tools and selected the console tab.

Next I copied the code mentioned above into the console tab to run it. After running the code you need to run one of three different commands.

For Customer Service workspace:CSWAppUtility.setMultisessionNavigationImprovementsSetting();

For Omnichannel for Customer Service app:OCAppUtility.setMultisessionNavigationImprovementsSetting();

For both the multisession apps:AppSettingUtility.updateAppSetting(‘msdyn_MultisessionNavigationImprovements’, true);

Below you can see that I ran the command for the customer Service Workspace and soon afterwards received a message that the update was successful.

Testing the change

Before I could test the change I did find I needed to refresh my browser. But once done I my simplified navigation was working. Simples!

As you can see below, from any “home” page clicking on a case (or any record type) will automatically start a session containing that case.

Tip: With the Customer Service Workspace you can define a session template for each entity. So if I want to control what tabs open in the session you could do this using a template.

Now my session is open clicking on any link will open a new tab in that session. Below you can see that I clicked on the customer name and a new tab opened.

But what happens if the user clicks on another account record? …. Well then another tab would open for the second account.

Or what happens if the user clicks on the same account again? …. If the record you are trying to load is already open in your session it doesn’t open another tab. Instead the existing tab is given focus. I really liked that feature!

If you create a new record (using quick create) the quick create form opens on the right hand side, as normal. When you have finished with the form you return to the tab within your session. Whilst in the middle of a quick create the rest of the screen becomes inactive. So you can’t swap sessions whilst creating the new record. (Which felt reasonable to me!)

And if you try and create a new record when no quick create form is available the new form simply opens in a new tab in the current session.

Also, if I am in a session and I would like a new session to open for the record I’m opening. Then I can still use “Shift Click” to start a new session.

Conclusion

So what do I think???

This is a subtle change but it is actually one that will greatly benefit users. I think anyone “just” managing cases or other entities directly in the Customer Service Workspace will find this simplified navigation to be exactly what they’d want. I doubt anyone will want to reverse this change after they’ve enable it.

I will flag that I haven’t tried to disable this style of navigation! And I’m not sure the Microsoft instructions mention an approach for removing this change. So you might want to test this out in a sandbox before upgrading your production instance.

I think mixing this change with session templates and app profiles could result in an excellent experience. If you don’t know about session templates or app profiles I suggest you look them up! Plus I might create a blog post for those soon.

All in all, nice job Microsoft.

MB-230: Microsoft Dynamics 365 Customer Service – Case Management (Part Two)

$
0
0

I am currently revising for the MB-230 exam. This exam is for Microsoft Dynamics 365 and covers all aspects of customer service. As I revise I plan to publish blog posts that collectively will become a complete revision guide for anyone embarking on the same journey as me. In this post I will continue to describe the important topic of case management.

Part of the skills measured statement relating to case management is shown below. From this we can see that case management covers a wide variety of capabilities;


In total I will cover quite a bit of ground! In a previous post I have already included;

  • An over of Cases
  • Case Views
  • Searching Cases
  • Creating Cases from Activities

This post will cover multiple topics, including;

  • Resolving Cases
  • Parent / Child Cases
  • Merge Cases
  • And maybe more!

Resolving Cases

The purpose of a case is to track customer issues, questions, and requests. And then to manage them through to resolution. It is therefore a given that cases will eventually be resolved and makes it important to understand the resolution process. When cases are resolved we must enter the resolution type, resolution and billable time. Out of the box the two resolution types are “Problem Solved” and “Information Provided.”. The resolution field is simply a text field describing how the case was resolved.

After resolving a case its status changes to resolved. Additionally a resolution activity is created that we can see in the timeline.

Cases are never resolved with open activities. I guess technically this means they can’t be resolved until all activities are completed. However if you try to resolve a case with open activities, you will see a prompt similar to the one below. If you click confirm all open activities will be marked as cancelled. This is because it is not possible to resolve a case with open activities.

It is however possible to create an activity on a resolved case, that way we can have open activities on a resolved case! Why? The resolution logic forces us to complete everything before resolving, that makes sense! But imagine you want to call the customer back to check they were happy with the service provided. Then you would need to create an activity on the resolved case.

Cases can be cancelled or deleted. Deleting a case will also remove all of the associated activities, notes and attachments. Cases cannot be cancelled whilst open activities exist. (So any open activities will be marked as cancelled when you opt to cancel the case.)

Cancelled or resolved cases can be reactivated. (Obviously deleted ones can’t!) You should probably be aware that a resolution activity is created each time a case is resolved. Meaning we can see multiple activities for case resolution. (An example is shown below.) . If the case be reopened the status on the existing resolution activity will change to cancelled. Another resolution activity will be created when the case is finally resolved. Meaning you can have multiple resolution activities per case but only one will have a status of complete.

Below you can see that I have two case resolution activities in my timeline as the case has been resolved, reopened and then resolved again. You might want to try this process as part of your revision. Once you have multiple resolution activities try opening those to see the detail of each. (You should notice that the status on the original resolution activity becomes “cancelled”.)

As we resolve cases the billable time and total time on the case is defaulted to a sum of the duration of the completed activities associated with the case. The billable time can be changed as you may need to bill more or less time than the amount calculated from the activities. This sum of billable time is always all completed activities. (Meaning if you spent 5 hours working on a case, resolved it, reactivated it, spent 5 more hours and then resolved again. You would have two resolution activities, the first for 5 hours. And the second for 10 hours.)

As cases are resolved they will disappear from the active case views, as they are no longer active. They can however still be viewed in the resolved case views.

With earlier versions of Dynamics 365 I would have told you that the case resolution dialog cannot be customized. (At least not in a supportable way!) But more recently Microsoft has given developers the ability to customize the resolution dialog. We can now add or remove fields on the dialog or even use a Quick Create form as a replacement for this dialog.

Below you can see that with the Service Management area of the customer service hub I can control various settings about the behavior of the customer service app. (No doubt we will return to this screen in future posts!) In this instance you can see that under the service configuration option we have a field which allows us to define what type of case resolution dialog to use. Be that the out of the box (standard dialog), a customized dialog or quick create dialog. Obviously if you select customized dialog or quick create a developer may need to have created you a customized experience.

Why is this important?? Well… one common example is the billable time field. I have explained how the billable time is calculated and also you may notice it is a billable field. But many organizations might not bill for each case. It may therefore be a common customization to hide this billable time field. (Please understand that this is just one example of why we might customize the resolution dialog, obviously many other reasons will exist.)

If you’d like to find out more about customizing the case resolution dialog … check out the link below to Microsoft’s documentation on the subject.

Modify case resolution dialog in Customer Service Hub | Microsoft Docs

Parent / Child Cases

Parent and child cases are designed to help cases be used efficiently. You can create a primary case (parent) and then create a secondary case(s) (children).  Child cases can inherit information from a parent case. This can be very useful to group related problems. You might do this is a single customer has multiple issues that will be worked on together. Or you may have a common problem with multiple customers.

You can see child cases in the case relationships section of the case relationships tab. To create a child case you use the “Create Child case” button which can be found in the command bar.

Note:
You might need to be aware that a child case cannot be a parent. Meaning a complex hierarchy of cases is not possible.


You can see below that I have clicked “Create Child Case”. A quick create form has opened an I can fill in any additional information as required. You may notice that many fields will default from the parent into the child. We will look at how to control that behavior later!


Below you can see that on my parent case, in the “case relationships” tab I can view the child cases. I could also create a new child case from here or even use the “…” option to associate an existing case to this parent.


It is also possible to build a parent / child relationship between existing cases. Below you can see that I have selected two existing cases in a view. (I could select many more cases!) I can then use the “Associated Child Cases” option to link these.


Having clicked the “Associate Child Cases” button I am presented a list of the selected cases. I can then pick which of the cases will become the parent.


Several settings control how parent / child cases behave. I have already mentioned that we can control which fields are defaulted on the child from the parent. We may also want to define what happens to the child cases when the parent is resolved.

Below you can see that from within my Customer Service Hub I have opened the “Service Management” area. In here you will find an option called “Parent and Child Case Settings”.


Below you can see that within the settings I can control which fields are inherited on the child from the parent. Out of the box the case title and customer are copied from the parent case. But I might want to add additional fields. Maybe, for example, the same user should own the child case as the parent.


Next you can define what happens when you try to resolve the parent case.

One option is to stop the parent case being resolved until all the children are resolved. To give an example … imagine you are installing a new central heating system. You might have multiple separate cases to install the boiler, radiators, thermostat and more. You won’t resolve the parent for these until all the separate jobs (cases) have been completed.

Another option is to resolve all the children when the parent is resolved. For this think about other scenarios. Say you provide internet connections to customers. You might have multiple customers effected with the same outage. In this example resolving the primary parent issue would in turn resolve the issue for all the effected customers.


Merge Cases

Sometimes you might find that duplicate cases have been created, maybe a customer reports the same problem on different communication channels or multiple contacts at an organization report the same issue. When this happens cases can be merged, avoiding the need to resolve each incident separately.

Merging cases combines related open activities and attachments under one case and cancels the other case(s).  When a case is merged, the state of the case is changed to cancelled and the status reason is changed to merged.  You can merge up to 10 cases at a time.

To merge case select up to 10 cases and then select the merge case option. Typically I find it will be active cases we’ll want to merge but it is possible to merge resolved cases.

Below you can see that I have selected three cases and now I can use the “Merge Cases” option to merge them.

Having clicked merge cases I am presented with a list of cases to merge. I select the case I want to retain and click merge.

If your merge is successful you will see a confirmation message. Alternatively you might see an error. (For example, an error could happen, for example if you try to merge multiple child cases with different parents.)


You can see any cases that have been merged into a case in the case relationships tab. Notice that my merged cases now have a cancelled status.


As part of your revision I suggest you try merging multiple different cases. One thing to test is what happens with any activities (and notes) that already exist on the case. As below you can see that the timeline on my merged case has multiple activities. These came from the now cancelled cases. (Meaning the activities will no longer show against the cancelled case!)

If you merge a case that has child cases (i.e. A Parent), then the child cases become child cases of the new parent case.

But you can only merge a child case into another child case if both of the child cases have the same parent case.

Theoretically, you could merge cases from multiple customers. (Although “maybe” this isn’t common.)

Autonumbering

Whenever a case is created it is given a unique reference number. This can be really useful to help you search for cases, often this number will be given to a customer. So they can quote it in any follow-up communications. Below you can see that the case number is often shown in views. (You will also find it prominently displayed on the main case form!)

Often times the logic applied to generating this number will remain unchanged. But you do have some control how this number is generated.

Tip:
Auto numbering actually applies on other entities including contracts, cases, quotes, orders, invoices, campaigns, articles, categories and knowledge articles.

Knowledge articles are an another example of a customer service table which can have an auto number applied.

You will find the “Auto numbering” option in the “Data Management” area of the settings for your environment. You can find this option within the “Power Platform admin center”. Which is accessed from “admin.powerplatform.microsoft.com”.

Opening the auto numbering option will give us access to amend the format of the number used. For each table that has an auto number we can set the prefix and control the length of the suffix. (The suffix can be 4,5 or 6 characters long.)

Hopefully this post has helped you prepare for your MB 230 exam. I have covered quite a lot of concepts in one post. As always I do stress that you should test out these options for yourself, do not rely on just theory!

Customer Service Workspace – App profile manager, session templates and more!

$
0
0

Customer Service Workspace for Microsoft’s Dynamics 365 gives us the ability to open sessions and tabs in customer service scenarios. This can be very useful when an agent is juggling resolving multiple cases simultaneously. When they open a case it will be common to open the customer record, in this post I will show how we can always open the customer record and therefore save a few clicks. And in doing so, I will introduce several concepts including the app profile manager, session templates and application tabs.

App Profile Manager

Firstly I would like to mention the App profile manager. As I am going to use this for my example ….

The App profile manager allows me to create profiles which in turn I can assign to users. This gives us an approach to customize the interface for specific users. Some of my users may require particular behaviour when a session starts, maybe some want the productivity pane to be open by default, maybe some need access to specific communication channels etc etc.

You may already be using Customer Service Workspace or the Omnichannel for Customer Service apps without using the app profile manager! This is probably working fine as any user not assigned to a specific app profile will be using the default app profile. If you apply any customizations to the behaviour of the Customer Service Workspace app I advise you to consider using the App profile concept. You can of course start off with just one profile but by using the App profile manager adding suer specific customizations later will become an easy process.

Something else that is really cool about app profiles is that they are solution aware. Meaning you can migrate them from environment to environment.

Below you can see I’ve opened make.powerapps.com. I have used the app option to find my “Customer Service Workspace” app. It is from here that I can open the “App profile manager”.

Initially when you load the App profile manager you will be presented with a screen something like the one below. If this is your first time loading the App profile manager you will probably want to use the “create an app profile” option to start creating your first profile. Or you can use the “See you app profiles” option to open a list of your existing app profiles.

If you are creating a new app profile, you will need to give your app a name. Then specify a unique name.

Tip: The app unique name needs a “publisher” style prefix, say “neil_”!

Now your app is available and you can start to customize it.

Example Session Template

Whenever I consider a new feature like this I like to work with an example. Hopefully showing how an example session template will work I can help give you ideas for your own sessions.

Note: In my example I am going to focus on session templates but you should be aware that within my app profile I can control the behaviour of the productively pane. I can also define which omnichannel or third party channels I might want to include in this profile. Say some of your users need access to web chat and others don’t then you can use this feature to support that requirement.

In my example, whenever a user opens a case I want that case to open in a new session. I also want to make the title of the session the case number.

But I would also like to go further, as whenever the case opens in a session I would like a second tab which will include the customer associated with the case. Not forgetting that sometimes that will mean opening a contact and sometimes an account.

If I have an existing session template I can search for that and include it in this profile. Or I can use the “+Add entity session templates” option to create a new one. (As shown below.)

Below you can see that when I click the “…” option on an existing session template I can open it in the Unified Interface or remove it from this profile. Opening in the Unified Interface will open a fresh browser tab containing the session template and access to all of the other Customer Service Workspace options.

Below you can see that I have created a customer session template. I will give more detail of each field below!

FieldDetails
Name“Custom Case Session”

This can be anything you like, it describes the session template.

Unique Name“neil_CustomCaseSession”

The format is important here! You need to add a prefix which will normally be your publisher. So in my example “neil_”.

Type“Entity”

Two types of session exist.

In my example I have used “entity” as when a user opens a case entity (or phrased another way a case table row!) then we want a session to start.

The other type of session is a “Generic” session. We use that with Omnichannel for Customer Service when the session start will happen as conversations begin.

Entity“Case”

Assuming your session type is “Entity” then you will need to specify which table triggers the start of these sessions.

Title“{anchor.ticketnumber}”

We can optionally add details of how to name the sessions as they open. If you leave this field blank then the primary field from the entity selected would be used. Typically this would be a name field or in my case example the title of the case. But in my example I didn’t want to use the title as the shorted ticket number seemed like a better field.

I have surrounded the “slug” in brackets. And also added the keyword “anchor.” before the name of the field. This is because we can reference fields from the tab used to open the session by adding this “anchor.” prefix.

Communication panel mode“Hidden”

In my example the communication panel is hidden. Other options include “Docked”.

We’d probably want to see a communication panel on a generic session that has been started as a result of an incoming omnichannel conversation. But in my example I don’t need the communication panel, hence the setting of hidden.

Having saved my session template I can add additional details. These may included which agent scripts to load at the start of the session. Or like in my example, any additional tabs you’d like to open. As each time my session opens I wanted to also open a tab contain the customer from the case.

Therefore I created an Application tab and added this as an additional tab on my session. I have shown my Application tab below. And again I will give you some additional detail below!

FieldDetails
Name“Customer – Customer Application Tab”

This is simply a descriptive name for my tab.

Unique Name“neil_customcustomer_applicationtab”

Like the session template the format is significant here! You need to create a unique name that is prefixed with your publisher. So in my example “neil_”.

Note: This idea of creating a unique name that includes the publisher prefix should start to make more sense when we add our app profile into a solution. As then the names for our templates will be following the same naming convention as other assets in our solutions.

Title“Blank!”

In my session template I completed the title field. As an example in my application tab I left the title blank. This is because I was happy to name the tab as the customer being opened.

Page Type“Entity Record”

In my example I want to open an application tab containing a Dataverse table. (aka entity).

But I could have selected one of several different page types. Including an entity view, web resource, dashboard and more.

Description“Blank!”

I didn’t enter a description. I was being lazy!

In a production instance it might be useful to enter details of how and when this tab will be used. As that might aid future maintenance.

Can close“No”

When my customer tab opens I want it to remain open until the session is close. By entering “Can Close” as “No” I prevent the users from closing this tab.

ParametersDepending on the page type different parameters may exist. Having saved my application tab as I had select “Entity Record” I have a set of standard parameters. These included “createFromEntity”, “data”, “entityID” and “entityName”.

In my example I want to open an existing customer record into the tab. The customer many by a contact or account. So I need to supply two fields, one being the GUID of the record to open and the other being the type of table (entity) I want to load.

Both of these fields can be “grabbed” from my anchor tab. Which will be the case I am opening.

Set the “entityID” to “{anchor._customerid_value}”. This will be the GUID of the customer I want to open.

Set the “entityName” to “{anchor._customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname}”. This will be the entity type I am trying to open. So “account” or “contact”.

Assign Users

Having completed the definition of my app profile, I can now add users. These will be the users that will use this profile in preference to the default App profile.

Below you can see that I have opened my App Profile and selected the users option.


A screen similar to the one shown below will open and you can add users into this profile.


Testing

Once I had completed the above changes I opened my “Customer Service Workspace” app. You can see below that by default I have my customer service agent dashboard open.

Opening a case into a new session from this dashboard or any home page will start a session.

Tip:
Out of the box use “shift and click” to open your case into a new session. Or configure the simplified interface option that will open all records opened from a home tab into a session.

As my case opens in the session several things happen!

Firstly notice that the session name is not the title of the case. As above I set the session title to be the case number instead.

Also notice that a second tab opens that contains my customer record.


And when I click on my customer tab notice that I don’t have the ability to close the tab. Meaning the user is forced to keep this tab open until they have finished with the case and close the session.


Solution Aware!

I mentioned earlier that app profiles are solution aware.

As a test I created a solution. You can see that I then used the “Add existing” option. Here you will find an option called “App profile”. So I used that to add my custom app profile into my solution.

Next I used the add required components option on the app profile I just added into my solution.

You can see below how my application tab and session template that had been included into my App Profile are now added into my session for me. I could (of course) have added these components manually but I found using the “+ Add required components” option made my life really easy!

I can now export my solution and import it into other environments as required.

Hopefully by showing this example I have introduced you to the Customer Service Workspace and shown how I can use the App Profile Manager to customize my agent experience. I hope this example has proved useful and that you can adapt this idea for many other purposes. Enjoy.

Dynamics 365 Birmingham – Amazing Free May 2021 Event

$
0
0

We have our next “Birmingham” Dynamics 365 event planned for Wednesday 19th May at 5:30pm. This is a free virtual event so open to everyone.

Everyone can register on meetup here for free.

Our next exciting Dynamics 365 Birmingham User Group meeting will be taking place on Wednesday 19th May 2021 at 5:30pm, and we would love to have you along!


We hope to see our local friends. But being a virtual event EVERYONE will be very welcome.

This time we have two amazing speakers. But I would think that … one of them is me!!!

Session : A new & unique approach to data cleansing in D365
Speaker : Ben Warren, The Software Bureau

Ben Warren, from The Software Bureau & Clean Contacts will join us to describe their data cleansing tool. Every business has to clean their data, but the current methods can be complicated and risky. Clean Contacts enables automated data cleansing of UK consumers – identifying where an individual has moved, where they have moved to or if they have passed away.

Hosted within MS Azure, with no data having to leave the environment to ensure maximum security, and integrated into D365 using the Power Platform.

This session will provide an overview of the solution and demonstrate how a D365 user can gain total peace of mind.

Session : Customer Service Workspace
Speaker : Neil Parkhurst (aka me!!)

Dynamics 365 now includes several user interfaces your customer service agents may want to use. I’m sure you know we already have Customer Service Hub, Unified Service Desk and Omnichannel for Customer Service.

Customer Service Workspace is the newest kid on the block! So what does it offer and when might you use it in preference to these existing established options.

In this presentation you will see a demo of the Customer Service Workspace. And additionally the App Profile Manager and more!!!

Everyone can register on meetup here for free.

Viewing all 1692 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>