Retrieving Configuration Values from the USD

In the USD you can create Options that you can use within your Actions/Events/etc in the Unified Service Desk Configuration.

You can also access these values from within your own control via C# relatively easily.


To access the value within my USD Custom Hosted Control via C# all that is needed is the following code.


And now I can use this value within the USD without having to create my own configuration files et al in C#.

Unified Service Desk and the Dynamics Web API

A follow-up to my post on Getting Started with the Dynamics Web API – on a recent project, I was building a custom hosted control in the USD that leveraged the Dynamics Web API.

However, when I went to deploy my control, my USD instance would implode and not load whatsoever.

Turns out the issue was a result of me using a higher version of the Microsoft.IdentityModel.Clients.ActiveDirectory dll (the latest 3.19) than what is supported in the USD (using 2.22).

The resolution was to downgrade my implementation of this dll to use 2.22 et voila, my solution deployed perfectly and my USD was no longer imploding.

I should note that for the above this is all done using v2 of the USD on a Dynamics 8.2 instance.



Why do I need the Unified Service Desk?

I’ve been (and will continue to do) some blogging on the Dynamics Unified Service Desk (USD) but I’ve failed to answer the first, probably most important question you might be asking yourself right now.

Why do I need the Unified Service Desk?

Before I proceed, answer these questions (no rush, I’ll wait).

  • Do I run a Contact Centre? Y/N
  • Do I have a phone system? Y/N
  • Do I already have Dynamics installed?  Y/N
  • Have I invested some serious $$$ in our company’s own proprietary Line of Business Applications? Y/N
  • Do I have agents that work remotely? Y/N

Do I run a Contact Centre?

Great, the USD is designed, from the ground up, to be your agent’s only app they will ever need to do their job.  No more wasted context switching between applications, no more trying to find the right app that applies to the right situation – it’s all there for them to use and consume when they need it.

Do I have a phone system?

Great, with the USD you can use (or purchase from a partner) the CTI – Computer Telephony Integration – SDK that enables you to work magic with incoming phone calls to your agent’s – i.e., ScreenPops.  With this SDK, you can enable the USD to listen onto telephony events that can open up Dynamics, search through it and determine next course of action without the agent having ever picked up the phone.

Do I already have Dynamics installed?

If yes, fantastic, the USD is free, the SDKs are free and all of those wonderful Dynamics customizations and forms you have in place are freely available in the USD.  You don’t need to create any new screens (unless you want to) or develop any new workflows (unless you want to) – you can leverage everything you have to be up and running today.

Have I invested some serious $$$ in our company’s own proprietary Line of Business Applications?

Great, the USD can host many Windows and Web-based applications as hosted controls.  If you want to get really fancy, you can enable Single Sign-On protocols to automatically sign in your agents to these other systems without forcing them to remember multiple credentials.

Do I have agents that work remotely?

Yes?  Great, they can download the USD to their desktop from wherever they are, login and begin working as if they were in the office.  It’s as simple as running an install.

I zipped through these questions pretty fast and so should you.  At the end of the day, the USD can help you deploy and deliver a unified Contact Centre experience to your customers and agents while reducing costs, leveraging your existing Dynamics 365 investments and not having to throw out years of investment in your existing Line of Business applications.

Best of all, the USD does not care if you are on-premise or in the cloud, it loves them all.


Creating a USD Configuration

When getting started with development in the USD (Unified Service Desk), the first thing you have to do is create a configuration profile (otherwise you get an error when you launch the USD).

A configuration profile is what allows you to create many types of USD implementations and associate them to users.  A user can only ever be associated to one profile.


Establishing a base configuration profile is comprised of three parts as indicated below.


The Global Manager is a hosted control which is core of any USD implementation.  The role of this control is load and host all controls related to your configuration, interpreting all controls, rules, toolbar components, scripts and sessions.  A single configuration can only contain one instance of the Global Manager hosted control.

The Connection Manager hosted control type manages connections to the Dynamics365 server, and makes it available to the rest of the agent application.  Theoretically, it would be possible to host an instance of the USD without a Connection Manager, but there would not be significant value to this approach (since it can’t read/write any data to/from Dynamics).

The Panel Layout hosted control defines the arrangement of panels in the Unified Service Desk. Panels can host various controls, and defines the arrangement of various hosted controls of the USD.  There are a number of predefined panel types to support various layout options such as tabbed layout, deck, and stacked layout.  If a Panel Layout type of hosted control is not defined in the application, the default panel layout, Standard Main Panel, is created automatically.

When you have created these three components and associated them to your USD Configuration, you should have a view akin to the following.


Best Practices: If I am implementing a custom USD configuration, whether it’s one configuration or many, I will always prepend all related components with a little descriptor (think CRM Publisher) so that I know what belongs to what when I’m associating components.


Getting Started with the USD

If you have not used the USD in Dynamics365 then you’re missing out.

If you’re stuck on how to get started the process is relatively simple and primarily involves downloading the framework and deploying it to your tenant.

To start, download the require components – you will need the framework geared to your OS as well as the Package Deployer- which are all available here –

If you try to open the USD without running the Package Deployer, you’ll receive the following error.


When you execute the Package Deployer, it will ask you where you want to deploy the USD’s solution files to.


Next you’ll need to selection which package you want to import.  For now – go with the “New Environment” package.


Once selected, you’ll wait for the solutions to be installed.


Followed by all the post execution tasks to be executed.Dynamics6

Now if you go back and click the USD icon on your desktop, you’ll get this wonderfully empty canvas from which you can start implementing your solution.


For now though, you are ready to go.