Skip to content

§00Integrations / ERP · CRM

Microsoft Dynamics 365 integration: Three Dynamics 365 products. Three APIs. One conversation.

Finance & Supply Chain Management speaks OData data entities and business events. Business Central has API v2.0 and webhooks that expire every three days. Sales lives on Dataverse. PartnerMCP treats them as the three systems they are, signs in through Microsoft Entra ID, and paces itself to each product's limits.

How PartnerMCP connects

01Primary path

Finance & SCM: OData data entities

Public entities such as CustomersV3, SalesOrderHeadersV2, SalesOrderLines and ReleasedProductsV2 at [org]/data. $batch changesets are atomic, $expand goes one level deep, and ?cross-company=true reads across legal entities.

Product
Microsoft Dynamics 365 Finance
Vendor
Microsoft
Category
ERP
Runs
Cloud
Connects through
OData (data entities)
Detects changes with
business events (Service Bus, Event Grid, HTTPS)
Product
Microsoft Dynamics 365 Business Central
Vendor
Microsoft
Category
ERP
Runs
Cloud · On-prem
Connects through
REST API v2.0
Detects changes with
webhooks (subscriptions, renewed every 3 days)
Product
Microsoft Dynamics 365 Sales
Vendor
Microsoft
Category
CRM
Runs
Cloud
Connects through
Dataverse Web API
Detects changes with
change tracking (delta links) · plug-in webhooks
On this page
  1. 01What you can build
  2. 02Objects and events
  3. 03What it handles
  4. 04Questions
  5. 05References
§01—What you can build

What you can build.

Each one starts as a sentence. PartnerMCP answers with a plan in Dynamics 365’s own objects, then builds it against your systems.

01Dynamics 365 Sales → Business Central

“When an opportunity is won in Dynamics 365 Sales, create the customer and sales order in Business Central and show shipment and invoice status on the opportunity.”

Build this integration

PartnerMCP will

  1. Read won opportunities (statecode = 1) through Dataverse change tracking.
  2. Find or create the Business Central customer, matched on a key PartnerMCP stores on both sides.
  3. Create the salesOrders record with salesOrderLines and the opportunity as externalDocumentNumber.
  4. Follow salesShipments and salesInvoices through Business Central webhooks, renewed before they expire.
  5. Write shipment and invoice status back to the opportunity.

02Shopify → Business Central

“Create Business Central sales orders from Shopify and ship and invoice them when the warehouse confirms.”

Build this integration

PartnerMCP will

  1. Verify each Shopify webhook and drop duplicates by X-Shopify-Webhook-Id.
  2. Create salesOrders with the Shopify order number in externalDocumentNumber, checked before every create.
  3. When the warehouse confirms, call Microsoft.NAV.shipAndInvoice on the order.
  4. Send fulfillment and tracking back to Shopify.

03Salesforce → Finance & SCM

“Create sales orders in Dynamics 365 Finance & SCM in the right legal entity when Salesforce opportunities close.”

Build this integration

PartnerMCP will

  1. Map each Salesforce Account to a CustomersV3 record in the correct dataAreaId.
  2. Create SalesOrderHeadersV2 and its SalesOrderLines in one $batch changeset, so both commit or neither does.
  3. Follow status through business events delivered to your Service Bus or Event Grid.
  4. Write delivery and invoice status back to the Opportunity.
§02—Objects and events

Objects and events, by their API names.

The records PartnerMCP reads and writes in Dynamics 365, and the events that start a run.

  • F&SCM customers

    CustomersV3

    The customer entity Microsoft's OData examples use.

  • F&SCM sales orders

    SalesOrderHeadersV2SalesOrderLines

    Headers must exist before their lines. Confirming, picking, packing and invoicing are actions or batch processes, not plain entity writes.

  • F&SCM products

    ReleasedProductsV2

    Released products; the shared product must exist first.

  • Business Central customers and items

    customersitems

    API v2.0 resources, scoped to a company GUID in every URL.

  • Business Central sales orders

    salesOrderssalesOrderLines

    number, customerNumber, externalDocumentNumber, status, totalAmountIncludingTax and lastModifiedDateTime; the bound action Microsoft.NAV.shipAndInvoice ships and invoices.

  • Business Central documents

    salesShipmentssalesInvoicescustomerPayments

    With salesQuotes and salesCreditMemos for the rest of the order-to-cash chain.

  • Sales opportunities

    opportunity

    statecode 0 Open, 1 Won, 2 Lost; won and lost rows are read-only until reactivated. Messages include WinOpportunity and CalculateActualValueOpportunity.

  • Sales orders (Dataverse)

    salesorder

    Messages GenerateSalesOrderFromOpportunity, FulfillSalesOrder, CancelSalesOrder and ConvertSalesOrderToInvoice.

Events

  • Finance & SCM business events

    Inactive by default and activated per legal entity. Delivery retries 3 times, 1,000 ms apart; payloads carry a non-sequential control number for idempotency, and ordering isn't guaranteed. Microsoft says not to treat them as a data export mechanism, so PartnerMCP reads the record back.

  • Business Central webhooks

    POST subscriptions with a notificationUrl and an optional clientState secret; Business Central validates the endpoint with a validationToken. Subscriptions expire after three days unless renewed, with at most 200 per environment.

  • Dataverse change tracking

    Prefer: odata.track-changes returns a delta link for incremental reads, deleted rows included.

  • Dataverse webhooks and Service Bus

    Plug-in steps that call a webhook or Azure Service Bus. Webhooks time out after 60 seconds and get one extra attempt only on 502, 503 or 504; payloads over 256 KB lose their context properties.

§03—What it handles

What PartnerMCP handles for you.

The details that break Dynamics 365 integrations in production, and what PartnerMCP does about each one.

  1. 01

    Resource-based throttling in Finance & SCM

    Since 10.0.19, Finance & SCM answers 429 when web-server CPU or memory is under pressure; the old per-user limits are no longer enforced (removed in 10.0.36). PartnerMCP honours Retry-After, and you can rank its app on the Throttling priority mapping page.

  2. 02

    Business Central's narrow pipe

    600 requests a minute in production (300 in sandboxes), 5 concurrent requests with a queue of 95, $batch of at most 100 operations and an 8-minute timeout. PartnerMCP batches, queues and stays under the line instead of discovering it.

  3. 03

    Webhooks that expire

    Business Central subscriptions last three days. PartnerMCP renews them before they lapse and answers the validationToken handshake on every renewal.

  4. 04

    Legal entities

    Finance & SCM data is scoped by dataAreaId. PartnerMCP maps flows to legal entities explicitly and uses cross-company reads only where you intend them.

  5. 05

    Posting isn't a field write

    In Finance & SCM, confirming, picking, packing and invoicing need actions, custom services or batch processes. PartnerMCP plans those steps explicitly instead of hoping an entity write triggers them.

  6. 06

    Dataverse service protection

    Per user and web server, Dataverse allows 6,000 requests, 20 minutes of execution time and 52 concurrent requests in a 5-minute window, then answers 429 with Retry-After. PartnerMCP spreads load and waits as told.

  7. 07

    Bulk goes through the package API

    OData is for transactions. For volume, PartnerMCP uses data management packages and recurring integrations — and never calls ImportFromPackage in parallel threads.

§04—Questions

Dynamics 365 integration questions.

Which Dynamics 365 products does this cover?

Dynamics 365 Finance & Supply Chain Management, Dynamics 365 Business Central and Dynamics 365 Sales on Dataverse. Each has its own API, so PartnerMCP treats them as three systems.

Does PartnerMCP use Microsoft's MCP servers?

Where your admins allow them: the Dynamics 365 ERP MCP server for Finance & SCM, the Business Central MCP server (preview) and the Dataverse MCP server. Dataverse MCP use by agents outside Copilot Studio is billed in Copilot Credits unless your licences cover it, so production flows use the Web API and OData instead.

Can it connect to Business Central on-prem?

Yes. API v2.0 is available on-prem at …/bc/api/v2.0, and PartnerMCP reaches it through the Edge Agent, an outbound-only connector inside your network (architecture concept), so the server needs no public endpoint.

Will it hit Business Central's limits?

It's designed not to. With 5 concurrent requests and 600 a minute per production environment, PartnerMCP serialises writes, batches up to 100 operations and backs off on 429.

Do we need dual-write?

No. Dual-write is Microsoft's own coupling between Finance & SCM and Dataverse. PartnerMCP integrates either side through its APIs, and can run alongside dual-write if you already use it.

§05—References

Vendor documentation.

The public documentation behind the technical details on this page.

§06Next step

Connect Dynamics 365 to the rest of your systems.

Describe what should happen. PartnerMCP shows you the plan before anything is built.