D365 and Dataverse - Integration Overview
Dataverse and Dynamics 365 applications provide a rich set of integration options to address different business and technical scenarios. The different approaches allow for a flexible design to increase automation, improve processes optimization, reduce costs and increase security. On a very high level, the integration options can be grouped based on the application they can be used for:
- Dynamics 365 for Finance and operations apps (e.g. DMF)
- Dynamics 365 for Customer Engagement / Dataverse (e.g. Plug-ins)
Both (e.g. events) Another popular categorizations is based on the flow direction (In vs Out) or the decoupling pattern (synchronous vs asynchronous). The scope of this presentation are Dataverse and Dynamics 365 apps. We will explore the integration options in more detail in the following slides.
Endpoint | Apps | Direction | Latency | Operations | Batching available | Volume | Error handling | Best Suited for |
---|---|---|---|---|---|---|---|---|
OData | FO | In | Sync | CRUDA | N | Low/Medium | No | Low to medium volume, a real-time, system to system integration |
Web API | DV | In | Sync Async | CRUDA | Y | Low/High | Extensible | OData v4 RESTful endpoint for any programming language that supports HTTP requests and authentication using OAuth 2.0. |
Custom Service | FO | In/Out | Sync | CRUDA | Y | Low/Medium | No | Low to medium volume, a real-time, system to system integration |
Package API | FO | In/Out | Async | CRU | Y | High | Yes | High volume asynchronous import/ export |
Recurring Integration | FO | In/Out | Async | CRU | Y | High | Yes | High volume asynchronous import/ export |
Business Data Events | FO DV | Out | Async | R | N | High | Yes | High volume status event notifications to subscribers, workflows, and Out integrations |
Synapse Link | FO DV | Out | Async | R | Y | High | Log | High volume data integration for Analytics |
Virtual table | FO DV | In/Out | Sync | CRUD | N | N/A | No | Integration of data residing in external systems without data replication. |
SQL/TDS endpoint | DV | Out | Sync | R | N | Low/Medium | No | Read only access, respects Dataverse security. Should be used for analytics with PBI. |
Plug-in | DV | Out | Sync Asyncronous | CRUD | Y | Low/Medium Medium/High | Yes | Event handler that executes in response to a specific event raised during processing of a Dataverse data operation. When running in sync mode, it executes as part of database transaction. |
Webhook | DV | Out | Syncronous & Async | CUD | N | Low/Medium | Yes | Sends POST requests with JSON payload to an external service. |
Name | Type | Description |
---|---|---|
name | string | Name of the resource |
path | string | Path to the resource |
Factors to consider when choosing a pattern
syntax
!Synchronous: Integration is triggered with an immediate response required. Asynchronous: Integration is triggered with a delayed response required. Near Real-Time: Minimal latency (less than 1 min) is allowed between trigger and transmission. Scheduled Batch: Integration will occur on a scheduled basis with a pre-determined recurrence.