USD: How to get records of the same type on different tabs?

My apologies in advance because I can’t show detailed screenshots; I work at a financial institution, so you get the drift. I’ll try to be as clear as possible, though.

In our implementation, we need to show different Account records (this is a custom entity, not the CRM default) in separate independent tabs when selected from the Contact form sub-grid. The problem here is that the default CRM behavior is to put all the records in the same tab and then provide a dropdown that allows you to select which record you want to view.

No bueno. So how do you get CRM to show each record in its own tab within the current session?

You need to create as many Hosted Controls for the entity as you might need to show individually. In our case, we’ve determined that users have around three tabs open on average, so we went ahead and created five Hosted Controls for our Account entity. It’s very important that they have distinct names, so they were named “Account 1”, “Account 2”, etc.

Easy enough, we’re halfway there. Here comes the mildly tricky part. You need to create as many Window Navigation Rules as you have Hosted Controls. So that means in our case, five WNRs. Here are the details on what to put in the fields:

  • General
    • Name: Make sure you use a sequence here that matches the HCs description for clarity’s sake.
    • Order: This is crucial. This determines how the USD will go through an elimination process to determine where to pop-up your page.
  • Route Logic
    • From: The entity from where you’ll be showing these records. In our case, Contact.
    • Entity: The Entity Type you will be displaying.
  • Result
    • Route Type: In Place
    • Destination: Tab
    • Action: Route Window
    • Target Tab: The name of the corresponding hosted control. So if this is “WNR MyEntity 1”, the HC would probably be “MyEntity 1”. Something along those lines.
    • Show Tab: Same deal as above, if you want the USD to switch to that tab automatically.
    • Options: Set these two as you prefer.
  • Advanced
    • Condition: This is the cool part. You will type in this:
      • "[[HostedControlName.url]+]" == ""
        • Make sure you include the double quotes as shown.
        • Replace HostedControlName with the name of the HC you will be pointing at, which is the same as the Target Tab above.
        • You will not place the condition in the last WNR. Leave it blank.

How does this work? The USD will check the condition for presenting the record based on the first WNR rule set for the entity. It will check for the URL of the related hosted control. If it finds that it’s blank, it’ll fire this navigation rule and be done.

However, if the URL is not blank, it’ll skip this rule and move on to the next one, which, referencing a different hosted control, will be forced to be displayed in a new tab!

In our internal testing it works flawlessly. No hitches, no performance issues.

But hey, you ask. What happens when we hit the last rule? Then we go back to the normal USD behavior with the dropdown for all subsequent form calls.

That’s it! A million thanks to our Microsoft PFE and CRM guru Daren Turner for providing this solution.

Have fun!

Tagged , , , , , ,

6 thoughts on “USD: How to get records of the same type on different tabs?

  1. Atul says:


    Thanks for sharing the information related to USD, as everyone is new to USD. We haven’t got much more information about it.

    I would like to get some more information related to USD , as I’m also currently working with USD. I had created one of my WPF hosted control to provide custom search to user. (same as CCA search). Here i’m facing one major issue. When i’m trying to open searched record from hosted control grid the new session will get opened but not the record.

    If you have any such scenario could you please help me here.

    I highly appreciate your help.



    • josekercado says:

      Thank you for visiting my blog! How are you setting up the window navigation rule for this?


      • Atul says:


        Thank you for your quick response.

        I’m created the window navigation rule as it is maintained in walkthrough.

        Name : CTITestRoute
        Order : 50
        From : CTITest
        Direction : Both

        Decision : Single Match, select Create Session, Load Match then Do Action.

        Also, the CTI Search is as it is-
        Name : CTIContactSearch
        Order : 1
        FetchXML :

        Could you please let me know where i’m heading to the wrong direction.

        You time and help are highly appreciated.



  2. Reblogged this on Sreeni Pavalla and commented:
    Good Article on handling Same kind of records


  3. Hi josekercado,

    Its really nice to have such great blog on USD. Thanks for sharing the information related to USD, as everyone is new to USD. We haven’t got much more information about it.

    I also have a similar requirement as you mentioned in your blog but my requirement is little tricky.

    I have ‘N’ number of links on my CRM Contact form, my requirement is to open all these links on different tabs in USD.

    I also tried to use your ‘Cool Part’ 🙂 “[[HostedControlName.url]+]” == “” but unfortunately i couldn’t get success, all links are opening in same tab.

    Please let me know if you have any better suggestion for the same. Waiting of your response

    Thanks in advance


  4. […] In our Unified Service Desk implementation (by the way, we’re live and everyone’s happy–YAY!), we are using a particular technique for showing the same entity type on multiple tabs. The nitty-gritty on how to do that is in this article I wrote a while ago. […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: