Capacity planning for Dynamics 365
By Emil Björk · Microsoft business apps consultant, Gothenburg
How to plan and monitor capacity in a Dynamics 365 tenant — Dataverse storage, API calls, AI Builder credits, environments, and the cost levers that matter.
On this page (9)
Capacity planning is the unglamorous side of Dynamics 365 operations. Done well, it prevents the surprise emails ("you've exceeded your storage allowance and Microsoft will start billing overages next month") that nobody wants. Done badly, it forces emergency licence purchases at the worst possible time. Three resources dominate: Dataverse storage, API call volume, and AI Builder credits.
Dataverse storage
The most-watched capacity metric. Dataverse storage is split into three tiers:
- Database — the relational store. Most expensive. Holds the transactional data and indexes. Allocated per tenant based on licences; per-user Dynamics 365 SKUs add a small amount each.
- File — attachments, images, file columns. Cheaper. SharePoint document storage (for documents on records) is separate and not counted here.
- Log — audit logs, plug-in trace logs, change history. Cheapest.
Watching consumption
The Power Platform admin centre shows usage per environment over time. Trending matters more than current value — what's growing at 50 GB/month and what's stable? Common growth drivers:
- Email tracking (each tracked email is a Dataverse record with full content).
- Plug-in trace logs (enable verbose tracing temporarily for debug, forget to disable, grow rapidly).
- Audit history on high-volume tables.
- Notes and attachments stored in Dataverse rather than SharePoint.
Lowering Dataverse consumption.
- Move documents to SharePoint for record attachments. SharePoint storage is generous in M365 licences; Dataverse File storage is not.
- Bulk-delete old audit history beyond the retention requirement.
- Disable plug-in trace logging in production except when debugging.
- Archive old data to OneLake via Synapse Link, then bulk-delete from Dataverse.
API call capacity
Dataverse, Business Central, and Finance/SCM all have per-tenant API call limits, generally generous but real. Power Automate flows, integrations, and custom apps all count toward the limit. Heavy integration tenants can hit it.
Watching API consumption
The admin centre shows API request volumes per user and per environment. The most common surprise: a Power Automate flow that started running 1,000× per hour because of a misconfigured trigger.
Lowering API consumption.
- Filter at the trigger so flows only fire on relevant changes.
- Batch operations rather than calling per row.
- Cache read-heavy lookups instead of fetching every time.
- Use webhooks or Service Bus integration instead of polling.
AI Builder credits
AI Builder runs on a credit model — each invocation consumes credits. Tenants get an allocation per licence and per add-on. Credit consumption grows with document automation, prediction models, and AI-powered actions. Monitor monthly; budget against expected automation volume.
Environments as a capacity unit
Each environment counts against tenant resources. Sandboxes are mostly free up to a cap; production environments cost. Both capacity and environments are managed from the same place covered in tenant administration for Dynamics 365 — worth reading alongside this if capacity ownership within the org isn't already clear.
Forecasting growth
Project capacity 12–24 months ahead:
- New users → more storage and more API calls.
- New integrations → more API calls.
- New features → more storage and Power Automate runs.
- Acquisition or organic growth → step-changes in volume.
The annual review
Once a year, look at capacity vs licence allocation, project the next 12 months, and either buy capacity add-ons proactively or implement reduction work (archive, delete, deprecate). Don't wait for the over-limit alert.
Common patterns.
- First-year over-provision by buying generous storage add-ons "just in case" — usually unnecessary.
- Third-year crisis when audit history and email tracking have eaten through the original allocation — proactive cleanup avoids.
- Sudden integration overrun when a poorly-designed flow burns API quota — daily monitoring catches early.
Operational reality
Capacity planning is 30 minutes a month of admin review and 4 hours a year of forecasting. Worth it.
Related guides
- Backup strategy for Dynamics 365What Microsoft backs up automatically vs what customers need to plan for — Dataverse, F&O, third-party backup tools.
- Steering committee design for Dynamics 365 programsHow to structure and run a Dynamics 365 steering committee — composition, cadence, agenda, decision rights, and the discipline that keeps programs aligned.
- Run book operations after Dynamics 365 go-liveHow to run Dynamics 365 in steady-state — daily, weekly, monthly, and release-wave operations, with the run book that captures who does what when.
- Data classification for Dynamics 365How to classify data in Dynamics 365 to drive security, retention, and compliance decisions — classification tiers, where to record them.
- Data residency and compliance in Dynamics 365Where Dynamics 365 data lives, how compliance certifications stack up, GDPR and country-specific rules, and the customer's responsibilities.
Browse every guide in Implementation or just Operations & support.
Was this helpful?
Signals which guides land and which need work. No account, no comment box — corrections go through the contact page.
Spot something wrong or want a topic covered? Send a correction or a topic request — both are welcome.