Domain 6 β€” Module 1 of 5 20%
21 of 28 overall
Domain 6: Integrate and Manage Data Solutions Free ⏱ ~14 min read

Data Integration Patterns in F&O

Master the integration landscape of Dynamics 365 Finance and Operations β€” synchronous, asynchronous, near-real-time patterns, and the APIs that power each one.

Data Integration Patterns in F&O

Welcome to Domain 6 β€” the glue that connects Dynamics 365 Finance and Operations to everything else. Every real-world deployment needs data flowing in and out β€” from warehouses, CRMs, e-commerce platforms, and reporting systems. This module maps out the landscape so you can pick the right tool for every job.

Simple explanation

Think of integration patterns like postal services.

Synchronous is like handing a letter to someone face-to-face β€” you wait until they read it and reply. Fast for small things, but you are stuck waiting. Asynchronous is like dropping a package at the post office β€” you walk away and it arrives later. Great for big shipments. Near-real-time is like same-day courier β€” not instant, but close enough for most business needs.

F&O gives you different β€œpostal services” (APIs) depending on how much data you are moving and how fast it needs to get there.

The Three Integration Patterns

Every integration falls into one of three timing patterns. Understanding these first makes every API decision easier.

1. Synchronous (Request-Response)

The caller sends a request and waits for the response. The operation completes in a single HTTP round-trip.

πŸ”— Marcus’s client call: β€œAnita’s e-commerce platform needed real-time inventory checks. When a customer adds an item to their cart, the website calls F&O and waits for the stock count. That is textbook synchronous β€” you need the answer right now, and the data volume is tiny (one item at a time).”

When to use: Interactive lookups, single-record CRUD, validations that must return immediately.

APIs that support it:

  • OData endpoints β€” GET /data/SalesOrderHeaders?$filter=...
  • Custom services β€” your own business logic exposed as REST/SOAP

Trade-offs: Simple to implement, but blocks the caller. Not suitable for bulk data β€” timeouts kill large operations.

2. Asynchronous (Fire-and-Forget with Polling)

The caller submits work and gets back a job ID. Processing happens in the background. The caller polls for status or gets notified when done.

πŸ”— Marcus to Tomoko: β€œYour nightly product catalog sync pushes 50,000 SKUs. We are not going to do that one-by-one over OData β€” that would take hours and time out constantly. We submit a data package, F&O processes it in the background, and your system checks back for the result.”

When to use: Bulk imports/exports, migration loads, any operation involving thousands of records.

APIs that support it:

  • Data Management REST API β€” submit packages for import/export
  • Recurring integrations β€” scheduled enqueue/dequeue endpoints

Trade-offs: Handles massive volumes, but introduces latency and complexity (polling, error handling for partial failures).

3. Near-Real-Time (Event-Driven)

The system pushes notifications when something happens. External systems subscribe and react.

πŸ”— Marcus explaining to Anita: β€œWhen a sales order is confirmed in F&O, a business event fires. Your warehouse system picks it up within seconds via Azure Service Bus. No polling, no waiting β€” the event finds your system.”

When to use: Cross-system workflows, notifications, triggering downstream processes.

APIs that support it:

  • Business events β€” publish to Service Bus, Event Grid, HTTPS webhooks
  • Dual-write β€” real-time bidirectional sync with Dataverse (covered in Module 24)
Integration Patterns at a Glance
AspectSynchronousAsynchronousNear-Real-Time
TimingImmediate responseBackground processingSeconds to minutes
VolumeLow (1–100 records)High (thousands+)Medium (event-by-event)
DirectionRequest β†’ ResponseSubmit β†’ PollPush (F&O β†’ external)
Caller blocks?YesNoNo
Error handlingInline (HTTP status)Job status + error fileDead-letter queues
Best forLookups, single CRUDBulk data movementTriggering workflows
Key APIsOData, Custom servicesDM REST API, RecurringBusiness events, Dual-write
Question

What are the three integration timing patterns in F&O?

Click or press Enter to reveal answer

Answer

Synchronous (request-response, caller waits), Asynchronous (fire-and-forget with polling, background processing), and Near-Real-Time (event-driven push notifications). Each maps to different APIs and volume requirements.

Click to flip back

The API Landscape

Now let’s map each API to its sweet spot.

OData (REST) Endpoints

Every data entity in F&O is automatically exposed as an OData v4 endpoint. This is the default integration API for most scenarios.

GET  https://your-environment.operations.dynamics.com/data/CustomersV3?$filter=CustomerAccount eq 'C001'
POST https://your-environment.operations.dynamics.com/data/SalesOrderHeaders

Capabilities:

  • Full CRUD β€” GET, POST, PATCH, DELETE
  • Query options β€” $filter, $select, $expand, $orderby, $top, $skip
  • Batch requests β€” group multiple operations in one HTTP call ($batch)
  • Cross-company β€” add ?cross-company=true or dataAreaId filter

Limitations:

  • Timeout at ~5 minutes β€” long operations fail
  • Not designed for bulk (thousands of records = slow)
  • Rate limiting applies (429 responses)
Exam tip: OData $batch for multiple operations

The exam loves testing whether you know about $batch. When you need to create a sales order header AND its lines in one call, $batch with changesets ensures atomicity. Without it, you would need separate POST calls β€” and if the lines fail, the header is already created (orphan record).

Custom Services

When OData’s CRUD isn’t enough β€” you need custom business logic β€” you build a custom service. This is a service class with methods, exposed via a service group.

πŸ—οΈ Vik’s take: β€œOData is the vending machine β€” you pick a standard item and it hands it back. Custom services are the full restaurant kitchen β€” you define the menu, the recipe, and the response. More work to build, but you can do anything.”

When to pick custom services over OData:

  • You need to run complex business logic (not just read/write a table)
  • The operation spans multiple entities in a single transaction
  • You need a specific request/response contract

Data Management REST API

For bulk operations, the Data Management Framework (DMF) exposes a REST API. You submit a data package (a zip file of CSV/XML) and DMF processes it using the entity pipeline.

POST /data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ImportFromPackage

Flow:

  1. Get a writable blob URL from F&O
  2. Upload your data package (zip) to the blob
  3. Call ImportFromPackage with the blob URL and project name
  4. Poll GetExecutionSummaryStatus for completion
  5. Download error file if needed

Best for: Nightly data loads, migration batches, any scenario with 1,000+ records.

Recurring Integrations

Recurring integrations add a message queue on top of DMF. Instead of manual submissions, data flows through enqueue/dequeue endpoints on a schedule.

  • Enqueue β€” external system pushes data into F&O’s processing queue
  • Dequeue β€” external system pulls exported data from F&O’s outbound queue

πŸ”— Marcus to Tomoko: β€œYour daily product feed? Set up a recurring export job. Every night at 2 AM, F&O stages the data. Your middleware calls the dequeue endpoint and picks it up. No manual file drops.”

Question

What is the difference between the Data Management REST API and Recurring Integrations?

Click or press Enter to reveal answer

Answer

The DM REST API is for on-demand, ad-hoc bulk operations β€” you submit a package and poll for results. Recurring Integrations add a message queue layer for scheduled, automated data feeds (enqueue inbound / dequeue outbound) running on a repeating cycle.

Click to flip back

The Decision Framework

Use this flowchart logic when the exam asks β€œwhich integration approach should you use?”

Step 1: How many records?

  • Less than ~100 β†’ Consider synchronous (OData / custom service)
  • Hundreds to thousands β†’ Asynchronous (DMF)

Step 2: Does the caller need an immediate response?

  • Yes β†’ Synchronous (OData for CRUD, custom service for logic)
  • No β†’ Asynchronous or event-driven

Step 3: Is it a regular/repeating feed?

  • Yes β†’ Recurring integrations
  • No, ad-hoc β†’ DM REST API

Step 4: Does F&O need to notify an external system?

  • Yes β†’ Business events (Module 25)

Step 5: Does it need bidirectional real-time sync with Dataverse?

  • Yes β†’ Dual-write (Module 24)
Decision tree example: E-commerce product sync

Scenario: An e-commerce platform needs its product catalog updated daily from F&O (20,000 products), and needs real-time inventory checks when customers browse.

Product catalog (bulk, scheduled): 20,000 records β†’ asynchronous β†’ repeating schedule β†’ Recurring integration (dequeue)

Inventory check (single, immediate): 1 record, needs instant response β†’ synchronous β†’ OData GET on inventory entity

Two patterns for one integration β€” that is normal. Most real projects use a mix.

API Selection Quick Reference
APIPatternVolumeBest For
ODataSynchronousLow (1–100)CRUD operations, lookups, Power Platform connectors
Custom ServicesSynchronousLow–MediumComplex business logic, custom contracts
DM REST APIAsynchronousHigh (1,000+)Ad-hoc bulk import/export, migrations
Recurring IntegrationsAsynchronousHigh (1,000+)Scheduled repeating data feeds
Business EventsNear-Real-TimePer-eventNotifications, triggering external workflows
Dual-WriteNear-Real-TimePer-recordBidirectional Dataverse sync
Question

When should you choose OData over the Data Management REST API?

Click or press Enter to reveal answer

Answer

Choose OData when you need synchronous, low-volume operations (under ~100 records) with immediate responses β€” lookups, single CRUD, interactive integrations. Choose the DM REST API when you have high-volume bulk operations (thousands of records) that can run asynchronously in the background.

Click to flip back

Authentication for All APIs

All F&O integration APIs use Azure Active Directory (Microsoft Entra ID) OAuth 2.0 tokens. The typical flow:

  1. Register an app in Entra ID
  2. Grant it permissions to the F&O environment
  3. Use the client credentials flow (client_id + client_secret) for server-to-server
  4. Include the token as Authorization: Bearer your-token in every request

πŸ”— Marcus’s security note: β€œEvery integration client gets its own app registration β€” never share credentials across integrations. If one system is compromised, you revoke that single app without breaking everything else.”

Question

What authentication mechanism do F&O integration APIs use?

Click or press Enter to reveal answer

Answer

All F&O APIs use Azure Active Directory (Microsoft Entra ID) OAuth 2.0 tokens. Server-to-server integrations typically use the client credentials grant flow with a registered app's client_id and client_secret.

Click to flip back

Exam Practice

Knowledge Check

NexBridge needs to sync 30,000 vendor records from an external ERP into F&O every night. Which integration approach should Marcus recommend?

Knowledge Check

An e-commerce website needs to check inventory availability in real-time when a customer views a product page. Which API should be used?

Knowledge Check

Which of the following is a characteristic of the Data Management REST API?

Question

What are the five main integration APIs in F&O?

Click or press Enter to reveal answer

Answer

1) OData (synchronous CRUD on data entities), 2) Custom services (developer-defined REST/SOAP), 3) Data Management REST API (async bulk via file packages), 4) Recurring integrations (scheduled enqueue/dequeue), 5) Business events (event-driven push notifications).

Click to flip back


Next up: Data Management Framework β€” learn how to configure import/export projects, sequence entities, set up field mappings, and manage recurring data jobs using the DMF workspace.