It is common to want to use cases within Unified Service Desk (USD), in this post I will explain how to create a toolbar to support creating and viewing cases from an account or contact.

I am assuming a reasonable knowledge of Unified Service Desk in this post. Sorry! If you need any additional input on any of the steps described please refer to my numerous other posts on learning USD. J

I am also assuming that you already have the logic in place to create a session on account or contact. And that you have a navigation toolbar in that session. Again refer to my previous posts it you need to put those steps in place first.

I am going to write this post from the point of view of cases for contacts. But I hope you will be able to see how to adapt for accounts, should you also require that.

The end result I am looking for is to have a cases button “menu” on contact (and account) that will allow me to view the associated cases for the contact and when needed create a fresh one. In my screen shot you can see that my USD has multiple other buttons. You can ignore these for now! We are just looking at the spanner today!

The steps involved are pretty generic to most Unified Service Desk configurations;

  1. Create some hosted controls. — These are the “containers” you’ll need for the view of associated cases and the any new cases.
  2. Create some actions. — These are the actions to view associated cases and create a new case.
  3. Create some toolbar buttons. — You’ll need a toolbar button to trigger the view and create of cases.
  4. Create some window navigation rules. — These govern how the case tabs open.

STEP ONE – Create some hosted controls.

You’re going to need (if you haven’t already got) two hosted controls.

HOSTED CONTROL ONE – Associated Cases

This hosted control will hold the associated view of cases. It can be “re-used” for both accounts and contacts. If you are implementing this logic on both.

Notice that;

  • The USD Component type is “CRM Page”.
  • Display name is simply “Cases”.
  • Allow multiple pages is No.
  • Application is global is NOT selected. (As this tab will sit with the contact session.)
  • Display group is “LeftPanelFill”, you could also use “MainPanel” or “RightPanel”. These options govern the position of the associated view in your application.


You could call your hosted control “Case” if you prefer. Don’t you just hate how inconsistent the naming of cases / incident is!!

Things to note here include;

  • Display name, I won’t cover the detail here. As my example below shows calling a scriptlet to resolve the display name. A simpler option might be to just set display name to “Case”. The scriptlet approach however will show the case title for an existing case or “New Case” when creating a new one.
  • USD component type is “CRMPage”.
  • Allow multiple pages is set to No. You could actually also select Yes! Might be worth you experimenting with this option. Yes supports the user opening multiple cases at the same time. Whilst No will only ever show the last case opened. No gives a simpler interface, Yes might offer more flexibility.
  • Application is global is NOT selected. (As this tab will sit with the contact session.)
  • Display group is “MainPanel”.

STEP TWO – Create Some Actions.

You’ll need two actions, one to trigger create of a new case and one to allow viewing of existing cases.

ACTION ONE – Create new case

Things to note include;

  • Hosted control, this is incident. (Or case! Depending on how you names your hosted control in step one.)
  • Action, the action you want with this case is New CRM Page. As you want to create a new case!
  • Data, the data portion defines this details needed to create the case. You can see here that I reference “contact”, you could substitute alternative values if working with account. Not forgetting that accounts would be [[]] not [[contact.fullname]]

ACTION TWO – Associated Cases View

This next action is used to trigger the display of the associate cases. Things to note include;

  • Hosted control is “Associated Cases”, this is the hosted control you would have created in step one.
  • The action is “AssociatedView”. You can guess this triggers navigation to the associated view for an entity.
  • Data, this defines the type of view you want and related to what. Let’s break it down in a little more detail!
    • navItemName, this is set to incident, as it is cases we want to view.
    • ID, this is the ID for the entity we are calling the associated view from. In our example contact so [[contact.Id]+]
    • Tabset, this is the area within CRM for this view. Cases are from service so “areaService”.
    • type=1

Understanding the detail of how the data portion working in associated views might be possible. In this post I describe how to find the correct values for tabset and ID.


STEP THREE – Create some toolbar buttons.

As I said in my opening, I am going to assume you know how toolbars work. And that you’ve already got a navigation toolbar on contact.

First of all I created a toolbar button called “cases”.

Tip, I found the spanner ICON is the CRM SDK and loaded it as a web resource. If you search the SDK for “ico_16_112” you will find this image.

If you don’t want to use the spanner icon, instead of setting the image. Simply set button text to “Cases”.

Having saved my button I used the ribbon navigation to add toolbar buttons. As I wanted “New Case” and “View Cases” to be a menu below my spanner icon.

I used the toolbar buttons option to add two buttons are shown below;

My view cases button looked like the one below. You can see that I have added the action we just created to view the associated cases.

My new cases button looked like the one below. You can see that I have added the action we just created to create a new case.

STEP FOUR – Create some Window Navigation Rules

Actually at this point your solution is probably already working, maybe try it now.

What you might find however is that when you click on cases they don’t open in a fresh tab, assuming your tabs aren’t opening in suitable locations you are going to need to add some windows navigation rules.

SO, having tested your application you may wish to create one or more navigation rules similar to the one below.

Tip / Note: I have found that the behaviour different people like based on the navigation rules is sometimes a personal preference. I am simply showing an example approach here. You may wish to tweak to fit with the navigation you have created in your own application.

You can see that this rule is called when the incident entity is opened from the associated cases tab.

The route type is “Popup” and action is “Route Window”, this has the effect of opening a fresh tab within the current session.

I’ve set the hide navigation toolbar to “Yes”. This is personal preference but I like to restrict navigation as much as possible as (in my opinion) this creates a cleaner interface for the user.

Here I have a condition that detects if the current context is a contact. You may need this if you wish to have varying behaviour for your account or contact session. I’d be tempted to first try this rule without the condition.