Microsoft Dataverse (Dynamics 365 CRM)
Integrate your application with the Microsoft Dataverse (Dynamics 365 CRM) API
🚀 Quickstart
Connect to Microsoft Dataverse with Tenklo and see data flow in 2 minutes.
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Microsoft Dataverse (Dynamics 365 CRM).
Go to 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.
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, integration ID, and connection ID:
curl "https://api.tenklo.dev/proxy/api/data/v9.2/WhoAmI" \
-H "Authorization: Bearer <NANGO-API-KEY>" \
-H "Provider-Config-Key: <INTEGRATION-ID>" \
-H "Connection-Id: <CONNECTION-ID>"Or fetch credentials with the Node SDK or API.
✅ You're connected! Check the Logs tab in Tenklo to inspect requests.
Follow our quickstart to integrate Tenklo in your app.
To obtain your own production credentials, follow the setup guide linked below.
📚 Microsoft Dataverse integration guides
Tenklo maintained guides for common use cases.
-
How to register your own Microsoft Dataverse OAuth app
Register an OAuth app with Microsoft Entra ID and obtain credentials to connect Microsoft Dataverse to Tenklo -
How do I link my account?
Find your Tenant ID and Environment URL to connect Microsoft Dataverse
Official docs: Use OAuth authentication with Microsoft Dataverse
🧩 Pre-built syncs & actions for Microsoft Dataverse
Explore Nango-provided actions in your dashboard. Extend and customize them 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 | 🔗 Github |
create-account | Create an account. | Action | 🔗 Github |
create-appointment | Create an appointment activity | Action | 🔗 Github |
create-case | Create a customer service case | Action | 🔗 Github |
create-contact | Create a contact. | Action | 🔗 Github |
create-email | Create an email activity record. | Action | 🔗 Github |
create-lead | Create a lead. | Action | 🔗 Github |
create-note | Create a note attached to a parent record. | Action | 🔗 Github |
create-opportunity | Create a sales opportunity | Action | 🔗 Github |
create-phone-call | Create a phone call activity | Action | 🔗 Github |
create-record | Create a record of any Dataverse entity from a field/value payload. | Action | 🔗 Github |
create-task | Create a task. | Action | 🔗 Github |
delete-account | Delete an account | Action | 🔗 Github |
delete-case | Delete a case | Action | 🔗 Github |
delete-contact | Delete a contact. | Action | 🔗 Github |
delete-lead | Delete a lead. | Action | 🔗 Github |
delete-opportunity | Delete an opportunity. | Action | 🔗 Github |
delete-record | Delete a record of any Dataverse entity by id. | Action | 🔗 Github |
disassociate-records | Remove a relationship link between two records via a navigation property. | Action | 🔗 Github |
get-account | Retrieve a single account by id. | Action | 🔗 Github |
get-appointment | Retrieve a single appointment activity by id. | Action | 🔗 Github |
get-case | Retrieve a single case by id. | Action | 🔗 Github |
get-contact | Retrieve a single contact by id | Action | 🔗 Github |
get-email | Retrieve a single email activity by id | Action | 🔗 Github |
get-entity-definition | Get metadata for a single entity by logical name, including its entity set name. | Action | 🔗 Github |
get-lead | Retrieve a single lead by id. | Action | 🔗 Github |
get-note | Retrieve a single note by id | Action | 🔗 Github |
get-opportunity | Retrieve a single opportunity by id. | Action | 🔗 Github |
get-phone-call | Retrieve a single phone call activity by id. | Action | 🔗 Github |
get-record | Retrieve a single record of any Dataverse entity by id | Action | 🔗 Github |
get-task | Retrieve a single Dataverse task by its id. | Action | 🔗 Github |
get-team | Retrieve a single team by id. | Action | 🔗 Github |
get-user | Retrieve a single system user by id. | Action | 🔗 Github |
list-accounts | List accounts (companies/organizations) in Microsoft Dataverse. | Action | 🔗 Github |
list-appointments | List Dataverse appointment activities. | Action | 🔗 Github |
list-cases | List customer service cases (incidents). | Action | 🔗 Github |
list-contacts | List contacts (people). | Action | 🔗 Github |
list-emails | List Dataverse email activities. | Action | 🔗 Github |
list-entity-attributes | List all fields (attributes) defined on a given Dataverse entity, including custom fields. | Action | 🔗 Github |
list-entity-definitions | List metadata for all entities (tables) defined in the org, including custom entities. | Action | 🔗 Github |
list-leads | List leads (unqualified prospects) from Microsoft Dataverse. | Action | 🔗 Github |
list-notes | List Dataverse notes (annotations), optionally scoped to a parent record. | Action | 🔗 Github |
list-opportunities | List sales opportunities. | Action | 🔗 Github |
list-phone-calls | List Dataverse phone call activities. | Action | 🔗 Github |
list-records | List records of any Dataverse entity (standard or custom) with OData query support | Action | 🔗 Github |
list-tasks | List Dataverse tasks (activity records), with optional OData select, filter, orderby, and top controls. | Action | 🔗 Github |
list-teams | List Dataverse teams (read-only). | Action | 🔗 Github |
list-users | List Dataverse system users (read-only) | Action | 🔗 Github |
query-records-fetchxml | Query any Dataverse entity using a raw FetchXML query, for aggregations and joins beyond simple OData $filter. | Action | 🔗 Github |
update-account | Update an account's fields. | Action | 🔗 Github |
update-case | Update a case's fields (e.g. change priority). Does not support resolving or cancelling a case. | Action | 🔗 Github |
update-contact | Update a contact's fields (partial merge: only provided fields are changed) | Action | 🔗 Github |
update-lead | Update a lead's fields. | Action | 🔗 Github |
update-opportunity | Update an opportunity's fields. | Action | 🔗 Github |
update-record | Update (partial merge) fields on an existing record of any Dataverse entity. | Action | 🔗 Github |
accounts | Sync accounts (companies/organizations) from Microsoft Dataverse, incrementally, with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
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 | 🔗 Github |
cases | Incrementally sync customer service cases (Dataverse incidents) using a versionnumber cursor, with a delete-tracked full refresh every 24 hours | Sync | 🔗 Github |
contacts | Sync contacts (people) from Microsoft Dataverse incrementally, with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
emails | Sync email activities from Microsoft Dataverse, incrementally by versionnumber with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
leads | Sync leads (unqualified prospects) from Microsoft Dataverse, incrementally by versionnumber, with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
notes | Sync notes (annotations) from Microsoft Dataverse, incrementally by versionnumber, with a periodic delete-tracked full refresh. | Sync | 🔗 Github |
opportunities | Sync sales opportunities from Microsoft Dataverse, incrementally by versionnumber with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
phone-calls | Sync Microsoft Dataverse phone call activities, incrementally by versionnumber, with a periodic full crawl to detect deletions. | Sync | 🔗 Github |
tasks | Sync task activities from Microsoft Dataverse, incrementally on versionnumber, with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
teams | Sync Microsoft Dataverse teams incrementally by versionnumber, with a periodic full refresh to detect deletions. | Sync | 🔗 Github |
users | Incrementally sync Microsoft Dataverse system users (systemusers), with a weekly full refresh to detect hard-deleted users. | Sync | 🔗 Github |