I was recently asked a question regarding Unified Service Desk for Microsoft Dynamics CRM, the question was about how to correctly set the “To” field on a phone call. (Keeping in mind that the “To” field is an activity party field.)

As always, I do try to create blog posts when asked questions, assuming others may have the same question.

In putting this post together, I realised I could actually think of two viable approaches, both of which have pros/cons. The first I will describe here. This uses the NEW_CRM_Page action. An approach which is “simple”.  It opens a phonecall page, allowing the user to populate data such as subject before saving. The downside of this approach is there are some limitations on setting fields on the phonecall.

A more complicated approach would be to use the CreateEntity action from the global container and then have a second action to open the phone call. I will create a post (soon) which describes this alternative approach. But for now let’s look at the New_CRM_Page approach.

In this example I will show how to create a phonecall for a contact but you could adapt this to add a phone call to an account, case etc. You can see below I have already opened a contact session and that in my agent script I have created an answer “Create Phonecall”. I am going to assume you already know how to do these things but if not please refer to the other posts on my blog. Microsoft also provide a very useful web site you might want to look at! J

Having created your agent script you will need to create an action that will be linked to the script.

Tip: You could also use this same approach if calling the action from toolbar. Or if you always wanted a phonecall you could add the action to the BrowserDocumentComplete events on the contact.

My action is below;

Note: I have left the “help” portion on the screen shot as it is significant. See how it describes that the parameters consist of name=value pairs. I believe this is suggesting that you can only define the lookup fields. Meaning you can set the “To” or “Regaarding” fields but you can’t set subject, direction and such like. Also, in my approach you are limited to one activity party. If you need more flexibility the alternative approach I mentioned in my introduction might be a better option.

Tip: Notice that the help mentions the window navigation rule. I have found this to be a significant comment, so more on that in a second.

The hosted control is “phonecall”, this is simply the CRM Page I have used to hold my phonecall. The action is “NEW_CRM_Page”. Then the most important section is the data portion, in which you will need to link the phone call to the contact. This will involve setting the phone call to be regarding the contact and to set the “To” (activity party) to also be the contact.


Now let’s look at the window navigation rule I mentioned. If when you test your configurations, you find the phonecall tab displays but it is blank your problem will almost certainly be related to Window Navigation Rules. I have found them to be very “particular” when it comes to the NEW_CRM_Page action! If you suffer this type of problem look in the debugger to see which navigation rule is being triggered. Typically if you get a blank screen you will find a rule isn’t being triggered and you need to create one.

The rule I created looked like this;

  • My order is 5003, simply because I want other rules on phonecalls to be evaluated first. (Any number will do really!)
  • My from is “Phonecall”, You might have expected the from to have been “Contact”! Trust me, in this circumstance you want “Phonecall”.
  • The entity is as expected, pheoncall.
  • Route type is Popup as this rule kicks in when a new phonecall “pops up”. The action you want is “Route Window”.
  • The destintation is Tab, then the target tab and show trab are the same thing “Phonecall”.
  • I have opted to hide the navigation bar, this is an optional configuration.

One final tip: Another issue can be that you can’t add a phone call to a new contact until the contact has been saved. To help prevent this happening you might want to add a condition to your agent script answer. Something like “[[contact.Id]]”!=”” should do the trick!

Hopefully this post has been useful. J

Filed under: USD - Configuration Tagged: CRM, crm2015, crm2016, Microsoft Dynamics CRM, Unified Service Desk, USD