Together with a lot of other Dynamics 365 / Power Platform professionals, I was very surprised with the announcement of Microsoft about API limits. Now that the dust has settled and the documentation has cleared some first questions, we’re able to review the decision.
My first thought about the API limits were: there goes one of our unique selling points against Salesforce. But the more I think of it and the more I talk to Microsoft product managers about it, it starts to make sense. Both from a technical point of view and strategy wise.
What is an API call?
First, let’s dive a little bit into the changes made lately. You can’t have missed the huge strategy change within the Dynamics 365 (CE) landscape lately. It simply comes down to this. The PowerPlatform – as a platform to create business applications on – becomes the base of it all. The Sales and Customer Service functionality (formally known as Dynamics CRM) are applications developed by Microsoft on top of that PowerPlatform.
At the heart of the PowerPlatform is the Common Data Service. A database where both your business data and your application business logic (metadata) is stored. The amount of usage of the Common Data Service defines the resources needed. Every time that a user or an application requests data from the Common Data Service or pushes data towards it counts as an API call.
Do I need to worry about the limits?
No, I don’t think so. If you assign an appropriate license to the user. The API limits that come with the licenses are based on normal usage. Are you a heavy user? I still don’t think that should be an issue.
So I don’t need to do anything?
Why tell me why
Let’s face it: all of us had experienced performance issues with environments in the past. When a ticket is logged with Support, it often has to do with another customer having extreme data loads, pushing the underlying servers to the max. When this happens, it comes down to performance degradations of other environments running on the same server.
Microsoft has been searching for a way to manage these problems, but the only way they can manage is if they know what’s coming. At this moment, there is no reason why a customer would tell Microsoft it’s going to do a large data load or anything else that takes a lot of resources.
By limiting the API usage and letting customers buy API call packages, Microsoft pushes consultants and developers to think about the usage of resources and providing Microsoft the information it needs to allocate enough resources.
So everything is fine?
From a technical point of view: yes. From a commercial point of view: absolutely not!
Not having API limits was one of the unique selling points against Salesforce. For companies using a lot of data processing or having a lot of integrations, the choice between Microsoft and Salesforce is now less self-evident. Next, the price for extra API calls seems pretty high to me.
At this point, the limits are user based. This means individual users getting punished for using the application. That doesn’t make sense. The reason for Microsoft is environment-wide and should not be applicable to customers, but to the whole environment.
Please, Microsoft, make the API limits an environmental limit and not a user-based limit!