Connect to Dynamics 365 Finance & Operations
Connect PlaidCloud to Dynamics 365 Finance & Operations (D365 F&O) over its OData and Data Management Framework (DMF) endpoints to pull master and transactional data with no OData to hand-write, and post general journal entries back. This guide covers the connection, the import step, and the post step.
Prerequisites
Section titled “Prerequisites”You need, in Azure AD and D365 F&O:
- An Entra ID (Azure AD) app registration for PlaidCloud with a client secret, granted an application permission (or delegated admin-consented permission) to the D365 F&O resource.
- Your Azure AD tenant ID.
- The environment URL for the D365 F&O environment PlaidCloud should call (for example
https://yourorg.operations.dynamics.com). - A resource/scope value — usually the environment URL itself with
/.defaultappended — that the app registration requests a token for.
Create the Connection
Section titled “Create the Connection”-
Open Tools > Connections and click
New Connection. -
Choose Dynamics 365 Finance & Operations from the menu.
-
Fill in the fields:
Field Value Name A friendly name, e.g. D365 F&O Prod.Environment URL Your environment URL, e.g. https://yourorg.operations.dynamics.com.Client ID The Entra app registration’s application (client) ID. Client Secret The app registration’s client secret. Tenant ID Your Azure AD tenant ID. Resource/Scope The OAuth2 scope to request, typically the environment URL plus /.default. -
Click
Create.
Smoke-Test the Connection
Section titled “Smoke-Test the Connection”-
Add an Import D365 F&O Entity step to a workflow.
-
Set D365 F&O Connection to your connection, Entity Type to
main_accounts, and Target Table to a scratch table. -
Run the step (see Running one step in a workflow).
A populated target table confirms the tenant, credentials, and environment URL are all correct. An error names the problem — a bad client secret, a missing permission grant, or a wrong environment URL.
Import Data
Section titled “Import Data”-
Add an Import D365 F&O Entity step and set D365 F&O Connection and Target Table.
-
Set Entity Type to the record you want, and Sync Mode to
odatafor a normal-sized pull ordmffor a bulk extract of a large entity. -
Add Filters to bound the pull — date, account, and dimension ranges are translated into the request’s OData
$filter, restricted per entity to the fields D365 F&O can actually filter on server side. -
Run the step and check the target table.
Entities and Filters
Section titled “Entities and Filters”| Entity Type | What it pulls | Filterable fields |
|---|---|---|
main_accounts |
The chart of accounts | account range, dimension |
currencies |
Currency master | — |
customers |
Customer master | account range |
vendors |
Vendor master | account range |
released_products |
Released product master | — |
ledger_journal_headers |
Unposted and posted journal headers | date range, account range, dimension |
Post Journal Entries
Section titled “Post Journal Entries”The D365 F&O: Post Journal Entry step posts general ledger journal entries through PlaidCloud’s shared ERP write pipeline, using D365 F&O’s asynchronous custom-service journal post action.
-
Build a header table — one row per journal entry — with
journal_id(your entry identifier),journal_name(the D365 F&O journal name to post into),posting_date, anddescription. -
Build a lines table — one or more rows per
journal_id— withaccount,debit,credit, and any dimension columns your ledger requires. -
Add a D365 F&O: Post Journal Entry step, set D365 F&O Connection, Header Table, Lines Table, and a Result Table.
-
Leave Validate Only checked and run the step — PlaidCloud builds and checks every entry without a ledger claim and without posting anything.
-
Review the result table (one row per entry:
journal_id,natural_key,confirmation_id,status,message). Fix anyerrorrow and re-validate. -
Uncheck Validate Only and run again to post for real. Leave Continue On Error checked unless you want a batch to stop dead on its first failed entry.
How Posting Works
Section titled “How Posting Works”PlaidCloud submits each journal entry to D365 F&O’s asynchronous custom-service post action, then polls until the service reports the entry’s terminal state. An entry is only reported posted once that terminal state is confirmed — an entry that’s accepted but whose terminal state never resolves stays quarantined rather than being recorded as posted, so a stuck submission never silently passes as success. PlaidCloud’s own ledger claim guards against posting the same entry twice on a retried or re-run batch.
Correcting a Posted Entry
Section titled “Correcting a Posted Entry”This step never deletes or rewrites a posted entry. To correct one, post a new entry with debits and credits swapped against the original — a posted reversing entry — rather than editing the original in place. This preserves D365 F&O’s own audit trail and matches how corrections are made directly in the application.
Capability Limits — Read Before Posting Live
Section titled “Capability Limits — Read Before Posting Live”Related
Section titled “Related”- Dynamics 365 F&O REST Connector — field reference.
- Import D365 F&O Entity
- D365 F&O: Post Journal Entry
- Review ERP Post History — the standing record of every D365 F&O post attempt and its live state.
- Create and Manage a Connection