I was recently asked how you could use CRM announcements within Unified Service Desk (USD), well to be honest I am still “playing” with the best location to show announcements but I do think the concept of being able to broadcast announcements to call handlers directly within USD has some merit.

So here I describe the basics of showing announcements in USD. The following steps are involved;

  1. Create some announcements!
  2. Create a webresource to display announcements
  3. Create a hosted control to show the announcements
  4. Create an action to navigate to the announcements web resource
  5. Trigger the navigate action when USD desktop loads

STEP ONE – Create some announcements

You can find the announcements in the administration area of settings within CRM. Simply create yourself a couple of announcements as test data. Just so you know your web resource is going to work! You can define some better ones later. My first test announcement looked like the one below.

STEP TWO – Create a webresource to display announcements

Using notepad (or any editor) create a file called “Annoucements.htm” and include the following html.

Whilst researching this capability I found some simpler looking html but that didn’t work with my CRM2015 on-premise solution. But the following html worked. I will test it later on an on-line solution but I believe this will work in all situationshtml Ann

Once you have this file you’ll need to use customizations in your CRM settings to load the htm file as a web resource. Not forgetting to publish! See example below;

At this point, make a note of the URL that is created. You’ll need it later!

TIP:
At this point you could include the web resource in a standard CRM Dashboard. Just to prove it is working before moving to the next stage.

STEP THREE – Create a hosted control to show the announcements

Nothing complicated here, just create a hosted control. Notice that the USD component type is “CRMPage” , it isn’t global and I have decided to display in the “RightPanel”. You could use any panel!

Note: When I tested my app I found that sometimes clicking on links within an announcement gave me errors. If you experience this try changing the hosting type from wpf to IE as that solved it for me.

STEP FOUR – Create an action to navigate to the announcements web resource

Next I created a simple action to navigate to the web resource I’d created. Again pretty simple stuff.

My action on my hosted control for announcements, which I just created contains the url I noted uploaded my web resource. (Minus my server / organisation)

STEP FIVE – Trigger the navigate action when USD desktop loads

Finally you’ll need to decide when to trigger the action. I decided to load the announcements when USD loads. So I added the action to the “DeskTopReady” event of my global container.

My announcements tab looks like this. I’ll need to add some polish like adding a navigation toolbar. And I might decide to refresh the content periodically. (Maybe each time I close a session or something.) But hopefully this post has given you enough information to implement your own announcement functionality in USD.

10 responses to “USD – Announcements”

  1. Another way could be to put the “schema name” of the Announcement entity in “data field” in the above action call.

    Like

  2. Hi sir, can we do something in USD either functionally or technically wherein if a user make some changes in dynamics CRM then it will resultant a pop-up in USD, I myself have a blur idea, so can’t explain much ? Any comment ?

    Like

    1. You can use the “RUNXRM” action to trigger an alert. (Popup)

      Having the data portion of an RUNXRM to “alert(“Hello World”);” would give a up pop-up showing Hello World. You could create actions in USD to do this, maybe with some conditions to decide when it should be triggered. (You could for example, trigger an action after a contact record has loaded that puts up a pop-up if we are missing a phone number, or the contact is dead etc etc.)

      USD – RunXrmCommand

      Although alternatively (and maybe better) would be to add notifications / alerts into your CRM forms.

      In the past I have favoured keeping this type of logic in my CRM forms. As I like to try to keep the business logic in my CRM forms and the user interface stuff within USD. As that way the CRM entities can still be used outside of USD with similar functionality. However I admit that this conceptual split of user interface and business logic hasn’t always been achievable!

      Liked by 1 person

  3. Hey, Neil! First, I’m extremely pleased with everything on the site. Absolutely amazing work..

    I implemented the concept of loading announcements and a calendar upon DesktopReady. A user needs to authenticate with CRM when USD loads those two pages and the dashboard. This causes an ugly start screen with three pages asking for credentials.

    Instead of DesktopReady is there some way to run an action after a user is authenticated? I’ve dug into this for awhile and cannot find a solution.

    Thank you!

    Like

    1. Hi Roger

      Thanks, I am glad you like my blog.

      Firstly, I guess you are using CRM Online. As I don’t think the problem you describe happens with On-Premise.

      I do agree with you that this can be an ugly start. To be honest I have always just accepted this. (Maybe wrongly!)

      If you do get multiple pages asking for credentials then you only have to enter them once. As a refresh on the other pages will get them to start to function.

      I haven’t tried this and I only have a part answer. But I have just done some tests. If you load the debugger before you login and look at the events I think there might be a clue to a possible workaround.

      On the PageLoadComplete events, initially you will see the url as “http://login,microsoft.com etc”. This changes to you the correct url for your crm instance once the login is complete.

      So we’d need to look for something creative to refresh the other pages from this event. (Or maybe not load them until this happens.)

      At this point this is only a theory and it would need some thought as we’d only want this behaviour linked to initial load and not every time the “main” tab is reloaded.

      This behaviour also highlights an issue I’ve seen before. As when USD loads we enter credentials. These must have been correct to load the USD configuration. But then IE is prompting for credentials again. Currently you can actually log into IE with different credentials to those used to load USD. Not ideal!

      I am prepared to dig a little deeper on this as I agree with you that initial load can become ugly.

      BUT …. I suspect a new version of USD is very close! So my first suggestion should be to re-test this issue with that version.

      If you are still getting an issue with the new version let me know and I will see if I can resolve.

      Neil.

      Like

      1. Thanks for your reply! That’s almost exactly what myself and a co-worker discussed as a work around.

        I do agree completely with your thoughts on entering credentials for USD and then again for CRM. 🙂

        I’ll keep cracking at it. Currently I decided to create an elegant ‘Company Welcome Page’ web resource to load on ready with options for dashboards, etc… Also, I figured that would also be a good spot for announcements.

        Thanks again for your reply! Excited for a new version!

        Like

  4. Hi Neil,

    I have a webresource in my Account form and I am displaying Account record in USD but webresource is not working in USD because I am displaying Bing Map to search address but button click is not working to search.

    Kindly help me on this.

    Thanks,
    Chetan

    Like

    1. Hi Chetan

      I am guessing that when you click (outside of USD) the bing map opens in a new tab / window.

      If so, this post might give you some pointers.

      Bing Maps

      Thanks Neil

      Like

Leave a comment

Trending

Website Powered by WordPress.com.