<environment URL>/data.
Before you start
The connector signs in as an application (Microsoft Entra ID client credentials), and Finance and Operations must know that application. Your administrators need to complete these steps once:1
Register an application in Microsoft Entra ID
In the Azure portal, open Microsoft Entra ID → App registrations → New registration and create an application. Under Certificates & secrets, create a client secret and copy its value (not its ID). Note the Directory (tenant) ID and the Application (client) ID from the app’s overview page. Client secrets expire; note the expiry date and update the connection before it.
2
Register the application in Finance and Operations
In Finance and Operations, go to System administration → Setup → Microsoft Entra applications and select New. Enter the Client ID from step 1, a name, and a User ID — an enabled user whose security roles can read the data entities you want to sync, in every company you want to sync. A dedicated service account with read-only roles is recommended.
3
Copy your environment URL
Copy the address of your environment from the browser, for example
https://contoso.operations.dynamics.com.Configuring Microsoft Dynamics Finance and Operations as a source
In the Sources tab, click the “Add source” button on the top right, then select Microsoft Dynamics Finance and Operations from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
- Environment URL: The address of your environment, for example
https://contoso.operations.dynamics.com. Pasting the full address from the browser also works. - Tenant ID: The Directory (tenant) ID of your Microsoft Entra ID tenant.
- Client ID: The Application (client) ID of the app registration.
- Client secret: The client secret value of the app registration.
- Entities: The data entities to sync, by their collection name (the name in the OData URL), for example
CustomersV3orSalesOrderHeadersV2. Each becomes a stream. For each entity you can optionally set an Incremental field, a Filter (an OData$filterexpression) and the Fields to read. Leave it empty to sync the standard set listed below. - Companies: The company (legal entity) codes to sync, for example
usmf. Leave empty to sync every company the linked user can access. The codes are checked when the sync starts; an unknown code stops the sync with the list of available companies.
- Initial sync date: For incremental entities, only records changed after this date are read on the first run.
- All companies: On by default. When off, Finance and Operations returns only the default company of the linked user (it must stay on when Companies is set).
- Default incremental fields: Field names used as the incremental field of any entity that has them. Defaults to
SysModifiedDateTime. - Page size: Records per request when an entity is read by key ranges (default 5000).
- Pagination: Automatic (default) reads entities with a single numeric key by key ranges — fast and correct while data changes — and the others by following the pages Finance and Operations returns.
- Incremental lookback (minutes): Each incremental sync re-reads records changed this many minutes before the previous position (default 60), so postings that are saved late are not missed.
- Request timeout: How long to wait for each page before retrying (default 300 seconds).
2. Select streams
Choose which data streams you want to sync. Each stream corresponds to one entity. For faster extractions, select only the streams relevant to your analysis.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired Layer where the data will be placed, a Folder to organize it, a name for each table, and the type of sync.- Layer: choose between the existing Layers on your catalog. This is where your extracted tables appear once the extraction runs successfully.
- Folder: a Folder can be created inside the selected Layer to group all tables created from this source.
- Table name: a name is suggested, but you can customize it. You can also add a prefix to all tables at once.
- Sync Type: choose between INCREMENTAL and FULL_TABLE.
- Incremental: available for entities with an incremental field; each extraction fetches only records changed since the last run.
- Full table: each extraction fetches the whole entity.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. Optionally, you can define additional settings such as Delta Log Retention and an additional Full Sync to complement the incremental extractions. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking the arrow button. Once executed, your data appears in your Catalog.Streams and Fields
Streams are built from your environment’s metadata: one stream per entity, named in snake_case (CustomersV3 becomes customers_v3). Columns keep the entity’s field names, and the entity key — which includes dataAreaId (the company) for company-specific entities — becomes the table’s primary key. Custom entities and custom fields are included as long as the entity is public (exposed through OData).
When Entities is empty, these standard entities are offered (an entity that does not exist in your version is skipped, and the run log lists which ones):
Legal entities and main accounts
Legal entities and main accounts
LegalEntities (companies) and MainAccounts (chart of accounts).General ledger
General ledger
General journal entries and account entries (
GeneralJournalEntryBiEntities, GeneralJournalAccountEntryBiEntities). Synced incrementally on SysModifiedDateTime.Customer and vendor transactions
Customer and vendor transactions
CustTransBiEntities and VendTransBiEntities. Synced incrementally on SysModifiedDateTime.Customers, vendors and products
Customers, vendors and products
CustomersV3, VendorsV2 and ReleasedProductsV2, per company.Sales
Sales
SalesOrderHeadersV2, SalesOrderLines and posted sales invoice headers (SalesInvoiceHeadersV4, or SalesInvoiceHeadersV2 on versions before 10.0.40).Purchasing
Purchasing
PurchaseOrderHeadersV2 and PurchaseOrderLinesV2. By design these entities do not include purchase return orders.<environment URL>/data in the browser while signed in.
How columns are represented
- Enumerations (such as
NoYesorSalesStatus) are stored as their name, for exampleYesorInvoiced. - Dates are stored as UTC timestamps. Finance and Operations represents an empty date as
1900-01-01; those values are stored as empty (null). - Amounts are numbers in the transaction currency of the record.
Incremental sync
Most entities do not expose a date that changes when a record is updated, so they are read in full on every run. Entities that do — typically the*BiEntities, with SysModifiedDateTime — are synced incrementally by default, re-reading the last 60 minutes on each run (Incremental lookback). SysModifiedDateTime tracks changes to the entity’s main table only; changes that affect only related tables, and deleted records, are not detected. Use FULL_TABLE (or an additional Full Sync) where that matters.
If you change an entity’s Filter, Incremental field or the Companies, its next sync starts again from the Initial sync date, so the history of the new scope is loaded too.
Limits
Finance and Operations protects its service with request limits. When a limit is reached, the connector waits the time Finance and Operations asks for and continues automatically; no data is lost, but the run takes longer. You can give this integration a lower throttling priority in Finance and Operations (System administration → Setup → Throttling priority mapping) so it yields to interactive users. Large entities (for example general ledger entries) can take a long time on the first sync. Microsoft recommends its bulk export options (such as Azure Synapse Link) for tables of many millions of rows; with this connector, prefer an incremental field, Filters, or Fields to limit what is read.The connector supports Finance and Operations in the Microsoft public cloud. Sovereign clouds (for example US Government) and on-premises deployments (AD FS) are not supported.