Personalised Quick Replies

One of the things that customer service agents absolutely HATE is having to type full replies to customers. There are many things that they’ll do which are quite repetitive, and having to type the same response each & every time gets frustrating to say the least.

As I’ve covered previously at Quick Responses in Omnichannel, Omnichannel has the ability for Quick Replies. With these, agents are able to select the response that they’re wanting to use, and quickly populate it into the chat session that they’re having.

It’s also possible, using ‘slugs’, to set up responses that will automatically populate with specific pieces of information in the system. For example, something like ‘Good morning, my name is {Agent Name}, how may I assist you?’ will automatically populate the name of the agent into the chat session.

This is great; the main drawback to date has been that Omnichannel administrators are required to set these up, as well as maintain them. That’s not so great, when you consider that agents might want to personalise their responses as well. To date, that’s not able to be done within the system.

However, with Wave 2 2020, it’s now possible to allow agents to create their own quick replies, to be able to be used within chat sessions. It’s also not particularly difficult to go about getting this into the system, as we’ll see below.

The Omnichannel Administrator simply needs to go to the Personal Quick Replies section, and change the toggle to ‘Yes’, then save. This will enable personal quick replies for agents simply & swiftly.

Once the system setting has been set, and is active (it can take a few minutes to refresh through), agents are then able to start setting up their own quick replies.

To do this, agents will need to be in the Omnichannel for Customer Service app, and select the Personalisation option from the drop-down menu:

This will then open the agent personalisation tab, which has several different sections on it. The first one is the one that we’re interested in – Personal Quick Replies:

Here will list any personal quick replies that have already been set up by the agent, as well as give the option to create further ones to use:

Clicking this option brings up the familiar interface to set this up:

Note: Personal quick replies aren’t localised in Omnichannel. That’s why you need to select a Locale for the record. To be able to provide the quick response in multiple languages, create a specific response for each language, and select the locale that’s appropriate for it

Once the record is saved, it’s then possible to add tag/s to it for referencing:

Note: If you want to use the hash character (#), you can only use it at the beginning of the tag, not anywhere else in it

Once these have saved, they’re then available to be selected from the chat by the agent. The chat interface will show both system & personal quick replies. Typing ‘/q’ into the chat window will bring these up:

We can select the tab at the top to show just the personal quick replies that the agent has set up:

Alternatively, if the agent starts searching with text, they can easily distinguish between system & personal quick replies by looking at the icon against each one. System replies have a globe-style icon, whereas personal replies have a person-style icon:

So in summary, I think that this is a really great feature to add onto the original way of quick replies working. It’ll free up time for the Omnichannel Administrators, and allow agents to put their own responses in that they need. It’s also possible to share this using the OOB record sharing functionality, which means that a team lead can set them up, and then share them with the rest of the team!

How do you think this could enable or help you? Drop a comment below – I’d love to hear!

AI Translation for Omnichannel

How to start off this post? I’ve been trying to work out how exactly I can express my excitement around this new feature for Omnichannel. Included in the Wave 2 2020 release, it’s just AMAZING. That, however, doesn’t give it true justice. So let’s see how I can describe it properly to give it due respect.

Previously I’ve mentioned the ability to use skills within Omnichannel (see https://thecrm.ninja/omnichannel-for-dynamics-365-queues-users-skills/). This can be used to indicate, for example, agents who can communicate in a certain language. That’s useful of course, but what happens when you don’t have anyone who can speak the language that the customer wants to use? It’s a problem, and one that’s really not easily solved. At least, not until now.

So, what exactly does this new translation feature do? Simple – it translates from one language to another. OK, it’s actually a little more awesome than just that. Having delved into it quite a bit over the last week or so, there are (in my view) three main benefits (with a bonus one as well!):

  1. It translates incoming text from the customer (through chat) from the language that they’re using to the language that the agent is using
  2. It translates outgoing text from the agent (through chat) from the language that the agent is using to the language that the customer is using
  3. It translates text between agents from one language to the other & vice versa (eg on an internal consult)

Now for the bonus. It doesn’t just translate text from one language to another. It follows the languages being used! So if the customer switches in mid-conversation to a different language, the system picks it up. Not only is the new incoming language translated into the agents language, but the replies from the agent are shown in the (new) language being used by the customer. It’ll automatically show text in the ‘last used’ language, which is really quite incredible (at least in my opinion).

There’s no fiddling around of needing agents to select the language that they need, or anything else. It’s a simple click to turn it on, and then another click to turn it off. I’m going to go through the setup of it below, as there are a few fiddly bits that did confuse me for a bit.

It’s also possible to use different translation tools. At the time of writing this post, it’s possible to use Bing, Google or Azure translation models. I’m sure that there will be other options available in the future as well to use, which really opens up possibilities for clients with differing digital estates.

Translation happens in real time, so there’s no waiting around for it to actually get on with it. It’s displayed immediately on the screen for the agent to see.

Setup for translation

I found the general guides to be alright, but weren’t too clear on a few items. I’m therefore sharing below how I went about it, in order to get things working properly. Please be aware that this isn’t in the order specified in the documentation, but in retrospect means less switching between screens:

  1. Ensure that you have the latest updates to your Omnichannel environment (this is always a good idea, regardless of anything else!)
  1. Go to https://github.com/microsoft/Dynamics365-Apps-Samples/tree/master/customer-service/omnichannel/real-time-translation & download the ‘webResourceV2.js’ file there (if you’re unfamiliar with how to do this, click to open the file, click the ‘Raw’ button, and then save the page (ensure it’s got the ‘.js’ extension when you save it!).
  1. Ensure you have an API key to enter into the web resource file! This is what tripped me up at first. You can use any text editor (I use Notepad++) to open it up. How you get the API key will depend on the provider. For example, to set up a free account in Azure, take a look at https://docs.microsoft.com/en-us/azure/cognitive-services/translator/translator-how-to-signup. There are also some additional things that you can configure in the web resource file, but I’m not going to go into that here
  1. Go to your solutions (this can either be through the Classic interface, or through http://make.powerapps.com). You can either create a new solution to hold the web resource file, or alternatively if you have existing solutions that you’d deploy, you can add the web resource file to that. Either:
    1. In the classic interface, navigate to Web Resources, click to create a new web resource, and upload the file (ensure you select the type to be ‘Script (JScript)’, or
    2. In the modern interface, click the ‘New’ button, select ‘Web Resource’ from the ‘Other’ section, and then follow the steps above

Once it’s saved, it’ll give you a URL. Copy that, and publish the solution.

  1. Go to the Omnichannel Administration Hub, find ‘Real Time Translation’ under Settings, and set this to Yes. You can also select a default input language from the selection. Also enter the URL that you copied above. Save it
  1. You’re all done!

Agent Experience

Depending on how you’ve configured your web resource, auto translation will either by on by default, or be off. If it’s not on by default, the agent can simply click within their chat window to select it to be active:

Once active, it’ll then start to translate everything, in both directions. Below are side by side screens of the customer & agent experiences. You’ll note that the customer is seeing the initial agent response in English, as the agent was the first in the conversation

From the agent side of things, both the original language, as well as the translated language, are shown. The customer is only shown the language that they’re actually using

If the agent isn’t sure what language the customer is using (as it’s being auto-translated for them), they can hover over the text, and it’ll show the details for it:

If the agent will consult, or transfer the session to another agent, the second agent will see the conversation in the language that they are themselves using (with the original text as well). This allows for the possibility to pass a customer to a specialist to assist them, even if they don’t speak the same language! It’s really cool to see this in action.

Even more wonderfully, this is even stored down to the transcript level:

This is really opening up major new concepts that Omnichannel can be used for, which will be supported entirely by this feature. As I said at the beginning of this post, I’m absolutely excited for it, and we’re already envisioning how this will be able to empower our clients even more.

Do you have any questions around this? Can you think of any scenarios that this could solve for you? Drop a comment below – I’d love to hear!

Omnichannel & Operating Hours

I’ve recently been spending time looking at, and talking about, how we can handle company hours within Omnichannel. This has covered both how to use them within chat (Handling Company Hours) as well as being able to change the chat widget functionality (Handling ‘Out of Hours’).

Imaging my surprise therefore when someone asked me ‘how do we go setting them up properly?’. When I originally looked at how to use them within chat, I used the Quick Create functionality. I had meant to come back to looking at it in more detail, but that somehow fell by the wayside. So, I’m now going to make up for it!

As a quick recap – Operating Hours are what we set to show when the company is ‘open’ (or for our purposes, active). This doesn’t need to reflect the actual store hours that might exist – customer support could well start before/end after the normal store times. It’s also the case that we usually can’t just set blanket times – we’ll need to handle holidays, seasonal occasions, etc. This is where Operating Hours really comes into its own.

So to start off, it’s simple to enter operating hours. Really simple. We go to the navigation area, select, it, and click ‘New’:

We’ll create a new record, and click Save:

Once we do that, the magic starts to happen – we get to see the ‘Working Hours’ tab. Clicking on it will give us the following screen (which I can only describe as absolutely amazing!):

I don’t know about you, but I’m loving being able to see the hours for each day in a calendar-style view. It’s so much easier than needing to scroll down a list of records, trying to find a specific date. It’s also much simpler for the eye to follow/see.

At the top, we can navigate between dates, change the view to switch between a specific day, week or month, and enter new information:

There are two options for inputting new settings here:

  • Working Hours
  • Holiday

For working hours, we can input the times, whether it repeats or not, and whether it’s a full day event or not:

We can also edit an existing Working Hours entry simply by clicking on it to change it. When we do this, we get the option as to whether to modify the single item that we’ve selected, or the entire series:

It’s important to note that we’re not limited to entering just a single range per day. We can enter multiple records for a single date, or a date range, to fit what we’re actually trying to do.

For Holidays, we don’t need as many options. We assume that by setting holiday, the company is closed. We’re therefore prompted just for a date (range) to then set this:

So what we then do is build up our calendar. This will result in (hopefully!) a full overview of our company, that we can then use.

What’s important to remember is that we could have different dimensions to our company though. We may allow Sales to be open 20 hours, but Customer Service to be open only for 12 hours.

We’d therefore create multiple Operating Hour entries for each requirement, and point each channel towards to the applicable record. If we only have a single scenario that we need to handle, we can point multiple channels towards the same operating hours record – that’s not a problem at all.

So with this, we can really tweak operating hours as we need to, for each possible usage. It’s really powerful, so easy to set up, and gives us full control over things.

Have you ever struggled with something like this? How did you overcome it? Drop a comment below – I’d love to hear!

Handling ‘Out of Hours’

Let’s face it – we can be quite spoiled at times. As a customer, we can sometimes expect that companies be available 24/7 to service our requests, needs, issues, etc. That would be wonderful, wouldn’t it! Imagine that you have a mobile phone issue at 2am – you could call up your provider, and have it handled (or a new handset sent out) immediately. That would be quite nice!

Unfortunately the real world doesn’t (always) quite work like that. Of course there are companies that operate on a multi-national or even global scale, and there’s always customer service available (Amazon – I’m thinking of you right now!).

Previously I’ve gone into how we can set operating hours for a company, so that the ability to contact a customer support agent is only shown during these times. Take a look at Handling Company Hours for a refresher on this.

But sometimes not showing the ability to contact support could potentially be counter-productive. Customers may think that our website isn’t working properly, and possibly attempt to try to reach us through other means. This could quite well frustrate them.

Due to this, we have a nice little piece of functionality that’s now come out in Omnichannel. It’s small, simple, but yet quite brilliant in my humble opinion. This is the ability to have a chat widget available, but let customers know that that it’s currently out of company hours.

To activate this, we need to open the Chat record in the Omnichannel Administration Hub, and go to the Design tab:

Quite helpfully, the section is labelled ‘Offline’! How much better could we get.

We do need to understand that (at the time of writing this post) it’s currently in Preview, with all of the usual caveats around how that works.

We have several items available here:

  • Show widget during offline hours. This is what actually activates the setting – leaving this to false won’t do anything for us!
  • Theme colour. This allows us to set the specific theme to be used during ‘offline’ hours. It’s actually really helpful, as it serves/gives a very visual aspect to the customer to display that it’s out of hours
  • Title. The title of the chat widget, which will be displayed to the user
  • Subtitle. This allows us to place a subtitle as well, for the user to be able to see

So what does this then look like? Well, let’s take a look:

Personally I think that being able to set a theme colour for offline access gives it that little edge. Customers will become aware of this (subconsciously) when visiting the website, and come to the point of not even trying to start a chat when they see that it’s out of hours.

One MAJOR thing to bear in mind. We’re only going to be given the option to set this when we have a value set for Operating Hours. Without this being set, we won’t be shown this option. Go try it for yourself and see!

There’s not really much else to this, to be honest. But I’m liking it. I know that from a personal perspective I’ve been on various websites, and have no idea if the support chat is actually working or not. With this in place, I’m able to see that it is available for use at the correct time, and not have to wonder about it.

Have you ever thought about implementing something like this? Have you actually done so? I’d be really interested to hear from you about how you went about it – please drop a comment below!

Reconnecting to previous chat session

We’ve all been there. We’re in the middle of a chat session with a support agent, or talking to a salesperson, etc. Suddenly things go wrong – our browser hangs, the internet loses connection, or something else…

Alternatively, I do know of situations where kids have pulled out the internet cables during ‘playtime’ – it really does happen!

Immediately we’re frustrated. Not only have we not finished what we were trying to achieve, but we’re going to need to start all over again. Perhaps the agent took notes & logged them against our contact record, but the likelihood is that it hasn’t happened. It’s going to take time to get through to an agent again, then we have to explain the whole situation from the absolute beginning. It’s heartrending, and can cause our day to absolutely go down the tubes!

Well, what if we could just re-connect to the chat session with all our data saved? Better still, what if we could go back and continue chatting with the specific agent that we had been communicating with? Sounds amazing, but wishful, right?

Well, we now have this ability within Omnichannel, to be able to enable our customers even further. There are even two ways in which we can offer this:

  • Reconnecting with a link (URL). If the agent is concerned that the chat session may be interrupted, they can provide a URL at the start of the session. If the customer becomes disconnected from the session for whatever reason, they can click the link, and it’ll take them right back to it. This works for both authenticated & unauthenticated users
  • Reconnecting through a prompt. For authenticated chat users, if the session drops they can be presented with a prompt. This will allow them to choose whether to connect to the previous session, or start a new session.

Let’s take a look at it, and how it works.

In the Omnichannel Administration Centre, we need to go to the specific Chat record that we’re wanting to set this up for. We open the record, and are now presented with the following (we do need to scroll down the screen a bit):

Note that this is in Preview currently, so just be a bit careful with it!

There are several options available. We don’t need to use each one, but let’s understand what each one does:

  • Turn on reconnect to previous chat. This is the option to enable if we’re wanting to offer this. Without it set, it’s not going to work!
  • Reconnect time limit. How long we’ll offer the option to the customer to reconnect for. See the note below around this
  • Reconnect to previous agent for. How long we’ll allow the customer to connect back to the same agent. This needs to be equal or less to the ‘Reconnect Time Limit’ value that we’ve set. During this period of time, the agent’s capacity is blocked, unless the agent uses the ‘Close’ button on their interface to end the conversation (which then releases the agents availability)
  • Portal URL. As mentioned higher up, the agent can provide a URL for the customer to auto-reconnect if the session drops. This value is the URL that the chat widget is deployed to
  • Redirection URL. If the connection drops, and the re-connection timeout occurs, we can redirect the customer to a specific web-page. If this isn’t set, the customer will see the option to start a new chat conversation

Note: The ‘Reconnect Time Limit’ value is auto-set by the system to the value specified in the work-stream that’s associated with the chat widget. It’s not possible to manually change this in the chat widget itself. Instead, the work-stream ‘Auto-close after inactivity’ value would need to be changed. This is shown below:

Note: It’s also important that the customer hasn’t closed THEIR chat window! All of this relies on the customer chat still being there. If the customer has closed their window/browser, they won’t be offered this option.

Have you ever needed to offer customer capability along these lines? How did you go about it? Drop a comment below – I’d love to hear!

Dynamics 365 Admin Centre for Omnichannel

I’ll freely admit that the title for this post is a bit of a mouthful! I’ll also admit that I used the British spelling of ‘centre’, rather than what it actually is. You’ll have to excuse my grammar 😉

This post is about something that we all knew was coming. The old Admin Centre is no longer – and we shall miss it! It was inevitable that it would be moved over to the new Power Platform interface, as so many other things have already. Therefore I thought it would be good to do a quick article about where it is now, how to access it, etc.

After all, it is vitally important when needing to carry out the initial configuration for Omnichannel, or to check for upgrades to the Omnichannel installed solution!

Let us, however, cast our mind back to the very familiar layout shown below. We’ve spent so many years here that it seems quite sudden. But though you may be gone, you will not be forgotten!

Manage Omnichannel application

Right – now onto the new version of it! So this actually took me a few minutes of digging around as to how to find it & get to it.

The first thing I tried was looking in the environment settings, but alas, I didn’t find it there. So I continued digging around.

Wishing you spare you the exact itinerary of everywhere that I looked into, I’ve decided just to show you it! I can hear the sighs of relief at this point…

What we need to do is navigate to the Power Platform Admin Centre, at https://admin.powerplatform.microsoft.com/. Once there, we expand Resources on the left hand side, and select ‘Dynamics 365 apps’. Note that you do NOT have to select a specific environment first to be able to do this./

Now we can see a list of all apps installed. Nicely we’re able to scroll, which we couldn’t do in the old interface! That’s actually really helpful, and avoids needing to navigate to a different page. If we scroll down, we can see the entry for Omnichannel:

Click on ‘Manage’, and we get the following lovely popup:

Click OK to this, and we get taken to the (familiar) interface for configuring the initial items for Omnichannel:

Here we can go about the usual items, such as checking each environment to see if there are any updates available, or configure the main channels.

Nicely, Microsoft has actually updated (some of) their documentation, which is obviously very good. I’m now going to have to go and check through previous articles of mine, and update as necessary!

Omnichannel & Knowledge Articles

One of the most useful features that Dynamics 365 has to offer (in my opinion) is the ‘Knowledge Base’ feature. The purpose that this serves is multi-faceted. It can act as a repository for internal information, serve as a FAQ store, or even be used to publish information externally.

The amount of knowledge held within any organisation can be quite staggering at times. Think back to when you’ve been trying to get an answer to an obscure question, and only Bob in Repairs knows about it. Trying to track down that answer can be quite time-intensive at times (you need to find out who to ask, where they are, etc). In the modern digitally-connected world, we have better forms of communications available. However even with those, we’re still challenged at times.

Enter the Knowledge Base. Here people can enter information that can then be searched on. It could be a simple one-line explanation, or an in-depth instruction as to how to do something very technical.

It’s also a really useful place to hold business processes in. This can come in really helpful when rare situations occur, so that customer service agents can refer to them to find out exactly what to do.

There’s already a massive amount of information (if you’ll pardon the pun!) out there around the Knowledge Base, so I’m not going to go into deep detail here around it.

However, what I DO want to talk about is the ability to use Knowledge Base within Omnichannel!

See, customer service agents are the ‘first line’ of support that customers will deal with. Admittedly they’re also the 2nd, 3rd etc (until it may get to a very technical/specific question). The types of queries that they may need to handle can be astonishing at time! Being able to refer to information ‘at their fingertips’ is therefore vital, & key in driving efficiency. This then in turn leads to higher customer satisfaction, with queries being resolved quickly & easily.

So with all of that said, let’s take a look to see how this is used within Omnichannel. Essentially, there’s a Knowledge Base tab that can be opened for the customer service agent to access:

This opens automatically when a new customer sessions starts, and is then available for the customer service agent to click into.

Note: The behaviour to open it automatically is driven from the Session Template that’s set up for the communication stream. If it’s not set up in here, it won’t automatically launch. See the screenshot below for how this is set up, and refer to Omnichannel & Application Tabs for more information around this:

Alternatively, the agent can launch this directly from the chat itself, by clicking the ellipse icon, and then selecting it from the menu:

This will then put the agent directly within the Knowledge Article search tab. When this opens, it’s blank! Don’t worry about this however – it’s only blank, as there haven’t been any searches carried out yet! When the user starts to search, it’ll then return results into the pane:

If the user wants to open the article in a new window, all they need to do is click the little ‘pop open’ icon on the article summary, which will then launch a new window with it in it. This can be helpful if the agent is needing to have several different articles open at once:

If your company has configured an external portal for sharing Knowledge Articles with the public, it’s also possible to send a link for a specific article to the customer. To do this, either click the arrow button on the article, to click the Send URL button on the menu bar:

Now, the general layout used for Knowledge Articles will be familiar to anyone who has used the same ability within Cases in Dynamics 365. However for people who are used to working directly within Knowledge Articles, it will look slightly different. There’s no ability to add a new article or edit an existing one, publish, etc.

The reason for this is that within Omnichannel itself, the functionality interface is being surfaced as a web resource. There’s no need to worry though, as users can open the familiar Knowledge Article interface as well directly from within Omnichannel. To do this, the customer service agent should click the ‘+’ button on the tab bar, and then select ‘Knowledge Articles’:

Voila! A new tab will open, and the traditional Knowledge Article experience will load. All of the expected functionality is present, and users are able to do anything that they may need to inside of here.

So in summary, this is a continuation of the empowerment of customer service agents. With the knowledge ‘at their fingertips’, they’re able to provide the best possible experience for customers. Not only that, but queries can get answered and/or resolved in less time. Customer satisfaction will (hopefully!) increase as a result of this, with everyone feeling empowered & efficient!

So here’s my question – are you currently using Knowledge Articles (it doesn’t have to be within Omnichannel)? If you are, what benefits do you see that it brings to your company? If you’re not, what could help you to adopt them? I’d love to hear – drop a comment below!

Omnichannel Agent Presence

One of the main parts of any system is to see who’s available to handle customer service queries. This is, of course, vitally important for any company – you wouldn’t want to overload an already busy agent!

In the case of Omnichannel, the system uses something called ‘Presence’ to show this. When users are set up, they have a default presence set against them. These govern system behaviour, along with having a nice friendly icon that helps from a visual perspective. Omnichannel has the following default options available:

These are available for supervisors to see from their dashboards, so that they can see the status of all agents at a single glance.

It’s also used by the system for auto-routing conversations. For example, if the agent status is ‘Busy’, then they won’t have new conversations routed to them. Similarly, if they’re set as ‘Away’ or ‘Offline’, they also won’t get conversations sent through to them (admittedly supervisors can override this, and assign specific conversations to agents who have one of these set).

Agents are able to change their own presence by clicking on the toolbar, and selecting the one that they wish to set:

But what happens if you want to have some custom statuses? Off the top of my head, I can think of at least half a dozen clients that would want more granularity around this.

Well, thankfully we’re in luck. Omnichannel supports the option for a ‘Custom Presence’!. They do need to be set up through the Omnichannel Administration Hub. To do this, go to ‘Custom Presence’ on the left side & select it. We can see that the default system entries are there.

Before going any further, I do want to point out that we should NOT deactivate or delete the standard Presence entries. It’s possible to do, but it’s going to create MAJOR issues in your system. So please, don’t!

Right – back to things. To create a custom presence, we click the ‘New’ button on the menu bar. We get the following window:

The 4 fields shown are as follows:

  • Name. The name of the record
  • Presence Text. The wording that the agent sees when they’re picking their status
  • Base Status. The default system status that this new status will be based on. This is important, as it will drive the icon used
  • Description. A ‘friendly’ description of what the presence/status is about. This is useful to keep track of things

Once we’ve saved the record, it’s then immediately available for agents to select! The only thing that agents need to do is refresh their browser tab. This makes a nice change from the usual ’15 minute wait’ for data to update within Omnichannel :).

So let’s go ahead and see what this then looks like. I’ve chosen a very familiar item (for most people):

When I’ve selected this new custom status, we can then see that the icon in the Ribbon Bar changes as well, to the icon for the base status that we used:

So in short, this is quite a nice little piece of functionality. Nothing too fancy or complicated to setup, but will allow companies to further segment their agents & understand what they’re up to.

Something else that we’re able to use this for is the agent ‘Default Presence’, which is set on the User record. Once we have custom presence records in place, it’s possible to select these there:

So apart from having agents segmented by Teams & Queues, we can now also use these. Some very interesting scenarios pop into mind!

So, how do you think you’d apply this in your own environment? Drop a comment below – I’d love to hear!

Agent Notes in Omnichannel

Anyone familiar with Dynamics 365 will of course be aware of ‘Notes’. These are the very useful ability to for system users to add notes into records. For customers, these show up within the Activity timeline. Every time a note is added, it’s added to the activity timeline to be able to be viewed. It’s also possible to add attachments to notes, which can be very handy too.

Each note is stored with it’s own date/time logged, so it’s possible to see when each one was created. Of course it’s also possible to click into a note to edit it, if it’s necessary to add additional information.

Now, what about within Omnichannel? The interface is different, as we know. So if agents need to capture notes, are they still able to?

Well, let’s take a look at the interface. As shown below, we do indeed have a Timeline section that agents can see. Here they can view the activities that have been previously carried out with this specific contact:

Not only can the agent see notes in this section, they can also see the other items in the activity history. So they’re able to then bring up previous conversations etc.

There are two ways in which agents can log notes within Omnichannel itself. The first way is the ‘usual’ way that we’re used to. Within the Activity Timeline, they can click to enter a note, and then save it:

This will then create a note against the record, in the normal way that we’re all used to. However, there’s a MUCH nicer way to do this!

See, it’s possible for the agent to create the note from the chat itself!:

Clicking this causes a HUGE notes window to appear next to the actual chat:

This is quite nice. It gives the agent a lot more screen space to capture information for the note. They could also quickly copy/paste from the customer conversation into here.

They’re not able to add attachments though through this large pane. Instead, the agent would need to save the note, which would then cause it to appear in the Activity Timeline view. Once there, the agent could click into it, and add any attachment/s that they may need to.

OK – so we’ve found out how agents can use Notes within Omnichannel. But there’s actually a really cool function from doing it directly from the chat.

When we add Notes in the ‘traditional’ style, and save them, it creates a record for each one. As mentioned above, it’s obviously possible to open up a note, edit it, and then save it again. But this can be a slight hassle at times.

Having to wade through a load of ‘ad-hoc’ notes when reviewing a record can be difficult & take a lot of time. It also doesn’t really look very neat, and can cause challengers when trying to get a good overall picture of what’s been happening. Additionally, it’s REALLY hard to search on properly, and a we all know how important (good) searches can be in our daily lives!

There will be situations where an agent captures a note, saves/closes it, then needs to come back to it. Perhaps they may need to come back to it multiple times. For example, closing notes at the end of a customer conversation.

Omnichannel facilitates this in a most marvellous way. When the agent creates the note from the chat & saves it, it saves the Note record. If the agent clicks the Note button again from the chat, they’re presented with the ‘clean’ interface again: the previous note/s don’t appear there.

However, ALL of the notes entered are saved to the SAME notes record. It doesn’t matter how many times the agent creates/saves a new note from the conversation – they all appear in the same record. This is really great in my opinion, as it means that we can have the entire view of ALL of the notes in one place.

Interestingly enough, it doesn’t put them on different lines – I’m going to look into this further, to see if this is actually what is meant to happen or not…

This in turn then facilities clean records, clean notes, and can save us a great deal of time. Aren’t clean data structures amazing.

So my question to you is – do you use Notes currently? What challenges have they presented you with, and have you come up with any workarounds? Please share – I’d love to hear!

Omnichannel – Wave 2 2020

Yesterday was an extremely exciting day, for a number of reason! The main reason (& the purpose of this article) is that the release notes for Wave 2 2020 dropped. This covers Dynamics 365 (https://docs.microsoft.com/en-us/dynamics365-release-plan/2020wave2/) and Power Platform (https://docs.microsoft.com/en-us/power-platform-release-plan/2020wave2/). I’ve been quite eager to see (& talk about) some of the features that will be in it, so here goes!

Now there’s obviously a lot of different stuff in there, covering all of the different first party apps in Dynamics 365, as well as functionality for the different parts of the Power Platform. I’m going to focus on the Omnichannel features, as after all that’s what I (mostly) talk about 🙂

As I’ve done before, I’m going to include the dates that are applicable (at this point in time) for each time.

Agent suggestions for similar cases

Public preview – October 2020. No current date for GA release

Reader Question: What should I do if a project sells in Hollywood ...

Customer service agents will usually use multiple resources to efficiently handle & resolve customer cases. When doing so, the ideal is to provided consistent responses across agents & sessions. Carrying this out can involve knowledge articles, involving other agents, or reviewing active/similar cases.

The aim is to therefore improve this to enable the agents to be more efficient. Items such as being able to identify other cases that similar actions have occurred will result in a much more empowered experience.

The key highlights for this new feature include:

  • AI driven case suggestions bases on the context & historical success rate
  • Secondary actions that can be taken, such as collaboration with an expert
  • Continuous improvement of the recommendation model through a comprehensive feedback mechanism

Embedding chats in mobile experience

GA – October 2020

Until now, the only way possible for customers to engage with Omnichannel customer support on mobile has been through a mobile browser. This hasn’t always been the best of experiences.

This feature allows business with mobile applications to provide customers the ability to engage with customer service directly within the mobile app. There are two options available for this across iOS & Android devices:

  • By embedding the Omnichannel chat widget into an iFrame, with minimal code customisation. The colour & logo can be set through the Omnichannel Administrator app. This method includes a sample app on AppSource with examples for common scenarios
  • Through the React Native Mobile SDK for Omnichannel for Customer Service. This will allow developers to build fully customised chat widgets in mobile apps

Persistent messaging for chat

GA – October 2020

One of the main challenges around chat is that when a conversation is closed, the history is accessible the the chat transcript. It’s not easily visible in the chat conversation history. Asynchronous messaging channels such as WhatsApp don’t have this ‘restriction’, as the chat history is directly available in the session.

If an agent needs to go look up the chat history, it can cause a delay in responding to the customer whilst it’s located, opened & read. This in turn can degrade the customer experience.

In this new feature, admins are able to enable persistent messaging, so that the customers previous conversation shows in the actual conversation window. This in turn allows the agent to have the full context of the customers previous engagement before responding.

Outbound messaging

Public preview – August 2020. GA October 2020

There are occasions when organisations need to proactively reach out to customers. This could be to notify them of a case update, regulatory information, upcoming appointments, etc. Being able to do this via the customers preferred method of communication is important in delivery best-of-class service

With this feature, organisations will be able to dynamically message their customers based on specific events through supported channels. This includes the following capabilities:

  • Creating message templates that can be adopted for outbound messages
  • Configure outbound messages based on specific events on any entity, & send messages when these events are triggered

The customer will now be able to respond back upon receiving one of the messages. This response will be treated like any other incoming conversation in Omnichannel. It will flow through the appropriate routing & work distributions, agent assignment, etc, and the agent will be able to respond back to the customer in real time

Post-conversation surveys using Forms Pro

Public preview – August 2020. GA – October 2020

Until now, there was no (easy) method for post-conversation surveys to be sent out to customers. Businesses wish to ensure that customer satisfaction is met, and often make use of such things. Custom Power Automate actions could be implemented, but this obviously takes additional time &/or resource to develop.

With this new feature, Omnichannel administrators can configure post conversations surveys using Forms Pro. These can be presented natively as part of the customer experience to provide feedback. There’s also support for sending offline surverys through one of the various enabled channels.

Real-time language translation of messages

Public preview – August 2020. GA – October 2020

Language Translator - Apps on Google Play

Customers would like to receive support in their native language. Businesses are not always able to do this, as it would require having staff who can communicate in different languages to their customers.

In this feature, real-time translation of messages is carried out between the customer & the support agent. It’s also available for the internal collaboration between agents. It’s enabled as a plug-in that exposes API’s to bring in 3rd party translation services, & also provides a native implementation through Azure Cognitive Services.

This is a feature that I can see being used heavily by not only multi-national organisations, but also by by smaller national-based organisations that have an international customer base

Agent personalisation of quick replies

What is Quick Response in S Planner of Samsung Galaxy Note2(GT ...

Agents spend a considerable amount of time engaging with customers. We already have quick responses within Omnichannel to save agents time in typing replies, & to deliver consistent replies.

However these can’t be personalised for individual agents to represent their identity. This new feature allows the pre-configured quick responses to be customised by agents to represent their styles. With this, they can then address communication scenarios in a manner that’s common & personal to them.

Agent personalisation of sound notifications

Public preview – September 2020. GA – October 2020

This feature enables agents to customise sound notifications for incoming conversations so that they can easily distinguish between different sessions. It will also allow them to
differentiate their sessions from others around them in a call centre setting.

Agent suggestions for knowledge

Public preview – September 2020. GA – October 2020

Agents typically use several different resources to efficiently resolve customer cases. These include knowledge articles, collaboration with other agents, and reviewing other cases. Up until now, this has all be done manually.

The new feature for this uses AI to proactively surface relevant knowledge articles, taking case context & previous history into account. It also includes a comprehensive feedback mechanism to continuously improve the recommendation model.

Experience designer for multi-session apps

Public preview – September 2020. GA – October 2020

The experience designer is an out-of-the-box solution that lets organisations create targeted app experiences, to be used by agents & supervisors. Administrators can select specific channels & tool to be used by these profiles, as an alternative to building & maintaining custom apps.

All in all, I think that there are some really helpful additions to the core Omnichannel product, aimed at making the customer & agent experiences more productive. I’m looking forward to getting hands on with these, and writing about them!