46 Saturday, May 28, 2016 |
Msxrmtools Publisher
Publisher at Msxrmtools

Microsoft Dynamics CRM 2011: Customisation part 1

A look at the new drag & drop feature in Dynamics CRM 2011.

Administration Audit User Duplicate Detection (5 of 5): Dynamics CRM 2011

This video provides an overview of data retention capabilities, additional data types and dynamic hyperlinks are available so that administrators can tailor dialogs and workflows to meet specific business requirements. At Training Material Completion you will be able to:
• Recognize the concept of a Multiple Series chart, with visual examples, to compare similar data points (e.g., budget to actual)
• Create charts with multiple series
• Create charts with multiple categories
• Create area charts and stacked charts


CRM 2013 Quick Tip: Add new information quickly through shortcuts in Microsoft Dynamics CRM

Conditional Formatting in the Outlook CRM Client

Dynamics CRM 2011 - Optimize Customer Experience

Demonstration of how Microsoft Dynamics CRM 2011 can be used to optimize customer experience.

OneNote Integration in CRM Online 2015 Update 1

With Microsoft Dynamics CRM 2015 Update 1 you and your team can stay organized, even on the go, with OneNote notebooks associated to a CRM record. Find out how in this short video. For more information, visit http://www.microsoft.com/en-us/dynamics/crm-customer-center/default.aspx and http://go.microsoft.com/fwlink/?LinkId=394323

Invoice Management

Invoices are requests for payment from a business to its customers.

Microsoft Dynamics CRM Online 2015 Update 1 - CRM Online Administration New Features

Email Router Demystified in MS CRM Part -1

Troubleshooting Email Router Configuration Wizard issues

The first part of the Email Router to ensure you don’t run into any issues is around the Email Router Configuration Manager.  If you run into errors within the Email Router Configuration Manager, you will face these same errors when the Email Router is trying to process the email requests.  We need to ensure that the configuration is error free.

Load Data

The first step of ensuring the Email Router is configured properly is to click on Load Data.  When clicking on Load Data, it is going out to the Organization service and retrieving a list of CRM users that have their User Profile configured for E-mail Router for the Incoming/Outgoing E-mail Access Configuration.  If you run into an issue when clicking on Load Data, this indicates an issue accessing the CRM services, either the Discovery or Organization service endpoints.  To troubleshoot this issue, ensure you take the URL provided within the Deployment Profile and append it with the following: URL/XrmServices/2011/Discovery.svc?wsd

This should show an XML response like the following:

If you get any error accessing this URL, then you will need to troubleshoot those errors before the Load Data will ever work.  Since there are a vast number of problems that can come up when accessing this URL, we will not cover any of these. However, knowing that Load Data is directly related to the Deployment Profile should help you

Service Account

If you are able to access the Organization and Discovery services within Internet Explorer and not able to within Load Data, it could be an issue with the account running the Email Router service.  When clicking on Load Data, it is running under the context of the Email Router service account.  This account can be found within Services (Start > Administrative Tools > Services) with the name of Microsoft CRM Email Router.  By default, the account running the Email Router service is Local System.

NOTE: The service account needs to be a Microsoft Dynamics CRM user or it needs to be added to the PrivUserGroup for CRM OnPremise customers.

If you experience an error where the Email Router Configuration Manager is not able to Load Data, try changing the service account running the Microsoft CRM Email Router service to a domain user.  I have seen many situations where the Email Router is not able to connect to CRM due to proxy configuration.  Within these environments, the internet proxy configuration is pushed out to users and not applied to servers/workstations. 

If you still experience issues while clicking on Load Data after changing the service account to a domain user, then look at using a web debugger, called Fiddler, to try and give more information about what actual HTTP errors we are getting.  Again, when clicking on Load Data, we are trying to access a couple of HTTP endpoints from CRM.  In order for Fiddler to log the HTTP requests coming from the Load Data request, the Microsoft CRM Email Router service account must be the logged in user.  Fiddler will only capture HTTP requests of the user that opened the application.  We will cover using Fiddler in a later section but let’s view a situation where Fiddler can be used to help identify an issue with Load Data.



In this scenario, I can see that when clicking on Load Data I am getting a very generic response in my OnPremise environment with Claims and IFD enabled.  When using the Auth endpoint for the Deployment Profile, the error I get from Load Data shows:

However, using Fiddler, I can get a better understanding of where the failure is occurring:

The error shows that it’s coming from ADFS.  This could help me with troubleshooting as I now know to look at the ADFS logs and see what exception is being raised there.

Test Access

After we have successfully loaded the users from the Load Data button, the next step to ensure the Email Router will work properly is to click on a user and then click on Test Access.  So when we click on Test Access, what exactly is the Email Router doing?  There is a lot of speculation of what this is exactly doing so let’s demystify and document what it actually does.


  1. The first request being made is out to Exchange using EWS to do a GetFolder request for the default folder providing the user’s Mailbox email address and authenticating as the account within the Incoming Profile.  The response that comes back should be that of the Inbox.
  2. Now, as the account within the Deployment Profile, it logs into CRM and does a series of Organization service requests.  The first one is a WhoAmIRequest.  The WhoAmI response contains the user’s UserId, BusinessUnitId, and OrganizationId
  3. The next CRM request being made is CheckRouterCompatibility.  This is to verify that we are not using an older or newer version of the Email Router that is not supported by that version of Microsoft Dynamics CRM.
  4. Lastly, we do a CheckIncomingEmailRequest and checking if the result comes back with a ReasonCode of ShouldDeliver



  1. The first thing that happens is a WhoAmIRequest being made to the CRM server as the account specified in the Deployment Profile.  The WhoAmI response contains the user’s UserId, BusinessUnitId, and OrganizationId
  2. The next request being made is CheckRouterCompatibility.  This is to verify that we are not using an older or newer version of the Email Router that is not supported by that version of Microsoft Dynamics CRM.
  3. Lastly, it does one of the following:
    1. SMTP: The Email Router is doing a HELO request.  The router is looking for a ReplyCode of 220 within the response that comes back from the server.  We can emulate a similar request by using a Telnet as discussed HERE:

    2. EWS: The router is doing a GetFolder EWS request for the Default folder.  The response that comes back should be that of the Inbox.

As long as no error is presented during these requests, then you should see Succeeded responses within the Email Router Configuration Wizard.


The next part of this post is to cover Troubleshooting Outgoing email issues.

Microsoft Dynamics CRM Online 2015 Update 1 - Yammer Integration New Features

What are methods in IOrganizationService

  • Use the IOrganizationService.Create method to create an instance (record) of any entity that supports the Create message, including custom entities.
  • Use the IOrganizationService.Retrieve method to retrieve an instance (record) of an entity.
  • Use the IOrganizationService.RetrieveMultiple method to retrieve a collection records. The query can be specified using a query expression or Fetch XML query. If the query includes an aggregate function.
  • Use the IOrganizationService.Update method to update an existing record.
  • Use the IOrganizationService.Delete method to delete an existing record.
  • Use the IOrganizationService.Associate method to create a link between two records that participate in a relationship.
  • Use the IOrganizationService.Disassociate method to delete the link between two records.
  • Use the IOrganizationService.Execute method to execute a message. This includes common processing like create and delete of data records and metadata, or it can be specialized processing such as import or detect duplicates.