During the last few months I have been doing some work around Dynamics 365 (CRM) and dotmailer. This article focuses on the integration between both platforms and how the new Organization Insights has proven to be very useful to understand the behavior of the Dynamics API and how it is consumed by other applications.
Looking at the Organization Insights dashboard, we noticed there was a big number of API calls happening every day between 08:00 and 09:00 in the morning.
Looking at the Most Used API chart, the “Crm Field” entity was the most utilised. This entity is part of the dotmailer solution. Basically it allows you to define what Dynamics 365 (CRM) attributes could be used by a dotmailer communication for a particular Email Account.
After several conversations with the dotmailer and Microsoft engineers, we were able to confirm those API calls were coming from this particular integration. The figures should respond to this formula:
Total number of API calls from DotMailer to Dynamics 365 to synchronise CrmMetadata = [Number of Email Accounts] * [Number of CRM Fields per Email Account] * 6
The number 6 is the number of calls per Crm Field and Email Account:
- 2 API calls are made to connect to Dynamics
- 2 API calls are made to retrieve time stamps of when the data was last sync’d
- 1 API call to get all the CRMMetadata
- 1 API call to save changes to Dynamics
Looking at the dotmailer synchronisation settings, you can specify when this process starts and how frequently runs for a particular Email Account:
The CrmMetadata type is the one defining the synchronisation related to the Crm Field entity. Based on our current configuration, the process would run “Once a day” with “No Restriction (24 hours…)”.
Our first approach was to change this setting to a less busy time, when the application was rarely used by the business users or other integrations (e.g. 02:00 am). Unfortunately, there is a bug in the dotmailer integration which reverts the setting to 08:00 am after it runs the first time.
I have raised this bug with the dotmailer team in the following post:
I would appreciate if you vote it up 😉