Hello - Anyone know of a technique for synchronizing across different BC tenancies? We have a client with a subcontractor that processes some of their sales orders. Need to sync some Customers, Items, & Sales Orders. Needs to send to them a subset of details for each. Also want to use identical Sales Order #’s, Item #’s, etc.), then receive back actual shipment quantities & details, etc. Interested in approaches &/or tools to build… Thanks
Hi,
Yes we can achieve this by using the Microsoft Power Automate or Make a Integration which will be installed on both tenants.
Thanks Sajjad. I should have mentioned we’re using some Power Automate & considering expanding & possibly building an integration. We want to make sure there aren’t other techniques or tools we can use that would be more effective.
Hi @Dave_Poggi
Power Automate works well for simple or low-volume sync, but for BC-to-BC across tenants, it usually doesn’t scale well on its own.
A more solid approach is using standard or custom Business Central APIs:
-
Push only required Customers, Items, and Sales Orders
-
Keep the number series aligned so the document and item numbers stay the same
-
Send shipment quantities and posting details back via a return API
You can still use Power Automate for triggering or monitoring, but the actual data sync is more reliable when handled through APIs.
Thanks Hardik. I’d agree, Power Automate is useful, but not great for higher volume or complex sync logic. Hoping there’s a tool out there somewhere as I doubt we’re the only ones. Microsoft has some stuff
Hi @Dave_Poggi
This is something we can help with by designing a custom pipeline, but in most cases, it does involve a few architectural changes to make it scalable and reliable.
Just choose between
Power Automate - More Hierarchical structure
API - Standard API and the Bound Action
Nice question; we’ve done this pattern a few times. Short answer: use a lightweight integration layer (middleware) that talks to each Business Central tenancy via the BC REST/OData APIs, handles filtering/transformation, and maintains an ID-mapping table so you can keep identical Sales Order / Item numbers in sync.
A few practical pointers from what’s worked for us at Dynamic Netsoft Technologies: keep the source system as the “master” for numbering (or run a tiny central numbering service in the middleware) so Sales Order and Item numbers remain identical; use the BC APIs or custom extension endpoints to push/pull data; maintain a mapping table (source ID ⇄ target ID) to reconcile records and support retries/idempotency; and prefer event/webhook triggers (or polling + change-tracking) so you only sync deltas. Use Azure Logic Apps / Functions + Service Bus, or a commercial iPaaS (Boomi, MuleSoft, or Kingsway/SSIS for .NET shops) depending on budget and scale.
Also design for partial updates: send only the subset of fields needed, validate on receive, and have clear error handling and audit logs. Secure everything with Azure AD/service principals, and include reconciliation jobs to compare totals and correct mismatches overnight.
There’s no built-in cross-tenant sync in Microsoft Dynamics 365 Business Central, so the clean approach is API-based integration.
Most common setup:
Expose Customers, Items, and Sales Orders via API
Push only required fields to the subcontractor’s tenant
Use your Sales Order No. and Item No. as the actual numbers or store them in External Document No.
Send shipment quantities back through another API call
This keeps numbering aligned and avoids messy file imports.
If volume is low, you could use Microsoft Power Automate, but for ongoing operational sync, a small middleware layer with APIs is more stable and scalable.
Thanks for the feedback Nadhira! We’ve headed down the API path you mentioned and so far it’s working well and also fairly fast. Wish we could have some additional capability in “Config packages” to control things for the static data, but looks like we’ll have to use API’s for those as well.
We did use Config packages to initially populate static tables (Customers, Items, etc.) at the sub-contractor, which gave us an efficient way to determine required fields, settings differences, etc. and sped up getting a preliminary solution into sandboxes. However, it doesn’t seem like we’ll have enough options to implement an efficient on-going integration. We’d like to have an option through Config packages that let us both schedule these and only send what’s changed/added on a regular schedule without needing to send everything every time. (I think we’d still need Power Automate or another option to handle pushing & pulling config files)