Skip to main content

Microsoft Dataverse

This source syncs data from Microsoft Dataverse using the Dataverse Web API (v9.2).

Prerequisites

  • A Microsoft Dataverse environment (included with Dynamics 365 or Power Apps)
  • An app registration in Microsoft Entra ID (formerly Azure Active Directory) with a client secret
  • The app registration must be added as an application user in your Dataverse environment with at least read access to the tables you want to sync

Setup guide

Step 1: Register an application in Microsoft Entra ID

  1. Sign in to the Azure portal.
  2. Navigate to Microsoft Entra ID > App registrations > New registration.
  3. Enter a name for the application and select Register.
  4. Note the Application (client) ID and Directory (tenant) ID from the Overview page.
  5. Under Certificates & secrets, select New client secret, add a description and expiry, then select Add. Copy the secret Value immediately — it won't be shown again.

Step 2: Add the application user to Dataverse

  1. Sign in to the Power Platform admin center.
  2. Select your environment, then select Settings > Users + permissions > Application users.
  3. Select New app user, find your app registration, assign it a business unit, and grant it a security role with read privileges on the tables you want to sync.

Step 3: Configure the connector in Airbyte

Provide the following fields:

FieldDescription
URLYour Dataverse environment URL, for example https://yourorg.crm.dynamics.com. Do not include a trailing slash or path.
Tenant IDThe Directory (tenant) ID from your app registration.
Client IDThe Application (client) ID from your app registration.
Client SecretThe client secret value you created in Step 1.
Max page sizeMaximum number of records per API response page (default: 5000). Reduce this value if you encounter timeout errors on tables with wide rows.

Supported streams

The connector automatically discovers all tables (entities) in your Dataverse environment using the EntityDefinitions API. Each table becomes an available stream.

Sync modes

FeatureSupportedNotes
Full RefreshYesAvailable for all tables.
Incremental SyncYesAvailable for tables with change tracking enabled. Uses OData delta tokens to fetch only modified and deleted records.
Replicate Incremental DeletesYesDeleted records are emitted with only the primary key populated.
NamespacesNo

For incremental sync, the connector uses Dataverse's change tracking feature (Prefer: odata.track-changes header). The API returns a @odata.deltaLink on the last page of results, which the connector stores as state and uses on subsequent syncs to retrieve only changes since the last sync.

Data type mapping

Dataverse TypeAirbyte TypeNotes
Stringstring
UniqueIdentifierstring
DateTime (DateOnly behavior)dateFields with DateTimeBehavior=DateOnly
DateTime (other behaviors)timestamp_with_timezoneUserLocal and TimeZoneIndependent behaviors
Integerinteger
BigIntinteger
Moneynumber
Booleanboolean
Doublenumber
Decimalnumber
Picklistinteger
Statusinteger
Stateinteger
LookupstringField name is prefixed with _ and suffixed with _value (for example, _ownerid_value).
VirtualSkipped; not synced.

All other types default to string.

Limitations and known issues

  • Change tracking must be enabled on a table for incremental sync to be available. Tables without change tracking support only full refresh. You can enable change tracking in the Power Apps table settings.
  • Virtual fields are excluded from the schema and not synced.
  • Service protection limits: Dataverse enforces API service protection limits that return HTTP 429 when exceeded. The connector handles back-off automatically. If you run into persistent throttling, reduce the Max page size or schedule syncs during off-peak hours.

IP allow list

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference

Config fields reference

Field
Type
Property name
string
client_id
string
client_secret_value
string
tenant_id
string
url
integer
odata_maxpagesize

Changelog

Expand to review
VersionDatePull RequestSubject
1.0.22026-06-0779143Revert connector base image to 4.0.0 (4.1.0 ships Python 3.13, incompatible with the connector's pinned CDK).
1.0.12026-06-0278805Update dependencies
1.0.02026-05-1377565Map DateOnly fields to date format instead of date-time. Add $select projection to discovery to reduce metadata payload size. Streams with DateOnly fields require a schema refresh and data reset.
0.1.322025-05-1060052Update dependencies
0.1.312025-05-0359292Update dependencies
0.1.302025-04-2658830Update dependencies
0.1.292025-04-1957684Update dependencies
0.1.282025-04-0557100Update dependencies
0.1.272025-03-2956631Update dependencies
0.1.262025-03-2256043Update dependencies
0.1.252025-03-0855454Update dependencies
0.1.242025-03-0154768Update dependencies
0.1.232025-02-2254356Update dependencies
0.1.222025-02-1546493Update dependencies
0.1.212024-09-2645938Make Dataverse available on Airbyte Cloud
0.1.202024-09-2145777Update dependencies
0.1.192024-09-1445482Update dependencies
0.1.182024-09-0745224Update dependencies
0.1.172024-08-3144987Update dependencies
0.1.162024-08-2444640Update dependencies
0.1.152024-08-1744224Update dependencies
0.1.142024-08-1043653Update dependencies
0.1.132024-08-0343164Update dependencies
0.1.122024-07-2742612Update dependencies
0.1.112024-07-2042373Update dependencies
0.1.102024-07-1341920Update dependencies
0.1.92024-07-1041346Update dependencies
0.1.82024-07-0941247Update dependencies
0.1.72024-07-0640800Update dependencies
0.1.62024-06-2540340Update dependencies
0.1.52024-06-2139931Update dependencies
0.1.42024-06-0639265[autopull] Upgrade base image to v1.2.2
0.1.32024-05-2038397[autopull] base image + poetry + up_to_date
0.1.22023-08-2429732Adjust source_default_cursor when modifiedon not exists
0.1.12023-03-1622805Fixed deduped cursor field value update
0.1.02022-11-1418646New Source: Microsoft Dataverse