MB-600 Solution Architect Exam

I haven’t really touched very much on any exams that I’ve taken so far during the lifetime of this blog. I’ve mentioned them a few times (ie how important they can be), but haven’t really gone into detail.

However, having seen various comments online recently around the MB-600 exam, I thought I’d do a post on it with my thoughts and comments!

So, what is the MB-600 exam? Well, it’s sort of the ‘Holy Grail’ for Dynamics 365/Power Platform. This is due to the actual full name for it – ‘Exam MB-600: Microsoft Power Apps + Dynamics 365 Solution Architect’. Indeed – assuming you pass it (and you’ve already passed the MB200, and either the MB210. MB220, MB230, MB240), you can officially refer to yourself as being a Microsoft certified ‘Solution Architect Expert’.

Impressive!

The exam was being talked about at the beginning of 2020, and went live (in beta) on Jan 27th 2020. If you’re wanting to book it, do so at https://docs.microsoft.com/en-us/learn/certifications/exams/mb-600.

I sat it several days after it went live, and to be honest found it quite challenging. Why was that? Well, when I sat it, there were no learning paths on Microsoft Learn for it at all. Thankfully that’s now changed – there’s a massive amount of great material at https://docs.microsoft.com/en-us/learn/certifications/power-apps-and-d365-solution-architect-expert. If you’re looking to go ahead and do the exam, I’d highly recommend you go through everything that’s there.

I’ve taken quite a few exams since early 2019, and have now taken the general approach to take exams in Beta. Although there can be some waiting until the results are announced, they’re cheaper, and give you an understanding of what’s going on.

I sat the exam through the Proctored option. I’m not going to say too much about that (you can look up online what this is about), other than to say that I feel that Microsoft really should be doing something about the proctored experience. Pearson Vue is in charge of this, but it can be really bad at times (having taken a dozen or so exams this way in the last year, I feel I’m quite qualified to be able to judge this!). I hope that things do get better for this.

So, to the exam itself. Well, I was lucky – there were no Labs in it (yet!). Several case studies, and lots of questions. Quite hard questions as well – make no mistake, they’re out to seriously test your knowledge.

The first thing that I ‘loved’ when starting the exam was the general briefing, which included something along the lines of this absolute gem (this isn’t word for word, as I’m not allowed to write it down during the exam, but it gives the gist of it):

Some question sets may have more than one solution, while others might not have a correct solution at all

Right. So tell me – if there’s no correct solution, what am I supposed to do? I’m still waiting for someone to enlighten me on this matter, as I haven’t found anyone who’s able to explain it….

Now, part of the exam rules state that it’s not allowed to share any of the exam questions. What I’ve therefore included below is an overview of the sorts of things that were covered for my exam (Note: exams are composed from question banks, so there could be many things that weren’t included in my exam, but could be included for someone else!).

  • Data imports – what they are, how to go about them, troubleshooting them, etc. Also covering different types of sources
  • Security models, permissions, security types (field level, role, user, team etc)
  • Teams integration. How it’s set up, configured & used
  • Solution patch types. What they are, how they’re applied, how they’re used, benefits & drawbacks
  • BCP (Business Continuity Planning and Disaster Recovery) processes. What option/s should you be considering to ensure your business is fully covered in a disaster situation, how are they configured
  • Portals. What they are, how they’re set up, security permissions
  • Business rules, Business Process Flows, Workflows. What each one does/doesn’t do, benefits & drawbacks, how they’re set up & configured
  • Systems – On Premise vs Cloud. The advantages and/or drawbacks of each type, and the different BCP methods (see above) for each one
  • Data integration. OData vs Custom Service for continuous data
  • SLA’s and KPI’s. What they are, when each is used, how to set up & configure them
  • System upgrade paths and compatibility. How you go about upgrading legacy systems, and the necessary path/s that you have to take for a given version number
  • Customer Service through multiple channels. Which option/s would you select for a given scenario, how would you set it up/configure it
  • CDM/CDM/PowerBI/Azure Service Bus/PowerApps. What is each one, what are the benefits/drawbacks of them, how is each one used, & set up/configuration
  • Licensing Types. What license/s would you need for a given scenario
  • D365 Sales Insights. What it is, what benefit/s it brings, how is it used
  • Data security. How is security used for Dynamics 365 & PowerBI data, how is it set up/configured
  • Field properties. For a given scenario, how would you change field properties and/or parameters?
  • Data Migration. Different options available for this, benefits/drawbacks, resolving issues
  • Form security. What is it, what are the different types of security that’s able to be used, how is it set up
  • Solution management. What are the different types of solutions, how is each one used, what are the associated risks, which option would you use for a given scenario

Wow. That’s a LOT of stuff. Like…an incredible amount. Some of it touches on parts of the system that I’ve never used before (like PowerBI). Other parts are extremely familiar.

I can’t tell you if I’ve passed it or not…YET!. Results aren’t yet out, as it’s still in beta (and from what I’m hearing, it’s likely to be remaining in beta for several months still.

So, if you’re aiming to take it – I wish you the very best of luck, and let me know your experience!

Mario Trueba on The Oops Factor

Chatting about the importance of stickers, swag, and the amazing Microsoft community that we’re part of. Covering a major project that was going to use Unified Service Desk (USD), and what happened when trying to deploy the configuration data between environments!

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 & 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.

Tomasz Poszytek on The Oops Factor

Talking about Tomasz’s love of photography, which camera brand he actually uses, windsurfing, & how projects shouldn’t be pushed by IT into the business, but rather be project led/project driven. Also briefly touching on why gamification & swag can be so useful with user adoption!

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 & Org URL

This post topic came out of some research that I was doing when getting my Omnichannel webinar presentation together, and I thought it would be useful to share with others.

When an environment (also referred to as an organisation is created within a tenant on the PowerPlatform, it’s given a URL. By default, this will be imaginatively named by the AutoGenerateElves, along the following lines:

It is of course absolutely possible to change this (assuming that someone else hasn’t taken that ‘special’ URL that you’re wanting to use!). To do this, you go to https://admin.powerplatform.microsoft.com/, log in with system adminstrator credentials, go to Environments, select the one you’re wanting, and click the ‘Edit’ button:

You’ll then be able to enter the name that you’re wanting to use (incidentally this is also where you’re now able to switch environments between Production & Sandbox):

You then click the Save button at the bottom of the screen. Assuming you’ve entered a name that isn’t already being used, all is successful. However if it’s being used by someone else (very frustrating, we know!), it’ll give a lovely error message at the top of the screen along the following lines:

Not very helpful, I know – if only there was a way that when you entered the name you wanted and moved off the field, there could be some validation checking happening there & then, with information in plain English if it was able to be used or not…ah well – one day!

OK – so people know this. Brilliant.

What I want to share, however, is how this affects Omnichannel within an environment.

See, when Omnichannel is provisioned into an environment, one of the things that it sets somewhere in the back end is the environment URL. You can’t see where it’s stored, but it’s saved somewhere. This is then used when setting up things such as Chat within Omnichannel – there’s an auto-generated code snippet that you would then use in an HTML block on a webpage to launch a chat session with an Omnichannel agent:

Now, when you change the URL of an environment, it doesn’t change in here – it seems that whatever is happening/updating in the background when you do the URL change, it’s not being pushed into Omnichannel and refreshing the settings there (and you can’t change them manually). Hopefully at some point it’ll happen, but it’s not doing it now.

Even manually changing the code in the HTML block on the website page won’t work, as it won’t be pointing to a valid Omnichannel URL.

We know that it’s not a usual course of events to change an environment URL, but there are valid scenarios that it would happen in, and we obviously need to know how to deal with it!

Having looked into this and tried out some different things, at this point in time there’s only one way to do this – you need to remove the Omnichannel solution, and then re-apply it to the environment. My immediate reaction to this was WHOAH…what about all of the settings (aka static data) that’s been entered for Omnichannel to be configured to the business needs?

With this in mind, I reached out to some people for advice – and they came through. Yes, you need to remove the solution totally (until a better mechanism will be implemented hopefully). But there’s something called the ‘Microsoft Configuration Migration Tool’.

Disclaimer – I haven’t actually used this yet, so this is based on the information I’ve seen on it

With this tool, it’s possible to select various entities, and export/move the data from one environment into a saved file, and then be able to import it. Phew – this sounds somewhat easier than manually doing things (as long as you remember every single place that you need to get the data from, of course).

Note: PowerObjects has a great article on the tool at https://www.powerobjects.com/blog/2018/08/27/microsoft-dynamics-365-crm-configuration-migration-tool/ , and the tool itself can now be gotten from http://xrm.tools/SDK (as it’s no longer part of the released SDK).

With this in mind, it’s now possible to recreate Omnichannel for the environment without hopefully TOO much fuss. The only additional thing to bear in mind is to then check and update the code snippets for Chat etc to reflect the new URL.

Man in Red Crew-neck Sweatshirt Photography

Let’s hope that in the future, this is streamlined and is much more trivial to be able to do!

Channel Integration Framework (II)

Last week I shared a post about the Channel Integration Framework 1.0 ( https://thecrm.ninja/omnichannel-the-channel-integration-framework-i/), where I introduced what CIF actually is, and how it was originally launched.

I was somewhat naughty – I ended the post on a slight teaser note. See, as I mentioned there, CIF 1.0 was all about allowing channel widgets from providers to integrate with what we refer to as ‘model-driven apps’. Eg Accounts, Contacts, etc, which are all ‘single session’ entities within Dynamics 365 (ie that a single channel is being used, like a phone call). It was never designed to support ‘multi session’ apps, which is what Omnichannel is all about (ie the ability to have multiple ‘conversations’ going on at the same time, regardless of the channel in which they’ve come in on).

This is why in 2019, Microsoft was working on the next version of CIF – 2.0! Imaginatively named, of course. The aim was to take the general concepts from CIF 1.0, and apply them to be able to be used with multi-session applications. Obviously at this point in time, the ONLY multi-channel application is….OMNICHANNEL!

Incidentally it’s important to note that any communication widget built on CIF 1.0 will continue to work. Microsoft is not removing the 1.0 APIs, as they’re still needed to support interfacing with single-session apps

So, what’s new (and improved) with CIF 2.0:

  • The ability to have multiple communications happening at the same time, through either the same channel, or multiple channels
  • The ability to have multiple third-party provider solutions. You could have Provider A for telephony, and right alongside it Provider B for SMS
  • Different modes for the widgets, which can be adjusted per session launched. It’s now possible to have them set to be docked in the interface, minimised to a smaller size (to give agents more screen space to work with) or hidden (where it’s running in the background). Agents are able to switch between docked & minimised modes

This is all really exciting. It will allow companies to mix and match solutions based on their actual requirements, rather than having to settle for a single solution provider that may not actually be everything that they’re wanting.

Note: With an eye to data security and things like GDPR, information, data & events for support sessions will only go to the provider for the channel that the session is coming through. They don’t have access to any other session/s that are happening

One of the other main features that comes with CIF 2.0 are the channel analytics. With CIF 1.0, all of the interactions are surfaced into the Dynamics 365 app, but are actually running on the provider’s system (in the background). Data can of course be exchanged between them, but there’s no real ability to perform analytics of what’s going on (especially as it’s only a single channel)

Black Samsung Tablet Computer

In order to get the full insight into what support agents are actually doing, along with seeing the performance of the support centre, it’s necessary to be able to see information across all of the following:

  • CRM data (itself). This covers the actual data of the customers, communications with them (eg activities and cases), their history over time, etc – all of this is stored in the underlying CDS
  • Agent Behaviour. How the agent handles the session – what they do before, during and after they’ve helped the customer
  • Communication data. How the customer has contacted the company now, how they’ve done so in the past, their experience, etc.

So how exactly does Channel Analytics help with things? Well, what it does is:

  • Provides APIs to bring the conversation data into CDS
  • Along with the APIs, it has a standardised schema for how the analytical data will be stored
  • Brings in a standardised scheme for how all of the data points shown above will be correlated together
  • Extendable – you can bring in your own KPIs and other data to best suit your needs.

With all of this now being available through CIF 2.0, it’s possible to carry out really advanced analytics, crunch the data using a tool such as PowerBI, and other things. It’s also possible, of course, to configure real-time dashboards as well as alerts to cover any issues that may come up.

Benefits of this of course include:

  • Identifying root causes of anomalies, help with audit reports, and tracking KPI’s
  • Help with predictive insights for volume of requests, and where to best focus resources
  • See customer satisfaction & average handling times to resolution, along with on-going customer sentiment

So in summary, this is really great. I’ve actually now started to speak with different companies who have ISV solutions that are going to be on CIF 2.0, and will be writing about them in the near future as well.

Mary Thompson on The Oops Factor

Discovering what Mary actually uses her time at (American) football game practices for, as well as finding out about her professional background. We chat about how she kept going when working at an end-user, and what happened when major accounting errors in the system were discovered!

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.

Dynamics 365 Kanban Boards

One of the great features being released as part of Wave 1 2020 for Dynamics 365 is the ability to have Kanban boards in the system!

For those people who are unfamiliar with this functionality, “Kanban” is the Japanese word for “visual signal”. A kanban board helps make work visible using cards & columns to easily display data visually. This allows people to keep on top of things, rather than be distracted by lots of lists and data in different places.

Example of a generic kanban board:

When an item on a kanban board changes status (or whatever property the board groups by), it moves to the relevant column. This could be as simple as having PostIt notes on a wall somewhere and a member of the team physically moves it to a new column, or having a record value be updated and then it automatically moves in the view. Items can also be dragged/dropped to a new column in some systems, which then updates the status

I’ve used Pivotal Tracker for several projects that I’ve been working on over the years, which works exactly in this way.

One of the drawbacks with how data is displayed in Dynamics 365 is that the views are lists of records. You can add columns for fields that you want to reference (eg status), sort & filter on them, but visually it’s not very exciting. There’s the ability of course to have charts, graphs & Power BI objects (with the ability to drill down into these), but it’s still not the best of experiences in my opinion.

Well, that’s now no longer the case! You can now use the kanban board ability to display data more visually, as well as interacting with it (think drag/drop)

Caveat: At the moment, although you can add kanban to practically any entity, it’s actually only able to be used on Opportunity

So, the steps to enable it in your environment:

  • Go to https://admin.powerplatform.microsoft.com/environments & select the environment you’re wanting to try it in
  • On the right side of the page, you’ll see the Wave 1 release (see screenshot below). Select the ‘Manage’ button, and confirm the upgrade (it’s not reversible FYI). Wait patiently for it to install (it can take several hours)
  • Once the installation is finished, refresh the environment, open the environment, click the cogwheel on the top right, and select ‘Advanced Settings’
  • Joyfully, this takes you to the old system settings menu, as this functionality hasn’t yet been moved into the configuration available at make.powerapps.com (yet!). Click the dropdown arrow next to Settings in the menu ribbon, and select Customisations
  • Open the solution up (remember, you should probably be doing this in a custom solution, rather than the default one!), expand entities, and find Opportunity. Click on it, and then click on the ‘Controls’ tab
  • You’ll see the option for ‘Add Control’. Click this, then scroll down the list until you see Kanban! Add it, and it’ll show up in the list of controls
  • Now, it’s VITAL that you save, and then publish the customisations.
  • Close all of this, and go to the Opportunity entity. Click the 3 dots to expand the menu on the menu bar, click to slide into the Show As menu, and then select Kanban (you can of course change the default view to use Kanban, if you so desire)
  • And BOOM! The screen layout will magically change, and you should now see the following sort of thing (assuming you have data for Opportunities, of course)
Image from Carl Cookson at linked365.home.blog/

Incidentally, there are actually two Kanban board views available for Opportunities. One of these groups by the record status, and the other groups by where records are within the Business Process Flow timeline (which is shown in the screenshot above). You can switch between these easily by selecting the option that you want on the screen.

Now, as I stated above, this is currently only available for Opportunity (and you need a Sales Enterprise or Sales Professional license to use it). However, I really think this is great functionality, and would hope that it’ll roll out to other parts of Dynamics 365, as well as being available for Power Apps built on the CDS.

How do I see this being valuable? Good question to ask! I think that initially it could be really valuable for customer service scenarios, especially tracking negative interactions with customers (ie where the customer isn’t happy with support and/or the resolution, or there’s a fault, etc).

The ability to display this data visually, with time filters as well, should bring things into focus quite quickly to see where a company can both improve its offering, as well as pick up any issues that are occurring. Obviously regular reporting and BI will still continue to play their crucial roles, but this is another piece of functionality being added to the overall ‘toolkit’ to help get things every better!

Channel Integration Framework (I)

So for starters, the title is somewhat of a mouthful, right? Try saying ‘Channel Integration Framework’ several times fast, and you’ll end up with some VERY interesting sounding words. Thankfully, people and organisations working with it usually shorten it to ‘CIF’. So that’s what I’m going to do as well (which will also hopefully prevent any RSI whilst I’m typing this all out).

The definition of CIF according to Microsoft is:

The Dynamics 365 Channel Integration Framework is a cloud-to-cloud extensible framework to integrate third-party channel providers with Dynamics 365 model-driven app using a browser-based JavaScript API library.

Now, for the technically minded (isn’t that all of us?), CIF is a set of API’s (methods, events & protocols) that enable developers to build their own solutions, and integrate them with Dynamics 365.
Examples of these would be a communication widget that’s running on a 3rd party provider cloud system, but that can surface and interact with Dynamics 365.

There are multiple partners out there who are doing this, such as Solgari. The immediate benefits of this is that additional functionality can be provided for customers that Microsoft hasn’t built into the system (yet!). An example of one of the functionalities provided by Solgari is the ability to dial a number directly from the Contact record (telephony):

Before CIF was available, it was usually an immense headache to integrate a 3rd party application solution into the system. It could be done of course, but was something that you had to be REALLY dedicated to doing, with all of the time, efforts and costs that it would involve.

With it being launched, many people breathed a massive sigh of relief, and then started to look around for partners who had solutions that supported it. There are now several Microsoft partners who offer solutions that integrate with CIF, and through this extend the functionality.

The CIF framework offered the following benefits:

  • It provides an extensible framework to integrate third-party cloud-based channel providers or channel aggregators with Dynamics 365 model-driven app (not Canvas)
  • It’s channel agnostic. Ie channels such as voice, video, chat, co-browse etc can be built as long as there’s a Javascript-based widget available
  • It’s not just a single direction flow of data; it allows two way communication. This therefore allows both inbound and outbound data
  • It exposes Javascript API’s (note the item above about it being a Javascript based widget)
  • Deployment is easy (well, as easy as any deployment can be!). Deployment is also the same across all apps/widgets – it follows a standard process
  • Plug & Play! It’s now very easy to have multiple different providers integrated, rather than being limited to a single provider
  • Dynamics 365 model driven app agnostic – once the channel has been built and deployed, you can then enable it on the model-driven app that you’re wanting to use it with, based on business requirements
  • Not reliant on operating system or web browser – it’s not reliant on a specific hardware/OS/browser configuration (obviously the browser needs to have the appropriate Javascript security settings enabled, or else it won’t work)
  • Screen pop! Popouts are available to display customer information that can help agents with their customer conversations and service.

The architecture behind CIF is as follows:

High-level architecture diagram of Dynamics 365 Channel Integration Framework
  1. The Dynamics 365 environment is where the CIF app is present to create and manage the required configurations
  2. The single-session Dynamics 365 model-driven app exposes the CIF panel to host the 3rd party widget
  3. The CIF Adapter enables the communication between a single-session model-driven app and the channel provider solution
  4. The web-based communication channel (2rd party) is hosted in the widget that the CIF provides. This is multi-purpose; it’s possible to host chat, email, or telephony channels of your choice
  5. The Channel Provider is the service that you want to integrate and interact with using the CIF. Channel capabilities are specific to the channel provider (ie a 3rd party solution that only supports chat won’t be able to support telephony etc!)

So essentially by using 3rd party solutions that integrate with CIF, it’s possible to have customer service offerings covering things like:

  • Telephony
  • SMS
  • Chat
  • Social media

This is really great, and is really the starting point for taking customer service to the next level. Companies want to be able to easily and quickly support their customers across all possible channels, as forcing them into using a specific channel doesn’t always work well, and can in fact be counter-productive.

Now, all of the above is of course amazing, and really great. The MAIN drawback is that this was CIF 1.0…..and it’s not possible to load a CIF 1.0 widget into Omnichannel! Aarghhh!!! It’s only possible to use 1.0 widgets with model-driven apps, which Omnichannel is not (more on that another time). So it’s possible to have chat or telephony integrating with Accounts, Contacts etc.

However, don’t despair yet. Microsoft has released CIF 2.0, which DOES integrate with Omnichannel. So stick around, and I’ll be putting up a post around how that works (I know – such a teaser!).