Skip to main content
D365ConsultantDivision of Sataware
CRM to CRM

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.

Ownership
one system of record per field
Matching
store each side's ID on the other
API limits
on both platforms, sized before go-live
Person typing on a laptop beside a coffee mug and handwritten notes

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

Salesforce
Dynamics 365 (Dataverse)
Usual direction
Note
Account
Account
Two-way, field by field
Agree which side creates new customers
Contact
Contact
Two-way
Match on the stored partner ID, then email
Lead
Lead
Usually one-way
Pick the system where leads are qualified
Opportunity
Opportunity
One-way to the reporting side
Stage names and probabilities need a mapping table
Case
Case (incident)
Depends on which side runs service
Status and priority values rarely match
User
User
Mapping table only
Owners must exist on both sides or fall back to a default

Tools and middleware for the integration

Low code

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.

    Data platform

    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.

      Middleware

      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.

        Custom

        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. 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. 2

            Clean and match

            Deduplicate both CRMs and match existing customers on IDs, domains or tax numbers before the first sync.

          3. 3

            Build in sandboxes

            Connect a Salesforce sandbox to a Dynamics 365 sandbox and run the full and change-only syncs.

          4. 4

            Test real scenarios

            Create, edit, merge and delete records on each side, including conflicts, and check the error queue.

          5. 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.

          Get started

          Start with a scoping conversation.

          Thirty minutes with a senior consultant, and no sales pitch. We look at how you run today, tell you plainly whether Business Central is the right fit, and give you a realistic sense of scope, cost and timeline before you commit to anything.

          What happens next
          1
          We review your inquiry
          A consultant reads it before the call. There is no discovery questionnaire to fill in.
          2
          30-minute scoping call
          Your processes, your current systems, and the gaps that matter most.
          3
          Written summary & estimate
          Indicative phases, license counts and next steps, in writing after the call.
          A senior consultant reads every message
          NDA signed before discovery on request
          No obligation on the first call
          Senior consultants on every call
          Request your scoping call
          A few short fields. A senior consultant reads and replies.
          No obligation
          Your details stay with our consulting team. We never share them or add them to a mailing list.

          Trusted partners

          Microsoft Solutions Partner ยท AWS Partner

          Why teams pick us

          Dynamics 365 consultingWhat we do
          Free readiness assessment2-hour workshop
          Reply in one business dayFrom a senior consultant
          Scoping in 48 hoursCalls available fast
          Fixed scope, fixed priceAgreed in writing
          Microsoft-certified teamMB-800 and more
          Live chatA real person replies
          Secure HTTPSEncrypted end to end
          Call now