A few days ago I wrote a post about displaying the Interactive Service Hub dashboards in Unified Service Desk (USD) for Microsoft Dynamics CRM 2016, in this post I will expand on that logic to look at how you can create sessions and open tabs using the Interactive Service Hub forms.
If you haven’t yet displayed your tier 1, 2 or custom dashboard in USD please refer to my earlier post here.
If you are familiar with hosted controls and navigation rules for standard CRM forms you will find that, not unsurprisingly, the approach required for Interactive Service Hub entities is pretty similar. With a few minor differences that I will explain along that way.
Having displayed the dashboard opening cases or other entities will all operate from the one tab, as that is the default behaviour with the Interactive Service Hub. But what if you want to open a session when an entity is selected from the Interactive Service Hub? Below I give an example on how to achieve this;
- Create a hosted control.
- Create a window navigation rule to start a session.
Note:
This example is designed to work with Unified Service Desk 2.1 (or later) and CRM 2016 Update 1 or later. If you are working with earlier versions they will need to be upgraded before this approach will work.
Step One – Create a hosted control.
In this example I will show how to open a casesession when an account is selected from interactive service hub dashboard. First of all, you will need a hosted control.
Field | Name |
Name | ISH Case |
Display Name | Case([[ISH Case.title]]) |
USD Component Type | Interactive Service Hub Page |
Application is Global | Not selected |
Display Group | MainPanel |
Application is Dynamic | Yes |
User Can Close | Not selected
As I to close the case I would rather the user close the session. So I didn’t want an “x” on my cased tab. |
Step Two – Create a window navigation rule to start a session.
Now you have a hosted control to hold the case entity you will need a window navigation rule to create a session.
The most important difference here is the route type! With “normal” CRM forms we always open sessions from popup routes. But if you think about how the interactive service hub behaves, outside of USD, you may appreciate that this won’t work. As all of the pages in the Interactive Service Hub open in the current window no popups are used, meaning all pages use the “in place” route.
Field | Name |
Name | Case from ISH Dashboard
As mentioned I had opened the dashboard in a hosted control, the approach to doing this was described in an earlier post |
Order | 1
Tip: 1 worked fine for me! You might need a different order to fit in with your existing rules. |
From | ISH Dashboard |
Entity | Incident |
Route Type | In Place
Note: You will find all route types for ISH will be in place! |
Destination | Tab |
Action | Create Session |
Target Tab | ISH Case |
Show Tab | ISH Case |
Hide Navigation Bar | Yes |
Opening tabs in the session
Now you have a session opened you will wish to open other entities in tabs for that session. For each entity you wish to open in a tab you will need to follow the steps below;
- Create a hosted control.
- Create a window navigation rule to open a tab.
Tip: Here I am giving an explanation of how to open an account from a session. You would need to add addition controls / navigation rules for all the entities you’d like to work with. As the number of entities used in the Interactive Service Hub is limited that shouldn’t be that hard!
Step One – Create a hosted control.
Before you can show any entity in a tab you will need a hosted control to contain it. In this example I will show how to open a contact in a tab. For this my hosted control looked like this;
Field | Name |
Name | ISH Contact |
Display Name | Contact([[ISH Contact.lastname]])
“Interestingly” [[ISH Conact.fullname]] didn’t’ work for me here as that wasn’t’ available in my data parameters! |
USD Component Type | Interactive Service Hub Page |
Application is global | Not selected |
Display Group | MainPanel |
Application is Dynamic | Yes |
User Can Close | Selected
Selected as I wanted to allow users to close this tab. |
Step Two – Create a window navigation rule to open a tab.
As you might expect you will next need a window navigation rule to show the contact in a tab. Mine looked like this;
Field | Name |
Name | ISH Contact from ISH Case |
Order | 1 |
From | ISH Case
Depending on your application you may be able to leave the from field blank! I didn’t as I needed to avoid clashing with multiple other navigation rules I already had. NOTE: I had a rule to open a contact entity in a CRM Page hosted control already. Without this “from” setting that rule would have been triggered and I would have loaded an Interactive Service Hub Page in a CRM Page hosted control. Which can give some unpredictable results! |
Entity | contact |
Route Type | In Place
Note: You will find all route types for the interactive service hub will be in place! |
Destination | Tab |
Action | Route Window |
Target Tab | ISH Contact |
Show Tab | ISH Contact |
Hide Navigation Bar | Yes |
Below you can see how my screen looked. Notice I have three tabs and one session. You can see the tab my interactive dashboard was loaded in, my case tab and then the contact tab which has been opened from the case.
Tip: Once you have your customizations working this far you will wish to add additional entities as required. You may also wish to create some navigation toolbars. With traditional tabs I have often created a toolbar with browser style back and forward buttons. No forward capability exists on Interactive Service Hub pages! And the Go back action has been tailored to mirror the back arrow on an interactive service hub page. (Which is slightly different to pressing the back button in the browser.) But as that arrow is always on the page you may not need a back button in a toolbar anyway!
Hopefully this post, combined with my earlier post in the interactive service hub dashboards will have given you enough information to attempt building your own USD interface making use of the Interactive Service Hub. J
Leave a comment