Omnichannel Macros

I’ve previously touched on macros in https://thecrm.ninja/omnichannel-productivity-tools/, but with some new functionality that’s now come out, I thought it would be quite interesting to dive deeper in them. By doing do, we can see how they work, the functionality that they offer, and some really cool & interesting scenarios!

Let’s have a quick reminder of what macros are all about (for those who don’t know, yet):

Macros allow customer service agents to carry out repetitive tasks that can span multiple entities. Eg opening forms (model-driven apps), pre-populating data into the form, etc. Through this, not only are there less manual tasks/steps to carry out, there’s now the ability to carry out the same tasks, without worrying about a step being missed, or the wrong data copied in, etc.

With that in mind, let’s see what there is for macros in Omnichannel. As a default, there were always the following 3 pre-defined automation actions:

With these, we’re able to do things like:

  • Opening a form to create a new record. This could be used to create a new contact automatically
  • Opening an existing record. This could be used to open an existing contact (based on pre-survey questions, such as email address etc
  • Searching the Knowledge Base using specified keywords/phrases
  • Opening an email form with a pre-defined templated
  • Linking records together

There’s now a new option available:

Hmm. This looks interesting. What happens when we select it?

We get a condition block! Clicking ‘Add an action’ will allow us to then add either one of the pre-defined automation actions, or another Control/Condition block.

OK – so you’re now thinking that I’m getting over excited about this. But hold on – let me explain further why I’m really liking this.

So when using Power Automate, frequently I’ll use condition blocks to check/satisfy things (it’s obviously available in Logic Apps as well, but I have minimal experience of those to date). Some of them can get quite advanced, but it comes in useful. However for Omnichannel macros to date, it’s not been possible to do this. We’ve been limited to just a few options, without being able to specify branching criteria based on variables.

Now we’re (finally) able to do this. The Condition field works in the same way as Power Automate does, with being able to string multiple statements together, and have actions that result from them. We’re also able to use slugs in them, to populate variables & use customer-entered data.

Let’s see an example of this. We have a customer who’s opening an Omnichannel chat session. They’ve filled in the pre-survey questions, in which we’ve asked for the following pieces of information:

  • First Name (required)
  • Last Name (required)
  • Email Address (required)
  • Company Name

With the condition check in place, we can either create just a contact record (if the customer didn’t fill in the company name field), or we can create both account & contact records, and link the two together. We could also check if the customer already exists as a contact, and then not need to create any records for them.

This means that there will be much less manual work for the agent to carry out, as they won’t have to manually create all of these records.

We’re able to string these together in ‘multi’ step scenarios, to allow things to flow on from each other:

There are also other options available to use, such as the ability to clone, and the ability to open a new application tab. I’ve covered application tabs at https://thecrm.ninja/omnichannel-application-tabs/, so we can see how helpful this could actually be. We wouldn’t need to automatically open a specific system for all customers contacting us; instead we’re able to selectively open things based on the actual customer. This makes for a much cleaner & better agent experience, in my opinion.

In summary, this is a really helpful & useful feature that’s been added, bringing even better functionality to macros. We’ve been able to do these sorts of things elsewhere to date, and being able to do it here now as well is great. All I can say is that I’m wondering what else we could do…perhaps kick off a Power Automate Flow as well? We’ll have to wait and see 🙂

Omnichannel & Agent Scripts

Earlier this week I started to share information around the Productivity Tools that Microsoft provides (as a separate solution, admittedly) for Omnichannel – https://thecrm.ninja/omnichannel-productivity-tools/. With it, I also covered Macros, and some of the benefits that using macros can bring to a company

Now, we all know that the absolute key point in ensuring a consistent & holistic approach is to have a method for getting something done. A ‘script’, in other words. With this, we can set out the steps that we want to be carried out, in the order that they should be performed, with appropriate information against each item. This results in agents (hopefully!) following this, giving the customer the same (and great) experience each and every time they need to interact.

Scripts isn’t just about instructions to be carried out though. It also allows macros to be included, that agents can run as they go through the script.

Here’s an example of something that I’ve been playing around with in my test environments (ninja’s are just SO cool, that I’ve had to rein in my imagination!):

So that’s an example of what you can do. Let’s now see how we set these up. There are several steps to it

In the Omnichannel Administration Hub, you should see the Scripts entry in the left hand bar:

Open it, and click on ‘New’ in the main menu bar. You’ll get the following form appearing:

Type in a name for the script, and a description (personally I find it annoying that I can’t see all of the text in the Description field – perhaps Microsoft may change this at some point). Save the form, and the grid to the right becomes active!

Clicking the ellipse (3 dots) in the Agent Script Steps grid gives several options:

One of the very helpful options here is to add an existing script step. What’s a script step, I hear you ask. Well, each specific item in a script is referred to as a ‘script step’. You set these up as you go through your scrip, as shown below. You don’t need to create a new script step for each script if they’re the same thing – you can just create one, & add it as needed to multiple scripts (just be careful, because if you need to change it at some point, the changed/updated version will display in all scripts that it’s associated with!.

As with any record, you’ll put in a name, and a description. What you’ll also do is give it an order number (this is manual, not auto-generated). The order number is how the system orders the different steps. There’s also the option (which is a required selection) as to whether this is text, macro, or a script:

  • Text. This will be free text that you enter into the script step, which will then be displayed on the screen for the omnichannel agent to see
  • Macro. This will give you the option to point to a macro that you’ve already set up. When the agent will click on it during the session, the macro will run
  • Script. This allows you to reference existing scripts – you can have smaller scripts that you can then use as ‘building blocks’ to create more complex scripts

Once you’ve gotten the script set up, we then need to configure the chat sessions to actually use it. This allows us to set up multiple scripts in our system, and use them as appropriate (eg by using pre-survey questions, it’s possible to direct a customer to a specific queue, and then have the agents use a specific script for this).

To do this, we go to Sessions, and open the session entry that we’re wanting to set the script up for:

Once it’s open, switch to the Agent Script tab. This has a grid that shows all of the script/s that are set up for it. To add script/s, use the drop-down menu on the top of the grid:

The last thing that needs to be done is to enable the Productivity Pane, as otherwise agents won’t be able to see all of this in the first place! Thankfully this is a single setting, and is done as follows:

  • Go to the Productivity Pane option in the left-hand menu. Click on it
  • Set the Productivity pane option to ‘Enabled’
  • Set the Mode option based on your requirements (this is how it appears in the agent interface). By default it’s set to ‘Collapsed’
Enable the productivity pane

And VOILA! It’s now all set up and ready to go:

Omnichannel & Productivity Tools

One of the really great things about Dynamics 365 (and other Microsoft products such as Office 365, PowerBI, etc) is that providers can publish solutions that companies can then look to install into their environment. In fact, not only do 3rd parties do this, Microsoft itself does this too!

These are all published to AppSource (http://appsource.microsoft.com) where you can quickly and easily search for solutions. It’s possible to filter based on category, industry, product, pricing level, and several other options. There are thousands of solutions on it – it’s really quite amazing!

So, what does this have to do with what I’m writing about? Well, there’s a package, created by Microsoft itself, called ‘Productivity Tools for Dynamics 365 apps‘ (hyperlink is correct at the time of writing this article).

According to the description against the solution:

…it provides capabilities that help users to perform day-to-day operations in a faster, efficient, and process compliant manner and deliver value to customers…

OK – sounds good. And it’s free – yes, that’s right. Additional FREE functionality that’s being provided by Microsoft (why they don’t roll it into the general solution, I have NO idea). But where does it come into play, and apply, to the customer centre universe?

Well, that’s actually really simple. See, it’s only able to be installed in an environment that has Omnichannel installed to! It can’t be installed if that’s not present – so it doesn’t work with the ‘regular’ customer service first-party applications.

Now, any contact/customer service centre is expected to handle a large number of customer interactions, along with resolving them as fast as possible. I’ve already previously touched on some of the benefits of Omnichannel for Dynamics 365 helping streamline any company team, in that it’s no longer necessary to have a team handling calls, another team handling web enquires, and a third team handling social media, etc. Instead, it’s now possible to have a single team handling all customer interactions and/or communications holistically across all possible channels.

With this, however, comes various challenges:

  • There can be many actions to perform manually (I’ve previously covered using slugs in customer conversations to cut down on manually typing things – https://thecrm.ninja/quick-responses-in-omnichannel/, but there can be lots of other actions as well)
  • Repetitive and/or monotonous tasks – there are scripts that the customer service agents will need to follow for each interaction
  • Not having real-time insight into the customer, and any other relevant needs based on the context of the interaction.

So, what does the Productivity Tools solution actually contain? At the time of writing, it has 3 components that are part of it:

  • Macros
  • Agent Assist
  • Smart Assist

I’m going to cover these functionalities over a couple of posts, to show how they work and bring benefits to an organisation. I’m not going to go into how to install the solution – it’s pretty straightforward, and the instructions are shown on the AppSource page for it.

One thing to quickly mention though is that there are 2 new security roles that are relevant for Productivity Tools, that should be applied to users as applicable to them:

Macros

Macros should be well known to most people, as they’ve been around for a LONG time! It’s possible to have macros in Word, Excel, even Windows itself (I remember back in high school that we used macros within Word to launch Explorer, as it was locked down – we could then open games and play during lunchtime…)! It’s therefore a natural evolution to have them available within Dynamics 365 as well.

Using macros, customer service agents can carry out repetitive tasks that can span multiple entities. Eg opening forms (model-driven apps), pre-populating data into the form, etc. Through this, not only are there less manual tasks/steps to carry out, there’s now the ability to carry out the same tasks, without worrying about a step being missed, or the wrong data copied in, etc.

As with all other configuration in Omnichannel, you’ll need to go to the Omnichannel Administration Hub to access the Macros section:

Click ‘New’ on the menu bar, and hey voila – you can create a new macro!

Now, I had no idea what to expect – and the interface for this was possibly the last thing that I was thinking would be there! It looks EXACTLY like the process for creating a Power Automate Flow, though just for macros. In fact I’d be quite surprised if underneath it all it was actually using something different to do this – after all, if you can build a ‘process builder’ once, in a really great way, why not use it everywhere that you can!

So, once I’ve set up some steps, my screen now looks like this (the syntax does take a little bit of getting used to FYI):

Now, it’s not just a single step that you can perform. As with Power Automate Flows, you can daisy-chain MULTIPLE steps together to achieve the desired result/s:

This is really great, in my opinion. There’s obviously quite a scope of activities and actions which agents would usually carry out manually, which macros now now address & handle.

Macros themselves are used by agents within the Agent Assist and Smart Assist functionality. I’ll be introducing these in the next post, along with how to use macros within it.