Dynamics 365 Salesforce integration: a practical guide to tools, data and best practices
A Dynamics 365 Salesforce integration keeps records such as accounts, contacts and opportunities in step between the two platforms. Companies need one when two business units use different CRMs, during a phased move from one to the other, or when Salesforce runs sales while Dynamics 365 runs service or finance. The tool you pick matters less than three decisions: which records sync, which system owns each field, and how you match records that exist in both.

When does a Dynamics 365 and Salesforce integration make sense?
Keeping two CRMs in sync takes ongoing work, so first check that you really need both. There are three good reasons to. A group has acquired a company that runs the other CRM and cannot move yet. A phased migration moves teams across over months, and both sides must see the same customers meanwhile. Or the platforms do different jobs, for example sales on Salesforce and field service, customer service or finance on Dynamics 365.
If the goal is to retire one CRM within a few months, a one-time Dynamics 365 data migration with a short overlap is often cheaper than building and running a sync. If you use Business Central rather than Dynamics 365 Sales, see our Business Central Salesforce integration page instead.
Typical record mapping between Salesforce and Dynamics 365
Tools and middleware for the integration
Power Automate
The [Salesforce connector](https://learn.microsoft.com/en-us/connectors/salesforce/) can react to record changes and update Dataverse. Fits low volumes and a few objects.
Azure Data Factory
Copy activities with the [Salesforce connector](https://learn.microsoft.com/en-us/azure/data-factory/connector-salesforce) and the Dataverse connector suit scheduled, high-volume syncs and reporting loads.
Integration platforms
Commercial iPaaS and ETL products offer prebuilt connectors for both CRMs, mapping screens and monitoring. Fits many objects and near real-time needs.
Code on both APIs
Azure Functions calling the Salesforce and Dataverse APIs. Full control, but you own every retry, log and upgrade.
Best practices for Salesforce and Dynamics 365 integration
- โGive each field one owner. A field that both sides can edit will end up with whichever change synced last.
- โStore the Salesforce ID on the Dynamics 365 record as an alternate key and the Dynamics 365 ID in a Salesforce external ID field.
- โUse dedicated integration users on both platforms with only the permissions the sync needs.
- โCheck Salesforce API request limits for your edition and the Dataverse service protection limits before choosing real-time sync.
- โKeep picklist and stage mappings in a table the business can read, not buried in code.
- โSend failed records to an error queue with the reason, and give someone the job of clearing it each week.
- โRun the first full sync into sandboxes on both sides and reconcile counts before touching production.
How we run a Salesforce integration project
- 1
Agree the scope
List the objects, the direction and the owner of each field, and how fast changes must appear on the other side.
- 2
Clean and match
Deduplicate both CRMs and match existing customers on IDs, domains or tax numbers before the first sync.
- 3
Build in sandboxes
Connect a Salesforce sandbox to a Dynamics 365 sandbox and run the full and change-only syncs.
- 4
Test real scenarios
Create, edit, merge and delete records on each side, including conflicts, and check the error queue.
- 5
Go live and monitor
Run the initial sync, then watch volumes, failures and API use daily for the first weeks.
Questions about Dynamics 365 Salesforce integration
Is there a native connector between Dynamics 365 and Salesforce?
There is no Microsoft product that syncs the two CRMs end to end out of the box. Power Automate and Azure Data Factory both include Salesforce connectors you can build with, and several third-party integration platforms sell ready-made templates.
Can the integration run in real time?
Near real time is possible with event-driven flows or middleware, but it uses more API calls on both platforms. Many companies sync accounts and contacts within minutes and opportunities or reporting data on a schedule.
How do we stop duplicate records?
Match existing records before the first sync, store each platform's ID on the other, and only create a new record when no stored ID or agreed match rule finds one.
Is it secure to connect the two systems?
It can be. Use OAuth with dedicated integration users, give them the minimum permissions, keep secrets in a vault such as Azure Key Vault and log every run. Our [Dynamics 365 security and compliance](/guides/dynamics-365-security-compliance/) guide covers the Dataverse side.
Talk to us about your project.
Tell us what you run today and what has to change. A senior consultant replies with a written next step.