Mapping Hosted Applications to Agent Groups in UII

One of the fundamental features that we had in Customer Care Framework dealt with how we grouped hosted application, workflows and such using groups and roles via AzMan.  When CCF was re-platformed to CRM, the CCF administration console and the use of AzMan was discontinued.  However we didn’t do away with that feature set at all, but rather leveraged a feature set in Dynamics CRM to replace it. The feature set we used, is CRM “Teams”.

There have been a number of questions recently on the Customer Care Accelerator discussion boards concerning how to use this feature set in UII, and I promised a blog post… So here we go. 

First off, lets lay out the problem we are trying to solve.


Any given UII Desktop is made up of numerous hosted applications that are focused on either providing UI elements, acting as adapters for applications, or providing off screen services ( CTI for example ).  Each of these hosted applications can appear in several situations,  either on the global session or are loading via an instanced session. 

Take this image for example, this is the CCA Desktop:


In this desktop, there are 7 controls in the visible space and 3 controls in the hidden space.

Let me enumerate them for you:


Here is the list of hosted applications that make up this UI, drawn directly from UII Settings in CRM. You will see where “display” maps to the area on the graphic.

Ok, Now Here is a different desktop, the ICC Desktop, coming from the same instance of CRM:


And here are a few of the hosted applications that support it:  *not a complete list*


Now… once again, These Desktops are Running on the Same Instance of CRM at the SAME TIME. 

**Note: In this example, the difference is pretty drastic in that they are 2 completely different desktops sharing the same CRM instance.  This is more commonly applied when between Agent Roles where one role would be Tier 1, and a different role would be Tier 2.. using the same base desktop with a difference in some of the hosted controls or workflows that are split up or shared by Team.

In Dynamics CRM, any user with the “System Administrator” role assigned can see ALL hosted applications, uii workflows and such from UII,  which means in essence, a System Admin Bypasses all Role or Control based filtering.  Therefore.. it is VERY IMPORTANT that you test role based customizations as a USER of Dynamics and not the System Admin.  In the case of this example,  were I to run either desktop as a System Admin, UII would try to load ALL the components from Both Desktops. Which creates a “bad” experience.

This is how this is configured:

First you need to establish what are “shared” Hosted Applications, and what are role specific Hosted Applications.

In this case,

  • The “ICC Desktop” is a Ribbon Desktop with 28 “hosted applications”, which make up the ribbon and the visual elements of the ICC desktop.
  • The “CCA Desktop” is the desktop as it exists from the download site, with an additional 1 HAT based web application which add up for a total of 7 “hosted applications”.
  • Both use the TAPI simulator code which is made up 2 “hosted applications”

Now you need to create the Teams that support these three groups of hosted applications.

For my post, I will call them;

  • ICC Desktop
  • CCA Desktop

Next I need to create them in CRM.

Creating Teams in CRM 4.0 for UII

You will need to have admin privileges in CRM that will allow you to setup teams.

Open CRM in IE and go to the settings area.


Choose Administration from the settings details


Choose Teams from the Administration area


Then click the “new” button


Add the details for the new Team


Click Save and New.


Now I repeat that 2 more times for the CCA Desktop and TAPI CTI teams

Mapping Hosted Applications , or any UII elements to a Team

Now I need to map these hosted applications to the Teams that I want to group them too.

To do that…

Go to UII Settings in the Settings area


Choose Hosted Applications


Now Select the Hosted Applications you want to Group,  For simplicity sake, I will do the TAPI CTI group first.


With those items selected go to More Actions and Sharing


Then select Add User/Team


On the lookup dialog, Choose Teams , then either the Search button Type the Team Name in. Then Select the team and Click “ok”


That results with the TAPI CTI group appearing in our sharing window,  here we will choose Read and Append,  Append to allow for the Audit logging system to work properly.


Click Ok,

Now I repeat for those controls that are part of ICC Desktop and CCA Desktop.

Assigning Users to Teams

The Next thing to do here is assign users to the teams… this is the last step in the process and closes the loop we started by defining and grouping teams.  I'm going to select Brian Cox and make him a ICC Desktop user, and William Ngo to be a CCA desktop user. Both will use TAPI CTI for CTI.

So I'm going to show this done with just 2 different users.. though it could be any number of users.

Click on Administration on the Settings area


Choose Teams from the Administration area


Open the TAPI CTI Team and choose “Members” from the details area.


Then choose Add Members from the Menu


That pops up our Standard CRM lookup Dialog,  In my case I found and added both Brian Cox and William Ngo to my List and clicked “OK”, the result of which is here:


I now repeat that for the ICC Desktop Team and the CCA Desktop Team, adding Brian and William respectively to those teams.

The end result looks like this:



Now when Brian logs in and starts the ICC desktop, all the ICC desktop bits will appear and CTI will be connected to the TAPI CTI demo bits.   When William Starts the CCA desktop; all of the relevant bits will appear in the CCA desktop and CTI will be connected to the TAPI CTI demo bits.

As I said above, while I’m applying this to 2 different desktops connected to the same CRM env, you can also do exactly the same thing with Hosted controls with the same desktop, say a team for frontline customer support, and a team for billing support, where the team provides access to hosted controls that are specific to the focus areas of the agent.

The important organizational thing to keep in mind is :
Users =>* Teams =>* HostedApps.

Now, as with CCF you CAN share directly with users in CRM and the same result,  however its not recommended that you do so as this will cause perf issues at scale and is really more problematic to managed by your admin team.

Comments (3)

  1. Nishant Rana says:

    Thanks Matt for your wonderful articles. They are helping me lot as i am learning CCA !

  2. Matt Fox says:

    Hi Matt,

    I have a custom plug-in we created that will dial phone call activities created from marketing campaigns. One of customers though, when I distribue the campaign activity with phone as channel, the activity never gets distributed. I.E. no phone calls created.

    I tried rebooting the asynchronous process that handles this… no luck. When I go to status the Bulk Process just reads "Waiting"…. do you have any idea why it would do this?

    I know this isn't troubleshooting board, but you seemed pretty knowledgeable after reading this article and thought I should reach out to you.



  3. Olward wilson says:

    A very informative article and lots of really honest and forthright comments made! This certainly got me thinking about this issue, thanks all.…/collaborative-cloud

Skip to main content