Omnichannel Supervisor Tools

While I’ve covered a lot of different pieces of functionality from both the end customer & agent experience, I haven’t really touched on the Supervisor experience to date. With the release of a nice little piece of functionality for it around Sentiment Analysis, I’ve therefore decided that it would be a good time to take a look at it.

Now obviously supervisors exist, in the sense that any contact centre would have managers in place to manage the agents. Indeed, they may actually handle customer queries directly as well – miracles have been known to happen! 😉

Really the aim of the supervisor role within Omnichannel is intended to help customer service managers or supervisors enhance their team’s performance and improve customer satisfaction. They need to ensure that customer queries:

  • Are being responded to quickly within an accepted period of time
  • have agents that are providing the right information necessary to handle the query
  • Are handled in a satisfactory way
  • Leave the customer feeling positive & satisfied around the interaction

To this end, the supervisor role includes access to various dashboards & views on the sessions that are taking place. From this, they’re able to ensure that KPI’s are being met, that queues aren’t overflowing, and that agents are carrying out the right work.

Please note that PowerBI Pro or PowerBI Premium licenses are required for users with the Supervisor role in order to access & view these dashboards

On-going Conversation Dashboard

The on-going conversation dashboard is one of the first tools available to supervisors. In this, they can see the entire ‘landscape’ at one glance, covering:.

  • Which conversations are currently active
  • The queue that the conversation has come through
  • The channel that the conversation has come through
  • Which agent is currently handing the interaction
  • The sentiment of the customer experience (more on this below)

Through this, there’s a wealth of knowledge that the supervisor can use. If a conversation doesn’t appear to be going well, they can reach out to the agent who’s handling it, and ask if they need assistance. They can be ready to offer escalation resolution should it be needed.

Supervisors are also able to allocate any conversation that’s an in ‘Open’ state (ie it hasn’t yet started) to a specific agent, or to a specific queue.. They would do this by selecting the conversation in the window, clicking the Assign button (which appears when the conversation is selected), & selecting either Agent or Queue. Depending on which option is selected, they can then select the agent or queue that they wish to.

Furthermore, supervisors are also able to monitor any conversation that is happening (as long as it’s in the Active or Wrap Up stage). When doing this, the customer & the agent don’t know that the supervisor is monitoring the conversation (unless the agent requests it, of course). Through this, they can keep an eye on how things are going, and if they feel it’s necessary, they can join it (without needing to be invited to it). Of course when they join the conversation as an active party, the customer is then notified about it.

To do this, a supervisor would select the conversation (providing it is in the ‘Active’ or Wrap Up’ state) and then can click ‘Monitor’. This action triggers a new session for the supervisor to be pulled into the conversation.

Sentiment Analysis for Supervisors

So one of the really cool features (in my opinion) that’s recently appeared is the ability to use sentiment analysis to automatically alert supervisors.

You’re able to choose the level of sentiment that you want supervisors to be alerted on. When a conversation reaches the predefined level, the supervisor will get a prompt like this:

Sentiment analysis notification

They can then click through to either monitor the conversation (& help out if necessary), or to ignore it. This can be really helpful as it’s allowing the supervisor to be proactive, rather then needing to keep a close eye all the time on the supervisor dashboards. Indeed for a large contact centre, there could be dozens or even hundreds of conversations happening at the same time, so this will immediately flag these conversations to them.

Intraday Insights Dashboard

The Intraday Insights dashboard gives information around KPI’s that are in place for the company. This does need to be configured before supervisors are able to access it – I’d recommend looking at the extensive guide on how to do this at https://docs.microsoft.com/en-us/dynamics365/omnichannel/administrator/configure-intraday-dashboard-supervisor.

There are two sections that are included:

  • Conversations insights
  • Agent insights

Conversation Insights

This section gives supervisors insights into conversations that have occurred over the last 24 hours, against a range of KPI’s. This is therefore a ‘rolling state’ dashboard, without the ability to go back further over time, or pick a specific date-range. If this ability is needed, then the Agent Insights dashboard will be used.

Conversations insights dashboard

As you can see from the image above, we’re looking at metrics across different sorts of KPI’s:

  • Average wait times
  • Average handling times
  • Conversations exceeding specified criteria

This can be very helpful on an on-going basis to see how the contact centre is performing overall, over the time period. Drilling down into these items can help identify bottlenecks & choke points, which can then be worked on to provide better service & efficiencies.

Agent Insights

This part of the dashboard gives information across various health & status items on any given day. Using this, supervisors can drill down into issues that may not be visible through the conversation insights dashboard.

From the screen above, we can see that things like conversation states, agent status & participation modes are available to view.

Because these are PowerBI dashboards, it’s possible to drill down further into them, filter by item (eg queue, agent, etc), and see very specific stats about items.

I hope that this proves to be helpful in understanding some of the tools that are available within Omnichannel for supervisors, and the help that they can give in running an efficient and productive contact centre!

Ramon Tebar on The Oops Factor

Finding out what Ramon misses about Spain, and the wonders that he’s discovered in London. If you’re ever in the mood for a stroll along South Bank, drop him a line!
Going into details around his background as a pure .Net developer, and what happened on a project for a contact that didn’t go through proper requirement gathering. Quite an interesting story.

If you’d like to come appear on the show, please sign up at http://bit.ly/2NqP5PV – I’d love to have you on it!

Click here to take a look at the other videos that are available to watch.

Updating User Settings with Power Automate

Here’s a scenario that could be all too familiar to us. We’re on-boarding users (to either Dynamics 365 or a Power Platform app), & they’re new to the environment that it’s deployed to. So they’re set up, and all ready to go. Suddenly they start asking why records created (or modified) by colleagues show up as having the wrong time on them.

Reverse Wall Clock Unusual Numbers Backwards Modern Decorative ...

Does this sound familiar? I’m sure it does to quite a few people out there!. See, there’s no way to set a default system-wide time zone in Dynamics 365 (or Power Platform). At least not that I’ve come across – if you know of one, please comment below with instructions as to how to do this!

As a result, users are given the default timezone, and need to change it. This is easily done through the Personalization settings area in the app. Users click here, and then select their appropriate time-zone. Brilliant…or so you’d think.

See, when it’s one or two users, it’s generally OK to tell them to do that. However, when it’s 200 or 2000 users, you’re going to get push-back. The last thing you want is for a large number of them to start contacting you to work out how to do it (read the instructions, perhaps?).

User queue stock photo © zam ri (OneO2) (#258450) | Stockfresh

I’ve had this scenario over the last week, where the client actually told us that they didn’t want us to tell users to update it manually. They wanted a better solution.

Well, there is a solution out there to update users. It’s the ‘User Settings Utility’ app that’s in the XrmToolBox (https://www.xrmtoolbox.com/plugins/MsCrmTools.UserSettingsUtility/). Really neat & nifty, and does just what it says on the box. Simple enough to select users (or all of them at a time), select the time-zone you’re wanting to apply to them, and click a button. Hey presto – it’s been updated

Hmm. But what if you didn’t want to have to do this manually. Or (and this is what I was dealing with), there were decent enough number of users being added to the app every few days, & I didn’t want to have to do this as a manual task.

So I started digging into how the time-zone setting was actually stored. It turns out that there’s an entity called ‘User Settings’, which is associated with a User record. Oh, and if you’re going to want to take a look at this entity to see what it contains, it’s NOT available through the front end. You can’t go into the entity list and just display it (though if you’ve found a way to do this through the Power Platform NATIVELY, drop me a line, please?).

Anyhow, back to things. There’s a value for ‘TimeZoneCode’, which maps to a specific time-zone. Aha, I thought! Right – now what’s the best way that I could work out to do this automatically. Checking in with some contacts in the tech community (thanks BlackOps etc!), Power Automate was suggested, so I started to see about how I could go about it…

So, I created a Power Automate Flow (haha…I got the name right there!). On creation of a new user record, it would programmatically go away and update the value to the one for the time-zone that I wanted it to be set as. This actually worked really well.

The only drawback is that through the user interface, it’s not actually shown as being updated, though it has been. Or sometimes it changes, but doesn’t reflect it accurately. This is somewhat annoying, and caused me quite some confusion between checking the front end to see if things were working, & confirming through the back end (& opening records up) to see that it was. I still have NO idea why this was happening.

Before changing my settings
After changing my time zone to USA (EST)

For my specific scenario, all of the users are in the UK, so I set it to update every user on creation to the UK time-zone. Obviously if you have users in different time-zones, you’d want to set this differently. This shouldn’t be an issue though, as you can expand the Power Automate Flow and add logic conditions/branches to be able to do this.

Now I think that this is pretty cool, and I couldn’t find anything out there for this. I’ve therefore decided to release this in a small solution, for others to be able to use. Part of this is the entire list of time-zones with their specific codes, so that you can update to whichever one you need to.

I hope that this helps solve a small but annoying problem (at least it did for me). Please do provide feedback if you want to!

Ben Vollmer on The Oops Factor

Talking through Ben’s love of cars & sound systems (he has friends who have been on Pimp My Ride), how he actually really respond to long emails (and the outcomes from that), and what he really thinks of Outlook-reminder style app. Also touching on the important of empathy in the workplace, and getting better from mistakes.

If you’d like to come appear on the show, please sign up at http://bit.ly/2NqP5PV – I’d love to have you on it!

Click here to take a look at the other videos that are available to watch.

Introductory Training for Dynamics 365/Power Platform

This post really goes back to basics, but it’s one of basic fundamentals for any successful project. In order to lay a proper foundation base, and to ensure success for a project, users need to actually know how to use the system! When going into greenfield (new) implementations, or expanding brownfield (existing) implementations, users need to know how the system works. For new implementations, it’s highly likely that many users, if not all, will never have actually used Dynamics 365 before! Going into a completely new system, with no understanding of how it works, can be extremely daunting. If not handled in the right way, and the right skills imparted, it can be a major blocker to the project itself.

Incidentally Microsoft Learn has closed the gap slightly on this. The different learning paths & courses can be really helpful to gain understanding of the system, and the basic components. I’ve done quite a few of these (the gamification angle helps with that!), and am generally quite impressed!

So with all of that in mind, I thought I’d share something. Over the last few years, I’ve noted the D365 Academy Belt Program (https://www.d365ug.com/participate/academy/blackbelt). It’s something that I’ve toyed with doing, but never got round to it.

I’ve recently had the opportunity to look over the actual material that’s used for the different belt courses. Not only have I looked over it, I’ve actually gone through all of the different belt training as well, to see how it actually is. Even with my knowledge & experience of the system, I’ve still learned/improved my knowledge in several things. I think it’s a really good structured learning system, and furthermore, actually shows clients how to become system ‘power users’!

I’ve listed below the different belts, and what’s included in each one

White Belt

  • Creating a trial – how to sign up & set one up
  • Overview of users – what they are
  • Office 365 vs Dynamics 365. The differenced in how they work when it comes to users
  • User maintenance – setting up users & teams, and handling licenses
  • System settings – how to set organisation-wide defaults
  • The basics of workflow – what a workflow is, and what it does
  • Form configuration – what is a form, modifying fields properties to display accordingly
  • Creating new fields – different field types & options
  • View configuration – creating, adding columns & filter criteria to display the data

Blue Belt

  • Security concepts – overview of how security works in Dynamics 365
  • Business Units – what they actually are, and how they help with things
  • Security Role Concepts – how they’re used, and the power that they bring to the security model
  • Security Role Applications – how to set them up, and showing practical uses with examples
  • Hierarchy Security Concepts – what exactly is a security hierarchy, and why it can be helpful
  • Hierarchy Security Application – how to set this up, and use within the system
  • Ownership Teams – why this can be helpful when using records
  • Access Teams – how are these different from the other teams, and how they can be used
  • Auditing – how Dynamics 365 has an in-built audit trail for records, and the benefits of it

Purple Belt

  • Advanced Form Configuration -sub grids, charts, navigation links & iframes
  • Creating Custom Entities – building on the knowledge of the system so far to implement these
  • Calculated & Roll Up Fields – what these are, the differences, & where to use them best.
  • Field Level Security – ways to restrict specific data fields on entities to a specific team of users
  • Charts, Dashboards & Reports – how to set these up, and the different ways in which they help
  • Document Generation – how to automatically create Word & Excel documents from templates
  • Business Rules – ‘no code’ approach to making fields required, hiding them, setting values
  • Business Process Flows – guiding users to enter data in a specific way, with making it easier
  • Branding – making your site reflect your company colours & logo
  • Site Map Editor – placing just those entities that users access to create a clean interface

Brown Belt

  • Duplicate Detection Overview – what it is, and how it works
  • Duplicate Detection Configuration – how to set up rules to enable it to work in the right way
  • Data Imports – how to configure & set them up to then import data into the system
  • Data Mapping – the key item in data imports. Getting this right is imperative
  • Bulk Deletion – carrying it out, and what to be careful of
  • Cascading Relationships – how these can be so powerful, & where to use them best
  • Data Integration – best practise thinking in how to approach integration

Black Belt

  • Workflows – what are they, understanding how they work
  • Realtime & Background – the differences between these two, and how you should use each one
  • Power Automate – how it differs from traditional workflow, & how to start configuring one
  • Document Storage – the different options available, including cost considerations.
  • Extending with 3rd Party Tools – using tools available in the XrmToolBox, and how this can help
  • Power Apps Introduction – what these are, and scenarios for them
  • Model/Canvas Apps – the differences between the two, and considerations for each

I’ve been working with Dynamics 365 for a decade now, yet there were still things that I felt I learned from the course. I feel that it’s possible to learn from everything, even from what we’d consider to be a ‘simple’ source.

So what are the next steps for people looking to learn? Well, Microsoft Learn (https://docs.microsoft.com/en-gb/learn/) of course would be a great place. Carrying on from there, you could look to start taking some of the available exams. There are plenty of these available, ranging from basic fundamentals all the way up to solution architect.

I hope that this has been useful to you – if you’ve come across other great introductory training resources, please let me know!

My past year, & Alison Mulligan

This post is going to be somewhat different & out of the norm for the usual sort of topics that I talk about. It’s also going to be somewhat personal, and mention a special person who’s been an absolute rock for me.

So, where to start? Well, there’s been a lot that’s happened in my life over the last year or so. I touched on things briefly in my post at the end of last year. Several deaths in the family (father & grandmother), some sicknesses, etc. I’ve also started one job, decide it wasn’t right for me after almost a year, and then needed to look for another job. Thankfully I managed (even with all the craziness going on in the world currently), which I started in March 2020.

We’ve also expanded our own family (again), and been dealing with all of the usual things that come with children etc.

Now, why am I mentioning all of this, and specifically, why am I mentioning it now? Well, there’s one specific reason for me doing so, and that’s to mention Alison Mulligan. Otherwise there wouldn’t really be any point in this post at all, in my opinion…

Now, for those who don’t know Alison, let me try to summarise her as best as I can in a few words.

Created by LittleArtistRo at ScottishSummit ’20

Well, to start off with Alison works in the recruitment industry. Woah…hold on. Yes, she’s a recruiter. But she’s the FIRST recruiter that I’ve come across in over a decade who has what I would consider to be proper (& correct) principles. Now I’ve dealt with many recruiters & recruitment companies over my professional career. Some are better, some are worse, and some are truly dreadful (no, I’m NOT going to mention who they are).

However, Alison absolutely & totally bucks the trend. This isn’t just my opinion, it’s the opinion of everyone who I’ve met who’s ever known Alison. See, Alison doesn’t just want to fill roles with people. Her purpose (which she’s said time & time again, in private as well as public), is to find the right role for someone. That doesn’t stop at roles that she has to offer though. For her, it’s not about the money side of things; it’s about the person being happy & fulfilled in the role that’s right for THEM. To this end, she’ll connect someone who’s looking for a job with OTHER recruiters, or people within the industry who are looking to fill a role, even if she doesn’t make anything off of it.

I started The Oops Factor series last year. I had been bouncing ideas & concepts off several people, Alison being one of them. She was highly supportive of the project, and told me that I had to have her on as one of my first guests (which of course I did!)

When I was looking for my next role at the end of 2019/beginning of 2020, she was there at the end of a phone (and occasionally in person, when possible), whenever I needed to talk. She updated me constantly on the state of the market, & opportunities that she had, as well as those that she was aware of that OTHERS had. She was there as an absolute rock, without asking for anything specific in return. When I needed a laptop to present at PowerPlatform UG London in November 2019, and I didn’t have one available, she told me to come along to her office. When I got there, she handed me one of the office ones, told me to set it up as I needed, and to use it for as long as I needed to. How many people do you know who’d do that?

When I landed a new role (which incidentally wasn’t through her), she called me up immediately to congratulate me, and spent time on the phone asking about it, how I was feeling, etc. She truly cared about what I had been going through, and was happy & celebrating with me the success in finding something.

Now that was my own personal experience, but I know that it’s not unique to me. I’m aware of others who she’s helped in the same way, and who she’s continuing to help in these critical times. I constantly recommend Alison as the first point of contact to anyone who’s going to be looking for a new role – she’s that amazing.

Things don’t stop there though. Oh no. See, Alison is also active within the (technical) community. She comes along to the User Group sessions, knows the technology, & participates. She doesn’t even just confine herself to ones that are local to her – she goes to others that aren’t as near. As a result, people know her, and get to see that she’s not just pretending in order to get clients. She loves the technology that we all love, and can hold her own (usually) in conversations!

So for most people, that would usually be enough. They’re participating, getting known within the community, etc. Alison doesn’t just do that. She also gets involved in organising & hosting.

Let me give an example of this, to provide some some context. There was a SUPER special community Lego hackathon earlier this year.

The location for it had issues at the last moment, and it was going to be cancelled. Alison heard about this, told the organisers to leave it with her for a few hours, and she’d call them back.

Within that time, she organised to host it in her office building (remember – this is at the last minute, and not an easy thing to do!). She helped get things ready, participated throughout the day, helped pack things up, and finally joined everyone for the ‘after-event’ drinks. It’s not the first time that she’s done this, and highly unlikely to be the last.

Most people who are involved in recruitment tend to be looked at cautiously (at best) by the community. Honestly, we’re tired of them turning up, trying to get people’s details, and/or entice them away from current jobs without really considering what’s best for them. It’s happened time & time again, and we don’t like it. In fact, there was an offer last year from a recruitment firm to host a community event, and it was turned down due to this.

Alison doesn’t fall into this; she’s trusted (and absolutely adored, if you want the truth) by the community. Events without her there aren’t the same , though we understand of course that it’s not always possible to commit the time/travel to attending (we all have times that this happens).

Some years ago, a community organisation that I was helping out with told me that in every community, there are one or two people without whom things wouldn’t function at all. They may not be prominent, may not be paid much (or even at all), but they’re the crucial cog & lynchpin. If they weren’t around, things would fall apart.

In my opinion, Alison is one of these crucial cogs & lynchpins. I really don’t know how the different London technical communities would manage without her input, advice & help. I consider myself blessed to know her, count her as a friend, and to chat about motorbikes whenever we’re able to!

If you don’t yet know Alison, I humbly suggest that you try to come along to one of these events (which are virtual at the moment, making it somewhat easier), and get to know her. Her Twitter is https://twitter.com/AMulligan365, and she’s on LinkedIn at https://www.linkedin.com/in/amulligan365/.

You’ll appreciate her sense of humour, her experience in life, and the joy that she also has with seeing how the technology works to make everything better.

Matt Weston on The Oops Factor

Finding out from Matt as to how he got into vlogging (video blogging) to begin with, and the special test that he uses when explaining technology concepts. Matt shared with us about his special ‘love’ of Sharepoint content types with inheritance, how he occasionally does a spot of ‘pruning’ with Sharepoint forms, & the absolutely important of community!

If you’d like to come appear on the show, please sign up at http://bit.ly/2NqP5PV – I’d love to have you on it!

Click here to take a look at the other videos that are available to watch.

Omnichannel – Pre Survey Responses & Routing

I’d like to start off here by admitting that in a previous blog post that I put up, I mentioned that it’s not possible to route customers to different queues through the chat itself. That was wrong – thankfully several very nice people at Microsoft reached out to let me know how it’s done (thanks BTW for reading my blog!). I therefore thought it would make a good article, as people do ask me about this from time to time.

So, how exactly does Omnichannel facilitate this? Well, there are two parts:

  • Pre chat surveys
  • Routing rule items

Pre chat surveys

These surveys are really quick & easy to set up (or even more complicated, if you so desire). To start getting to grips with them, open a Live Chat record, and go to the ‘Pre-chat survey’ tab

Here, you’ll be able to set up your questions, which is done by clicking the ‘Add Question’ button. When you do this, you’ll get the following prompt.

So, three of the four questions are really quite simple. You need to give it a name (as every system record needs), the actual question text, and whether it’s mandatory or not. The fourth question ask you what sort of question type you’re looking for. The options available are:

  • Single line of text
  • Multiple lines of text
  • Option set
  • User consent

If you select ‘Option set’, you’ll be prompted to enter the values. These should be separated by a semi-colon character:

With our pre-chat survey questions being set up, let’s see how we go ahead and use them for routing.

Workstreams

If you go ahead and open up any workstream record, you’ll see several tabs available. Two of these tabs are Context Variables, and Routing Rule Items. There’s usually one workstream per chat channel, with setting options within it as required. Opening up the workstream for the Live Chat, we can see them there:

Let’s take a closer look at the Context Variables first. Going to this tab shows us the following:

Woah. Where did those entries come from? I didn’t enter anything here – though I can create context variables if I want to.

Well, remember those pre-chat survey questions that we created? Each time one of these is created, it creates a context variable record for the workstream that the chat is associated to. So each of my questions (and I have four of these) now have a corresponding entry.

OK – so the system does that. But how does that help me when looking at trying to route things?

Simply put, these are the building blocks that we’ll set up in the Routing Rule Items to flow the customer chat through to an appropriate location. Let’s go and create one to see what happens.

We need to set the queue that this rule to apply to. Then we’ll go ahead and set the condition/s that we’re wanting to apply for this queue. There are several different possibilities to start with:

Selecting the entity that we want to use for the rule will then allow us to pick an attribute for that entity. So;

  • Account, Contact, Case & Live Chat Context will give an option to select one of the attributes from the entity
  • Context Variables will give the available context variables to choose from

You’ll then be prompted to select an Operator. These will vary depending on the type of field (eg a number field will have additional options such as Greater Than, Smaller Than, etc)

Finally, you’ll enter the value that you’re looking to match with for the condition. This is free text (it’s not auto-populated with values). So in summary, you’ll have something like the following:

And tadaa! it’s active. Brilliant!

We’re able to stack up multiple conditions to cover specific scenarios. An example could the following:

  • Customer has a Kawasaki motorbike (not a different make)
  • Customer’s annual spend falls into the ‘high spend’ bracket

There are plenty of other scenarios that can be covered, and the conditions allow this to cover quite complex situations.

So, some things to note around workstreams & routing rule items:

  • You can have multiple routing rule items per workstream, each one routing to a different queue. These are evaluated in the order that they’re saved in. Eg if there are 4 rules, an incoming chat will be evaluated against rule 1, then rule 2, etc
  • When a routing rule condition is met, the chat gets routed to the destination. No other evaluation against the remainder of the rules is carried out

I hope that this has come in useful, and put some interesting thoughts into your mind as to how you could implement this at your organisation or clients!

Omnichannel Install/Update Errors

I’ve had an interesting time over the last week or so. Several people have contacted me about trying to either install Omnichannel, or upgrading to the latest version. These differ based on what the user was trying to do.

When trying to install into a new environment, the error says ‘To add this channel, you must have an active subscription to Dynamics 365 for Customer Service Chat or Digital Marketing’. This is especially strange as a trial environment (for testing purposes) doesn’t actually require these licenses. It only requires a Customer Service Enterprise license.

When trying to upgrade an existing environment, there’s a different error. This one says ‘We are unable to check for upgrade as you don’t have the required permissions. You need to be either a global administrator or a Dynamics 365 service administrator to check for upgrade. Transaction Id: 0cc1f6be-32f1-476c-8071-acc4d8475e63’. However the user has the Global Administrator role (which obviously also includes the Dynamics 365 Administrator role as well!

image.png

Now I love being able to share my knowledge & help others. That’s one of the main reasons why I started this blog and why I share information that I feel is helpful & useful to the wider community. So I was more than happy to try to help the people who had reached out to me, and jumped on a screenshare session with them (using Microsoft Teams, I may add!).

They were indeed getting the errors mentioned. Nothing that I could suggest helped to rectify. To try to diagnose & compare, I jumped into my own environment. To my absolute surprise, I was greeted by the same issues!

Nanny Knows Best: Shock Horror Probe - People Take Responsibility ...

I knew that it hadn’t been occurring several weeks back, as I had carried out some maintenance work in my own tenant & everything was working fine. I double-checked everything on my end, and it all seemed to be set up correctly.

I therefore decided to go ahead and log a ticket with Microsoft Support. I had a sneaky feeling that it was something, somewhere, to do with the Wave 1 2020 release upgrade. This had happened 2 weeks back (since I had last been into the Omnichannel setup), and I was figuring that something could have gone wrong.

This feeling was boosted by hearing that someone else who was having the same issues had also logged a ticket with Microsoft Support, and they had resolved the issue for the affected tenant. In doing so, they had mentioned that the back-end hadn’t been configured correctly, and got it fixed.

My support agent was a lovely guy called Tomasz, based in Portugal. Emails initially exchanged, we then jumped onto a Teams screenshare session so that I could demonstrate the issues from my side. He was very helpful, and immediately got to work. Within 12 hours I had received an update from him on the situation. They had identified the problem, and were working on a fix.

I had mentioned to him that I knew it wasn’t isolated to my tenant, or even region, but that other people across the globe were also experiencing this. I suggested that whatever fix would be found should be rolled out on a global scale (if applicable).

The crux of the problem seemed to be that with the Wave 1 2020 Release, there had been a change in the architecture of the Omnichannel total solution. Everything still appeared the same through the interface, but under the hood there had been some changes (I have no idea of what actually had changed though).

For new instances (whether Trial or Production), the solution was installing with the new architecture. However all existing systems (whether Trial or Production) had the old architecture, and the Wave 1 2020 Release wasn’t upgrading it to the new one. It simply failed, giving the different error messages.

The fix that was needed was actually quite simple, and only took a few minutes. I had to spin up a new trial of Customer Service within my tenant (which would expire within 30 days). Doing this re-installed the Customer Service solution, & included the new Omnichannel architecture. As a result, after waiting around 5 minutes I was able to open the Omnichannel Administrative Settings, and upgrade my existing Omnichannel deployment. I was also able to deploy to another new environment without any issues. The problem had been solved!

Joyful Green Monster Saying Hurrah Vector Sticker Illustration ...

Overall, this support ticket was an example of how support should be/work. I’ve had times before when it’s unfortunately not gone like this, which makes me value this all the more so.

So, lessons to learn from this. Well, if there’s an issue with deploying Omnichannel to a new environment, or upgrading an existing deployment, fire up a trial of Customer Service, and that should fix it. Brill.

I do wonder how this managed to creep in. Obviously one of the main parts of deploying any new major solution is thorough testing. Perhaps it could be that due to the size of the actual Omnichannel solution, something was overlooked somewhere? It would be good if this sort of situation would be avoided for future releases, and functionality build in to automatically upgrade the Omnichannel solution if it has an old architecture.

Update. I’ve actually had feedback from the Omnichannel team around this. Essentially there’s something different about Trial environments, and this issue only affected them. Production environments (ie with paid-for licenses) wouldn’t have experience the issue. I don’t know why they’re different, but somewhere they are!

Iain Connolly on The Oops Factor

Talking with Iain about his gaming console selection & finding out about bulk-updating fields in Prod with the XRM Toolbox. Some UN-expected consequences, and a major cleanup operation that was needed!

If you’d like to come appear on the show, please sign up at http://bit.ly/2NqP5PV – I’d love to have you on it!

Click here to take a look at the other videos that are available to watch.