Microsoft Dynamics 365 Business Central and Anaplan integration
Microsoft Dynamics 365 Business Central runs finance, purchasing, and the general ledger. Anaplan runs the budgets, forecasts, and workforce plans built on top of those numbers. Connecting the two means the actuals, GL entries, cost center dimensions, and employee records in Business Central reach Anaplan planning models without anyone exporting spreadsheets by hand, and the approved plan figures come back out for variance review. Anaplan is a planning platform with no native invoice, vendor, or GL account object, so it receives finance data by import and returns plan data by export rather than through record-level updates. ml-connector runs both sides on a schedule you control and keeps the dimension members aligned.
What moves between them
The primary flow runs from Microsoft Dynamics 365 Business Central into Anaplan. ml-connector reads general ledger entries, GL account balances, dimension values such as cost centers and departments, and employee records from Business Central, formats them into the file each Anaplan import action expects, and runs that import so actuals and reference lists land in the planning model. The return flow runs from Anaplan back into Business Central: once a budget or forecast is approved, ml-connector runs the Anaplan export action, downloads the result file, and posts the approved figures into Business Central as journal lines against the matching GL accounts and dimensions. Reference data such as the chart of accounts and dimension members is aligned so each Anaplan list member resolves to a real Business Central account or dimension value. Cadence follows your planning calendar, typically a nightly or period close actuals load and an export when a plan is signed off.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Business Central side it requests an Entra ID OAuth2 client credentials token with the https://api.businesscentral.dynamics.com/.default scope and builds every URL from the tenant ID and the environment name held as a credential field, then refreshes the token before expiry. On the Anaplan side it requests a basic or certificate auth token, reuses it across the session, and refreshes it before the 35 minute lifetime ends rather than minting one per call, and it sends the workspace ID in lowercase hex and the model ID in uppercase hex because the wrong case returns a 404. Because Anaplan runs only actions a model builder already created, ml-connector discovers the import and export action IDs at runtime from the list endpoints rather than assuming them. Both sides are poll based: Business Central is read incrementally with a lastModifiedDateTime filter and the @odata.nextLink token, while Anaplan bulk tasks are started with a POST and then polled by taskId until the state is complete, since a 200 on the POST does not mean the data is ready. Imports, exports, and writeback actions lock the Anaplan model, so ml-connector serializes tasks against the same model and never fires concurrent jobs at it. Business Central dimension values are mapped to Anaplan list members first, so every imported actual and every exported plan line lands on a member that exists. Business Central GL accounts and general ledger entries are read only, so the ledger stays authoritative and plan figures return only as draft journal lines. Throttling on either side returns HTTP 429, and both share a 600 request per minute ceiling, so ml-connector applies exponential backoff with jitter and deduplicates work on a stable BullMQ jobId derived from the Business Central entity ID or the Anaplan task. Where Business Central webhooks are enabled, a change notification can trigger a targeted read, but because the notification carries no payload the connector always fetches the resource itself, renews the three day subscription before it lapses, and falls back to polling for purchase orders, which are not webhook supported. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-market manufacturer with roughly 600 employees runs Microsoft Dynamics 365 Business Central for finance and purchasing and builds its annual budget and rolling forecast in Anaplan. Before the integration, an analyst exported trial balances and headcount from Business Central to CSV every month, reshaped them in a spreadsheet, and uploaded them into Anaplan by hand, then re-keyed the approved budget back into Business Central as journal entries. The manual cycle took days, dimension codes drifted between the two systems, and variance reports lagged the actual close. With Microsoft Dynamics 365 Business Central and Anaplan connected, each month close the GL entries and cost center dimensions load into the Anaplan model automatically, and when the forecast is approved the figures export back into Business Central as draft journals. The analyst stops moving spreadsheets, the dimensions stay aligned, and variance review starts on the same numbers in both systems.
What you can do
- Load Business Central general ledger entries and GL balances into Anaplan planning models through named import actions.
- Export approved Anaplan budget and forecast figures back into Business Central as draft journal lines.
- Map Business Central dimension values and the chart of accounts to Anaplan list members so every line lands on a real member.
- Bridge Business Central Entra ID OAuth2 client credentials and the 35 minute Anaplan basic or certificate token.
- Serialize Anaplan's asynchronous, model-locking import and export tasks with retries and a full audit trail on every record.
Questions
- Which direction does data move between Microsoft Dynamics 365 Business Central and Anaplan?
- Both directions. Actuals, GL entries, dimension values, and employee records move from Business Central into Anaplan through import actions, and approved budget or forecast figures move from Anaplan back into Business Central as draft journal lines through export actions. Business Central GL accounts and general ledger entries are read only over the API, so the ledger stays authoritative and plan data returns only as draft journals for review.
- Does Anaplan store invoices or GL accounts like an ERP?
- No. Anaplan is a connected planning platform with no native invoice, vendor, purchase order, or GL account object. It holds planning data as lists, modules, and line items inside a workspace and model, so Business Central finance data arrives as imported list members and module cells rather than as accounting records. A model builder must have created the import and export actions first, and ml-connector discovers those action IDs at runtime.
- How does the integration handle scheduling when neither side pushes data reliably?
- Anaplan has no webhook support, so every Anaplan read is poll based, and its bulk import and export tasks are asynchronous and lock the model, so ml-connector starts each task with a POST and polls the taskId until it is complete before starting the next one. Business Central can push subscription webhooks as a trigger, but the notification carries no data and purchase orders are not supported, so the connector reads incrementally on a schedule with a lastModifiedDateTime filter and renews each three day subscription before it lapses.
Related integrations
More Microsoft Dynamics 365 Business Central integrations
Other systems that connect to Anaplan
Connect Microsoft Dynamics 365 Business Central and Anaplan
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started