> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Dataverse (Dynamics 365 CRM)

> Integrate your application with the Microsoft Dataverse (Dynamics 365 CRM) API

## 🚀 Quickstart

Connect to Microsoft Dataverse with Nango and see data flow in 2 minutes.

<Steps>
  <Step id="create-integration" title="Create the integration">
    In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Microsoft Dataverse (Dynamics 365 CRM)*.
  </Step>

  <Step id="authorize-dataverse" title="Authorize Microsoft Dataverse">
    Go to [Connections](https://app.nango.dev/dev/connections) -> *Add Test Connection* -> *Authorize*, then enter your **Tenant ID** and **Environment URL**, and log in to Microsoft Dataverse. Later, you'll let your users do the same directly from your app.
  </Step>

  <Step id="call-the-api" title="Call the Microsoft Dataverse API">
    Let's make your first request to the Dataverse Web API (confirm the connected user's identity). Replace the placeholders below with your [Environment API key](/docs/reference/backend/http-api/api-keys), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

    <Tabs>
      <Tab title="cURL">
        ```bash theme={null}
        curl "https://api.nango.dev/proxy/api/data/v9.2/WhoAmI" \
          -H "Authorization: Bearer <NANGO-API-KEY>" \
          -H "Provider-Config-Key: <INTEGRATION-ID>" \
          -H "Connection-Id: <CONNECTION-ID>"
        ```
      </Tab>

      <Tab title="Node">
        Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

        ```typescript theme={null}
        import { Nango } from '@nangohq/node';

        const nango = new Nango({ apiKey: '<NANGO-API-KEY>' });

        const res = await nango.get({
            endpoint: '/api/data/v9.2/WhoAmI',
            providerConfigKey: '<INTEGRATION-ID>',
            connectionId: '<CONNECTION-ID>'
        });

        console.log(res.data);
        ```
      </Tab>
    </Tabs>

    Or fetch credentials with the [Node SDK](/docs/reference/backend/backend-sdk/node#get-a-connection-with-credentials) or [API](/docs/reference/backend/http-api/connections/get).

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.
  </Step>

  <Step id="implement-in-app" title="Implement Nango in your app">
    Follow our [quickstart](/docs/getting-started/quickstart) to integrate Nango in your app.

    To obtain your own production credentials, follow the setup guide linked below.
  </Step>
</Steps>

## 📚 Microsoft Dataverse integration guides

Nango maintained guides for common use cases.

* [How to register your own Microsoft Dataverse OAuth app](/docs/api-integrations/microsoft-dataverse/how-to-register-your-own-microsoft-dataverse-api-oauth-app)\
  Register an OAuth app with Microsoft Entra ID and obtain credentials to connect Microsoft Dataverse to Nango

* [How do I link my account?](/docs/api-integrations/microsoft-dataverse/connect)\
  Find your Tenant ID and Environment URL to connect Microsoft Dataverse

Official docs: [Use OAuth authentication with Microsoft Dataverse](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/authenticate-oauth)

## 🧩 Pre-built syncs & actions for Microsoft Dataverse

Enable them in your dashboard. Extend and customize to fit your needs.

### Others

| Function name | Description | Type | Source code |
| - | - | - | - |
| `associate-records` | Create a relationship link between two records via a navigation property. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/associate-records.ts) |
| `create-account` | Create an account. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-account.ts) |
| `create-appointment` | Create an appointment activity | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-appointment.ts) |
| `create-case` | Create a customer service case | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-case.ts) |
| `create-contact` | Create a contact. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-contact.ts) |
| `create-email` | Create an email activity record. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-email.ts) |
| `create-lead` | Create a lead. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-lead.ts) |
| `create-note` | Create a note attached to a parent record. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-note.ts) |
| `create-opportunity` | Create a sales opportunity | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-opportunity.ts) |
| `create-phone-call` | Create a phone call activity | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-phone-call.ts) |
| `create-record` | Create a record of any Dataverse entity from a field/value payload. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-record.ts) |
| `create-task` | Create a task. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/create-task.ts) |
| `delete-account` | Delete an account | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-account.ts) |
| `delete-case` | Delete a case | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-case.ts) |
| `delete-contact` | Delete a contact. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-contact.ts) |
| `delete-lead` | Delete a lead. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-lead.ts) |
| `delete-opportunity` | Delete an opportunity. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-opportunity.ts) |
| `delete-record` | Delete a record of any Dataverse entity by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/delete-record.ts) |
| `disassociate-records` | Remove a relationship link between two records via a navigation property. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/disassociate-records.ts) |
| `get-account` | Retrieve a single account by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-account.ts) |
| `get-appointment` | Retrieve a single appointment activity by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-appointment.ts) |
| `get-case` | Retrieve a single case by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-case.ts) |
| `get-contact` | Retrieve a single contact by id | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-contact.ts) |
| `get-email` | Retrieve a single email activity by id | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-email.ts) |
| `get-entity-definition` | Get metadata for a single entity by logical name, including its entity set name. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-entity-definition.ts) |
| `get-lead` | Retrieve a single lead by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-lead.ts) |
| `get-note` | Retrieve a single note by id | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-note.ts) |
| `get-opportunity` | Retrieve a single opportunity by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-opportunity.ts) |
| `get-phone-call` | Retrieve a single phone call activity by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-phone-call.ts) |
| `get-record` | Retrieve a single record of any Dataverse entity by id | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-record.ts) |
| `get-task` | Retrieve a single Dataverse task by its id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-task.ts) |
| `get-team` | Retrieve a single team by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-team.ts) |
| `get-user` | Retrieve a single system user by id. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/get-user.ts) |
| `list-accounts` | List accounts (companies/organizations) in Microsoft Dataverse. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-accounts.ts) |
| `list-appointments` | List Dataverse appointment activities. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-appointments.ts) |
| `list-cases` | List customer service cases (incidents). | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-cases.ts) |
| `list-contacts` | List contacts (people). | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-contacts.ts) |
| `list-emails` | List Dataverse email activities. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-emails.ts) |
| `list-entity-attributes` | List all fields (attributes) defined on a given Dataverse entity, including custom fields. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-entity-attributes.ts) |
| `list-entity-definitions` | List metadata for all entities (tables) defined in the org, including custom entities. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-entity-definitions.ts) |
| `list-leads` | List leads (unqualified prospects) from Microsoft Dataverse. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-leads.ts) |
| `list-notes` | List Dataverse notes (annotations), optionally scoped to a parent record. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-notes.ts) |
| `list-opportunities` | List sales opportunities. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-opportunities.ts) |
| `list-phone-calls` | List Dataverse phone call activities. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-phone-calls.ts) |
| `list-records` | List records of any Dataverse entity (standard or custom) with OData query support | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-records.ts) |
| `list-tasks` | List Dataverse tasks (activity records), with optional OData select, filter, orderby, and top controls. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-tasks.ts) |
| `list-teams` | List Dataverse teams (read-only). | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-teams.ts) |
| `list-users` | List Dataverse system users (read-only) | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/list-users.ts) |
| `query-records-fetchxml` | Query any Dataverse entity using a raw FetchXML query, for aggregations and joins beyond simple OData \$filter. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/query-records-fetchxml.ts) |
| `update-account` | Update an account's fields. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-account.ts) |
| `update-case` | Update a case's fields (e.g. change priority). Does not support resolving or cancelling a case. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-case.ts) |
| `update-contact` | Update a contact's fields (partial merge: only provided fields are changed) | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-contact.ts) |
| `update-lead` | Update a lead's fields. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-lead.ts) |
| `update-opportunity` | Update an opportunity's fields. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-opportunity.ts) |
| `update-record` | Update (partial merge) fields on an existing record of any Dataverse entity. | [Action](/docs/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/actions/update-record.ts) |
| `accounts` | Sync accounts (companies/organizations) from Microsoft Dataverse, incrementally, with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/accounts.ts) |
| `appointments` | Sync appointment activities from Microsoft Dataverse, incrementally by versionnumber, with a periodic full refresh (every 24h) to detect deletions such as appointments cascade-deleted with their parent record. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/appointments.ts) |
| `cases` | Incrementally sync customer service cases (Dataverse incidents) using a versionnumber cursor, with a delete-tracked full refresh every 24 hours | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/cases.ts) |
| `contacts` | Sync contacts (people) from Microsoft Dataverse incrementally, with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/contacts.ts) |
| `emails` | Sync email activities from Microsoft Dataverse, incrementally by versionnumber with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/emails.ts) |
| `leads` | Sync leads (unqualified prospects) from Microsoft Dataverse, incrementally by versionnumber, with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/leads.ts) |
| `notes` | Sync notes (annotations) from Microsoft Dataverse, incrementally by versionnumber, with a periodic delete-tracked full refresh. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/notes.ts) |
| `opportunities` | Sync sales opportunities from Microsoft Dataverse, incrementally by versionnumber with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/opportunities.ts) |
| `phone-calls` | Sync Microsoft Dataverse phone call activities, incrementally by `versionnumber`, with a periodic full crawl to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/phone-calls.ts) |
| `tasks` | Sync task activities from Microsoft Dataverse, incrementally on `versionnumber`, with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/tasks.ts) |
| `teams` | Sync Microsoft Dataverse teams incrementally by versionnumber, with a periodic full refresh to detect deletions. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/teams.ts) |
| `users` | Incrementally sync Microsoft Dataverse system users (systemusers), with a weekly full refresh to detect hard-deleted users. | [Sync](/docs/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/microsoft-dataverse/syncs/users.ts) |

***
