Dynamics 365 Sales
Read and write Dynamics 365 Sales accounts, contacts, leads, opportunities, quotes, orders, invoices and activities through the Dataverse Web API, plus any table and metadata.
Connect the Dynamics 365 sales pipeline and order-to-cash records with ERP, marketing and service systems.
Source actions
29
Destination actions
23
Data types
16
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
accounts
- Create accountDestinationNot retried automatically
Creates a account and returns the new row.
- Get accountSource
One account by ID.
- List accountsSourceIncremental
Accounts with all columns (or selected columns), formatted values and custom columns.
- Update accountDestinationDuplicate protected
Updates mapped columns of an existing account (If-Match: * prevents an accidental create).
attributes
- List columnsSource
Column metadata for a table: logical name, type, custom flag, requirement level and create/update validity.
contacts
- Create contactDestinationNot retried automatically
Creates a contact and returns the new row.
- Get contactSource
One contact by ID.
- List contactsSourceIncremental
Contacts with all columns (or selected columns), formatted values and custom columns.
- Update contactDestinationDuplicate protected
Updates mapped columns of an existing contact (If-Match: * prevents an accidental create).
entity definitions
- List tablesSource
Table metadata: logical name, entity set name, primary key and custom flag.
invoices
- Create invoiceDestinationNot retried automatically
Creates a invoice and returns the new row.
- Get invoiceSource
One invoice by ID.
- List invoicesSourceIncremental
Invoices with all columns (or selected columns), formatted values and custom columns.
- Update invoiceDestinationDuplicate protected
Updates mapped columns of an existing invoice (If-Match: * prevents an accidental create).
leads
- Create leadDestinationNot retried automatically
Creates a lead and returns the new row.
- Get leadSource
One lead by ID.
- List leadsSourceIncremental
Leads with all columns (or selected columns), formatted values and custom columns.
- Update leadDestinationDuplicate protected
Updates mapped columns of an existing lead (If-Match: * prevents an accidental create).
opportunities
- Create opportunityDestinationNot retried automatically
Creates a opportunity and returns the new row.
- Get opportunitySource
One opportunity by ID.
- List opportunitiesSourceIncremental
Opportunities with all columns (or selected columns), formatted values and custom columns.
- Update opportunityDestinationDuplicate protected
Updates mapped columns of an existing opportunity (If-Match: * prevents an accidental create).
opportunity products
- Create opportunity productDestinationNot retried automatically
Creates a opportunity product and returns the new row.
- Get opportunity productSource
One opportunity product by ID.
- List opportunity productsSourceIncremental
Opportunity products with all columns (or selected columns), formatted values and custom columns.
- Update opportunity productDestinationDuplicate protected
Updates mapped columns of an existing opportunity product (If-Match: * prevents an accidental create).
phone calls
- Create phone callDestinationNot retried automatically
Creates a phone call and returns the new row.
- Get phone callSource
One phone call by ID.
- List phone callsSourceIncremental
Phone calls with all columns (or selected columns), formatted values and custom columns.
- Update phone callDestinationDuplicate protected
Updates mapped columns of an existing phone call (If-Match: * prevents an accidental create).
products
- Get productSource
One product by ID.
- List productsSourceIncremental
Products with all columns (or selected columns), formatted values and custom columns.
quotes
- Create quoteDestinationNot retried automatically
Creates a quote and returns the new row.
- Get quoteSource
One quote by ID.
- List quotesSourceIncremental
Quotes with all columns (or selected columns), formatted values and custom columns.
- Update quoteDestinationDuplicate protected
Updates mapped columns of an existing quote (If-Match: * prevents an accidental create).
records
- Create table rowDestinationNot retried automatically
Creates a row in any table.
- Get table rowSource
One row of any table by ID.
- List table rowsSourceIncremental
Rows of any table by entity set name, including custom tables.
- Update table rowDestinationDuplicate protected
Updates columns of an existing row in any table (If-Match: * prevents create).
- Upsert table row by alternate keyDestinationDuplicate protected
Creates or updates a row addressed by an alternate key, for example accounts(accountnumber='A-100'). Alternate key columns are not sent in the body.
sales orders
- Create orderDestinationNot retried automatically
Creates a order and returns the new row.
- Get orderSource
One order by ID.
- List ordersSourceIncremental
Orders with all columns (or selected columns), formatted values and custom columns.
- Update orderDestinationDuplicate protected
Updates mapped columns of an existing order (If-Match: * prevents an accidental create).
system users
- Get userSource
One user by ID.
- List usersSourceIncremental
Users with all columns (or selected columns), formatted values and custom columns.
tasks
- Create taskDestinationNot retried automatically
Creates a task and returns the new row.
- Get taskSource
One task by ID.
- List tasksSourceIncremental
Tasks with all columns (or selected columns), formatted values and custom columns.
- Update taskDestinationDuplicate protected
Updates mapped columns of an existing task (If-Match: * prevents an accidental create).
whoami
- Who am ISource
Signed-in user, business unit and organization IDs.
Authentication
Microsoft Entra OAuth app (delegated) with a refresh token
Plans and access
Dynamics 365 Sales Enterprise, Premium or Professional; Dataverse Web API is included. Calls act as the user who authorised the Microsoft Entra application (delegated user_impersonation) and follow that user's security roles.
Test environment
Use a sandbox or trial environment; the API is identical.
Rate limits
Service protection limits per user per web server: 6,000 requests and 20 minutes of execution time in a 5-minute sliding window, 52 concurrent requests; HTTP 429 with Retry-After.
Provider events
Dataverse webhooks and Azure Service Bus registrations through plug-in steps. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Delegated OAuth (refresh token) is used because the client-credentials scope must name the environment URL, which the runtime cannot template; application users are not supported yet.
- Government clouds (crm9 GCC, microsoftdynamics.us, China) are not supported.
- Contact preference columns (donotemail, donotbulkemail, donotphone, donotpostalmail, donotfax, msdyn_gdproptout) are read-only unless the explicit inputs are mapped.
- Lead qualification, opportunity win/lose, order fulfilment and other actions (bound functions) are not automated; state changes go through statecode/statuscode columns only.
- Creates have no idempotency key; uncertain creates are not repeated. Updates use If-Match: * so they never create; upserts by alternate key converge.
- $filter is built only from validated column names, operators and literal values.
- Deletes and associations through collection-valued navigation properties are not automated.