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.

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!).