Skip to main content
ms-dynamics icon

Microsoft Dynamics 365 Connector

SourceAPI DocsRelease NotesConnector Changelog

Description

Microsoft Dynamics 365 is a product line of enterprise resource planning (ERP) and customer relationship management (CRM) intelligent business applications. This component provides the ability to query and modify records within the Microsoft Dynamics 365 platform.

API Documentation

Connections

OAuth 2.0 Client Credentials

key: clientCredentials

The OAuth 2.0 client credentials flow allows the creation of an Application User to send requests to Dynamics on behalf of an organization. Setting up a client credentials connection is a two-step process:

  1. Create an "App" in Azure.
  2. Create an "Application User" in Dynamics.

Prerequisites

  • An active Azure subscription with permission to register applications in Azure Portal.
  • Microsoft Dynamics 365 administrator access to the Power Platform admin center, including the ability to manage Application Users and assign Security Roles.

Setup Steps

Create An App In Microsoft Azure
  1. Log in to Azure Portal.
  2. Select App Registrations.
  3. Click + New Registration.
    • Supported Account Types can be Single Tenant.
    • No Redirect URI is necessary.
    • Click Register.
  4. Under API Permissions click + Add A Permission.
    • Select Dynamics CRM.
    • Check the user_impersonation permission.
    • Click Add Permissions.
  5. Under API Permissions click Grant Admin Consent For (Tenant) to consent to the requested permissions on behalf of the organization.
  6. Under Certificates & Secrets click + New Client Secret.
    • Provide a description and expiration date for the certificate.
    • Take note of the Value (not the Secret ID) of the client secret.
  7. Returning to the Overview page, take note of Application (Client) ID.
  8. From the Overview page, click Endpoints and take note of the OAuth 2.0 Token Endpoint (V2).

The Client Secret Value, Client ID, and Token Endpoint will be used in the connection configuration.

Add The App As An App User To Dynamics
  1. Log in to Power Platform Admin Center.
  2. Select Environments and choose the appropriate Dynamics environment.
  3. Select S2S Apps.
  4. Click + New App User.
    • Click + Add An App.
    • Choose the app created in Azure portal (above). The app can be located by entering the client ID noted previously.
    • Select the Dynamics tenant as the Business Unit.
    • Under Security Roles select System Administrator.
    • Click Create.

Configure the Connection

Create a connection of type OAuth 2.0 Client Credentials.

  • Enter the Token Endpoint noted above as the Token URL.
  • Enter the Client ID and Client Secret Value noted above.
  • Log in to Dynamics and take note of the Dynamics URL.
    • Enter that Dynamics URL as the Web API URL. It should look like https://REPLACE-ME.crm.dynamics.com/.
    • Under scopes, enter the Dynamics URL with .default appended to it. Use the format https://REPLACE-ME.crm.dynamics.com/.default.
InputNotesExample
Client ID

Generated when registering an application in the Azure portal.

Client secret value

Generated when registering an application in the Azure portal.

Scopes

The OAuth 2.0 scope. Use the Dynamics Web API URL with '/.default' appended (e.g., https://my-org.api.crm.dynamics.com/.default).

https://REPLACE-ME.api.crm.dynamics.com/.default
Token URL

The OAuth 2.0 token endpoint. This can be found in the Azure portal under the app's 'Endpoints' menu.

https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/oauth2/v2.0/token
Web API URL

The organization's Microsoft Dynamics 365 Web API URL.

https://REPLACE-ME.api.crm.dynamics.com/

OAuth 2.0 Authorization Code

key: oauth2

The OAuth 2.0 authorization code flow allows an end user to grant the integration permission to interact with Dynamics on their behalf.

Prerequisites

  • An active Azure Portal account with permission to register applications.
  • Access to a Microsoft Dynamics 365 environment.

Setup Steps

  1. Log in to Azure Portal.
  2. Select App Registrations.
  3. Click + New Registration.
    • Supported Account Types should be Multi-tenant when end customers will authenticate with their own Dynamics instance, or Single-tenant when authenticating with a single Dynamics instance.
    • Under Redirect URI enter https://oauth2.prismatic.io/callback.
    • Click Register.
  4. Under API Permissions click + Add A Permission.
    • Select Dynamics CRM.
    • Check the user_impersonation permission.
    • Click Add Permissions.
    • Additionally, ensure the offline_access scope is included in the app registration. It is essential to maintain the OAuth connection and receive refresh tokens. Without it, end users will need to re-authenticate every hour.
  5. Under Certificates & Secrets click + New Client Secret.
    • Provide a description and expiration date for the certificate.
    • Take note of the Value (not the Secret ID) of the client secret.
  6. Returning to the Overview page, take note of Application (Client) ID.

Configure the Connection

Create a connection of type OAuth 2.0 Authorization Code.

  • Enter the Client ID and Client Secret noted above.
  • Log in to Dynamics and take note of the Dynamics URL.
    • Enter that Dynamics URL as the Web API URL. It should look like https://REPLACE-ME.crm.dynamics.com/.
    • Under scopes, enter the following, replacing the URL with the Dynamics URL: https://REPLACE-ME.crm.dynamics.com/user_impersonation offline_access.

Microsoft requires Azure AD app registrations used in multi-tenant deployments to complete a publisher verification process. This review confirms the app developer's identity, giving end users confidence that they are authorizing a legitimate, verified application.

Azure AD app registrations have two distinct verification concepts that affect how users experience the authentication flow.

Publisher Verification

Complete publisher verification before deploying to end users. Without it, the Microsoft consent screen displays "Unverified" next to the app name. This reduces user trust and may prevent users in organizations with strict Azure AD policies from being able to authorize the app at all.

To verify the publisher:

  1. Ensure the organization has a Microsoft Partner Network (MPN) account
  2. In the Microsoft Entra Admin Center, open the app registration
  3. Under Branding & properties, click Add a verified publisher
  4. Enter the MPN ID and confirm

Once verified, the consent screen displays the organization name with a verified badge instead of "Unverified."

Apps requesting application permissions (permissions that act without a signed-in user) or high-privilege delegated permissions require admin consent before any user in a Microsoft 365 tenant can authenticate. Without admin consent, users see a "Need admin approval" error.

A tenant administrator can grant consent using either method:

Method 1: Admin Consent URL:

Navigate to the following URL, replacing {tenant} with the Directory tenant ID and {client_id} with the Application client ID:

https://login.microsoftonline.com/{tenant}/adminconsent?client_id={client_id}

Method 2: Microsoft Entra Admin Center:

  1. Navigate to Microsoft Entra Admin CenterEnterprise applications
  2. Select the app registration
  3. Under Permissions, click Grant admin consent for [organization name]
Delegated vs. Application Permissions

Delegated permissions (user-level) typically do not require admin consent unless they are classified as high privilege. Application permissions always require admin consent. Review the Microsoft Graph permissions reference to identify which permissions require consent.

InputNotesExample
Authorize URL

The OAuth 2.0 Authorization URL for Microsoft Dynamics 365.

https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
Client ID

Generated when registering an application in the Azure portal.

Client Secret

Generated when registering an application in the Azure portal.

Scopes

A space-delimited set of one or more scopes to get the user's permission to access.

https://REPLACE-ME.crm.dynamics.com/user_impersonation offline_access
Token URL

The OAuth 2.0 Token URL for Microsoft Dynamics 365.

https://login.microsoftonline.com/organizations/oauth2/v2.0/token
Web API URL

The organization's Microsoft Dynamics 365 Web API URL.

https://my-org.api.crm.dynamics.com/

Triggers

New and Updated Records

Checks for new and updated records of a Microsoft Dynamics 365 entity type on a configured schedule. | key: pollChangesTrigger

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Filter Expression

The filter expression used for querying entity collections.

Country_Region_Code eq 'ES' and Payment_Terms_Code eq '14 DAYS'
Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the first poll returns all records created or modified on or after this date.

2026-01-01
Show New Records

When enabled, newly created records will be included in the trigger output.

true
Show Updated Records

When enabled, records updated after the last poll will be included in the trigger output.

true

Retrieves existing and ongoing record changes for a specified Microsoft Dynamics 365 entity type. Load history once, check for changes on a schedule, or both.

How It Works

The trigger operates by:

  1. Running on the configured schedule (e.g., every 5 minutes)
  2. Querying the Dataverse Web API for records whose modifiedon timestamp is later than its stored position, sorted by modifiedon ascending so the filter and the sort key match
  3. Categorizing each record as created or updated by comparing its createdon timestamp against that same position
  4. Storing the newest modifiedon it read as its new position, so the next recurrence resumes from the last record it actually saw rather than from the clock

Records are retrieved a page at a time and accumulated until the API reports no further pages, up to 100 pages per recurrence. Everything gathered that way is classified and reported together in that one recurrence.

The modifiedon comparison is strict, so a record already reported is not reported again on a later recurrence.

Show New Records and Show Updated Records filter what is reported, not what is queried. A record the query matched but neither switch admits still moves the position past itself, so it is not revisited.

The first recurrence

  • Look-back Date empty: the trigger stores the current time as its position and reports nothing. Incremental polling begins on the next recurrence.
  • Look-back Date set: the trigger starts from midnight UTC on that date and returns every record created or modified since, seeding each one exactly once.

The look-back date is consulted only while no position is stored, so setting it on an instance that has already run does not replay that instance's history. Entity Type, Filter Expression, Show New Records, and Show Updated Records all apply on that first recurrence exactly as they do on later ones; the historical load suppresses no input.

Batching

Batching is enabled per flow on this trigger. Once enabled, each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and the number of batches dispatched concurrently can both be overridden per instance. Raising concurrency increases the request volume sent to Microsoft Dynamics 365.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default to use the size this trigger ships with, or choose Custom batch size to set a specific size. Batch Concurrency is optional; leave it blank for no batch-level limit.

Enabling batching changes the payload a downstream step receives. With batching off a step reads data.created and data.updated; with batching on those arrays do not exist and data is a single changeType/record item, or an array of them (see Returned Data). Any step reading the older shape must be updated before batching is turned on. Because batching is per flow, this affects only that flow, not the component or other flows using the same trigger.

Batching splits the executions, not the fetch. The trigger still retrieves the full result set before dispatching batches.

Handing off to the schedule

The historical load has no upper bound of its own: it runs as an ordinary recurrence, so a record changed while it is running is picked up either by that recurrence or by the one after it. Once the load finishes, the trigger stores the newest modifiedon it read as its position, and the next recurrence resumes strictly after that value with every input applied, so the two ranges meet with no gap between them. No field in the payload marks the handoff.

The load finishes in a single recurrence whether or not batching is enabled, unless it reaches the 100-page ceiling, in which case it continues from its stored position on the following recurrence.

Returned Data

Fields shown are representative. The full response object includes additional properties.

What arrives in data depends on whether batching is enabled on the flow.

Without batching, data is a single object containing two arrays: created and updated.

Example Payload: batching disabled
{
"data": {
"created": [
{
"accountid": "b3c4d5e6-f7a8-4901-c234-5678901cdef0",
"name": "Adventure Works Cycles",
"accountnumber": "ACC-0003",
"createdon": "2026-05-22T14:30:00Z",
"modifiedon": "2026-05-22T14:30:00Z"
}
],
"updated": [
{
"accountid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Contoso Ltd. (Updated)",
"modifiedon": "2026-05-22T14:35:00Z"
}
]
}
}

With batching enabled, data holds one slice of the batch instead of those two arrays. Every record becomes its own item, shaped as changeType plus record. changeType is created or updated, and record is the Dataverse record.

With a batch size of 1, data is a single item.

Example Payload: batching enabled, batch size 1
{
"data": {
"changeType": "created",
"record": {
"accountid": "b3c4d5e6-f7a8-4901-c234-5678901cdef0",
"name": "Adventure Works Cycles",
"accountnumber": "ACC-0003",
"createdon": "2026-05-22T14:30:00Z",
"modifiedon": "2026-05-22T14:30:00Z"
}
}
}

With a batch size greater than 1, data is an array of those items.

Example Payload: batching enabled, batch size greater than 1
{
"data": [
{
"changeType": "created",
"record": {
"accountid": "b3c4d5e6-f7a8-4901-c234-5678901cdef0",
"name": "Adventure Works Cycles",
"accountnumber": "ACC-0003",
"createdon": "2026-05-22T14:30:00Z",
"modifiedon": "2026-05-22T14:30:00Z"
}
},
{
"changeType": "updated",
"record": {
"accountid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Contoso Ltd. (Updated)",
"modifiedon": "2026-05-22T14:35:00Z"
}
}
]
}

Notes

  • Both the modifiedon comparison and any Filter Expression are applied server-side through OData, so records that do not match are never transferred.
  • Dataverse returns up to 5,000 rows per page for standard tables, and the trigger reads at most 100 pages in one recurrence.
Example Payload for New and Updated Records
Loading…

Webhook

Receive and validate webhook requests from Microsoft Dynamics 365 for manually configured webhook subscriptions. | key: dynamicsWebhookTrigger

InputNotesExample
Webhook Authentication Key

Optional authentication key for incoming webhook requests. When set, requests must include this value in the '?code' query parameter (Microsoft Dynamics 'Webhook Key' authentication mode). Strongly recommended to prevent unauthorized event spoofing.

A Microsoft Dynamics 365 webhook can be configured to send information to a flow's webhook URL when server-side events occur (a "Contact" is created, an "Account" is updated, etc.).

How It Works

When a webhook is first registered, Microsoft Dynamics 365 sends a URL validation request with the x-ms-dynamics-request-name header set to URL_VALIDATION. This request is routed to the URL Validation / Heartbeat branch beneath the trigger. The trigger automatically responds with a 200 OK status to confirm the endpoint is reachable.

All subsequent event notifications are routed to the Event branch. The trigger automatically parses the JSON request body and extracts key fields from both the headers and payload, including:

Extracted Fields (5)
  • Organization: the Dynamics 365 tenant name (from the x-ms-dynamics-organization header)
  • Entity Name: the logical name of the entity that triggered the event (from the x-ms-dynamics-entity-name header)
  • Message Name: the name of the event (e.g., Create, Update, Delete)
  • Input Parameters: the entity data included in the event
  • Initiating User ID: the ID of the user whose action triggered the event

Branches

  • URL Validation / Heartbeat: the validation handshake. Microsoft Dynamics 365 sends a URL_VALIDATION request when a webhook is first registered (and periodically thereafter). The trigger auto-responds with a 200 OK; no business logic should be added on this branch.
  • Event: real notifications. All Create, Update, Delete, and other event messages flow through this branch. Business logic, downstream steps, and routing should be implemented here.

Event Types

Events are configured when registering the webhook step in the Dynamics 365 Plugin Registration Tool. Common events include:

  • Create: a record is created
  • Update: a record is modified
  • Delete: a record is removed

Refer to the Microsoft Dataverse webhook documentation for the complete list of supported messages and filtering options.

Returned Data

Example Payload (Event Branch)
{
"headers": {
"x-request-id": "4af10637-4ea2-e711-8122-000d3aa2331c",
"x-ms-dynamics-organization": "org-name",
"x-ms-dynamics-entity-name": "contact",
"x-ms-dynamics-request-name": "Update"
},
"bodyData": {
"MessageName": "Update",
"InitiatingUserId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"InputParameters": [
{
"key": "Target",
"value": {
"Attributes": [
{ "key": "firstname", "value": "James" },
{
"key": "contactid",
"value": "6d81597f-0f9f-e711-8122-000d3aa2331c"
}
],
"LogicalName": "contact"
}
}
]
},
"requestId": "4af10637-4ea2-e711-8122-000d3aa2331c",
"organization": "org-name",
"entityName": "contact",
"messageName": "Update",
"initiatingUserId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"inputParameters": [
{
"key": "Target",
"value": {
"Attributes": [
{ "key": "firstname", "value": "James" },
{
"key": "contactid",
"value": "6d81597f-0f9f-e711-8122-000d3aa2331c"
}
],
"LogicalName": "contact"
}
}
]
}

Notes

  • Webhook registration and step configuration are performed using the Plugin Registration Tool in Dynamics 365.
  • When the HTTP payload exceeds 256 KB, the x-ms-dynamics-msg-size-exceeded header is included and certain context properties (ParentContext, InputParameters, PreEntityImages, PostEntityImages) may be removed from the payload.
Example Payload for Webhook
Loading…

Data Sources

Select Attribute

Selects from all attributes for a specific entity in the Dynamics 365 CRM instance. | key: attributes | type: picklist

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Example Payload for Select Attribute
Loading…

Select Entity

Selects from all available entities in the Dynamics 365 CRM instance. | key: entities | type: picklist

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Include Custom Entities

When true, includes custom entities in the result.

true
Top Level Only

When true, includes only top-level entities and excludes child entities.

false
Example Payload for Select Entity
Loading…

Select Entity Objects

Returns a configurable subset of Dynamics 365 CRM entity types and their attributes for object selection. | key: getEntitiesMetaData | type: objectSelection

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Default Selected Entity Types

The names of the Entity Types to default in a selected state.

Account
Include All Custom Entity Types

When true, will include all Custom Entity Types, even those not included in Record Type Name Filter.

true
Include Only Top Level Record Types

When true, will include only Entity Types that are top-level, meaning not subtypes of other Types, regardless of other filters.

false
Entity Type Filter

The names or labels of the Entity Types to include; if blank then all types are included. Uses case-insensitive matching.

Account
Example Payload for Select Entity Objects
Loading…

Select Entity Type

Lists all available entity types in the Dynamics 365 CRM instance. | key: entityTypes | type: picklist

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Include Custom Entities

When true, includes custom entities in the result.

true
Top Level Only

When true, includes only top-level entities and excludes child entities.

false
Example Payload for Select Entity Type
Loading…

Actions

Create Attribute

Creates a CRM attribute on an entity. | key: createAttribute

InputNotesExample
Attribute Body

The JSON payload describing the attribute to create or update.

{
  "AttributeType": "Money",
  "AttributeTypeName": {
    "Value": "MoneyType"
  },
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Enter the balance amount",
        "LanguageCode": 1033
      }
    ]
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Balance",
        "LanguageCode": 1033
      }
    ]
  },
  "RequiredLevel": {
    "Value": "None",
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
  },
  "SchemaName": "new_Balance",
  "@odata.type": "Microsoft.Dynamics.CRM.MoneyAttributeMetadata",
  "PrecisionSource": 2
}
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Example Payload for Create Attribute
Loading…

Create Entity

Creates a new Microsoft Dynamics 365 CRM entity record. | key: createEntity

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Dynamic Values
Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Field Value

The names of the fields and their values to use when creating/updating a record.

Example Payload for Create Entity
Loading…

Delete Entity

Deletes the specified Microsoft Dynamics 365 CRM entity record. | key: deleteEntity

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Example Payload for Delete Entity
Loading…

Get Attribute

Retrieves a single CRM attribute. | key: getAttribute

InputNotesExample
Attribute Key

The Attribute Metadata id.

54de467f-35f5-4d2e-b72c-25f8145611ef
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Expand Property Name

The OData $expand properties to include linked records inline.

Field Name

The OData $select fields to include in the result. Leave empty to return all fields.

Example Payload for Get Attribute
Loading…

Get Current User

Retrieves information about the currently logged-in CRM user. | key: getCurrentUser

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Example Payload for Get Current User
Loading…

Get Entities Metadata

Retrieves a configurable subset of Dynamics 365 CRM entity types and their attributes. | key: getEntitiesMetaData

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Default Selected Entity Types

The names of the Entity Types to default in a selected state.

Account
Include All Custom Entity Types

When true, will include all Custom Entity Types, even those not included in Record Type Name Filter.

true
Include Only Top Level Record Types

When true, will include only Entity Types that are top-level, meaning not subtypes of other Types, regardless of other filters.

false
Entity Type Filter

The names or labels of the Entity Types to include; if blank then all types are included. Uses case-insensitive matching.

Account
Example Payload for Get Entities Metadata
Loading…

Get Entity

Retrieves a single Microsoft Dynamics 365 CRM entity record. | key: getEntity

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Expand Property Name

The OData $expand properties to include linked records inline.

Field Name

The OData $select fields to include in the result. Leave empty to return all fields.

Example Payload for Get Entity
Loading…

Get Entity Metadata

Retrieves the definition of a Microsoft Dynamics 365 CRM entity. | key: getEntityMetaData

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Use Logical Name for Lookup

When true, looks up the entity by its logical name (e.g., 'account'). When false, looks up by entity set name.

true
Example Payload for Get Entity Metadata
Loading…

List Attributes

Lists all attributes for a specific entity in the Dynamics 365 CRM instance. | key: listAttributesAction

InputNotesExample
Attribute Type

The CRM attribute type to filter by, e.g., 'Money', 'String', 'Picklist'.

String
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Include Entity Details

When true, includes additional metadata such as description, ownership type, and validity flags.

false
Example Payload for List Attributes
Loading…

List Entities

Lists all available entities in the Dynamics 365 CRM instance with detailed metadata. | key: listEntitiesAction

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Include Custom Entities

When true, includes custom entities in the result.

true
Include Entity Details

When true, includes additional metadata such as description, ownership type, and validity flags.

false
Top Level Only

When true, includes only top-level entities and excludes child entities.

false
Example Payload for List Entities
Loading…

List Entity Types

Retrieves a paginated list of entity types available in the Microsoft Dynamics 365 environment. | key: listEntities

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Fetch All

When true, automatically fetches all pages of results using pagination.

false
Pagination

Max page size and next-link controls for paging through results.

Example Payload for List Entity Types
Loading…

Query Attributes

Queries CRM attributes that satisfy the filter expression. | key: queryAttributes

InputNotesExample
Attribute Type

The CRM attribute type to filter by, e.g., 'Money', 'String', 'Picklist'.

String
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Expand Property Name

The OData $expand properties to include linked records inline.

Field Name

The OData $select fields to include in the result. Leave empty to return all fields.

Filter Expression

The filter expression used for querying entity collections.

Country_Region_Code eq 'ES' and Payment_Terms_Code eq '14 DAYS'
Example Payload for Query Attributes
Loading…

Query Entities

Queries Microsoft Dynamics 365 CRM entity records that satisfy the filter expression. | key: queryEntities

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Expand Property Name

The OData $expand properties to include linked records inline.

Fetch All

When true, automatically fetches all pages of results using pagination.

false
Field Name

The OData $select fields to include in the result. Leave empty to return all fields.

Filter Expression

The filter expression used for querying entity collections.

Country_Region_Code eq 'ES' and Payment_Terms_Code eq '14 DAYS'
Next Page ID

The pagination cookie returned in 'oDataNextLink' from a previous request. Leave empty for the first page.

Order By Field Name

The OData $orderby fields. Suffix with 'desc' for descending order, e.g., 'createdon desc'.

Records Per Page

The number of record to retrieve per page.

100
Example Payload for Query Entities
Loading…

Raw Request

Sends a raw HTTP request to Microsoft Dynamics 365. | key: rawRequestV2

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/api/data/v9.2/accounts?$select=name), The base URL is already included (https://my-org.api.crm.dynamics.com). For example, to connect to https://my-org.api.crm.dynamics.com/api/data/v9.2/accounts?$select=name, only /api/data/v9.2/accounts?$select=name is entered in this field.

/api/data/v9.2/accounts?$select=name
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false
Example Payload for Raw Request
Loading…

Run Batch Operations

Performs multiple create, update, or delete operations on Microsoft Dynamics 365 CRM entity records. | key: batchEntityActions

InputNotesExample
Batch Actions

A list of up to 1000 create, update or delete actions to perform. Each action must have a 'collection' and an 'action' (create, update or delete). Create or update actions must also have 'data' and can include a boolean 'returnRepresentation' which determines if the full record should be returned after being created or updated. Update or delete actions must also have an entity key.

[{"collection":"msevtmgt_events","action":"update","key":"00000000-0000-0000-0000-000000000002","returnRepresentation":true,"data":{"msevtmgt_name":"Test Event 2","msevtmgt_eventtype":"100000002"}}]
Connection

The Microsoft Dynamics 365 connection to use.

Example Payload for Run Batch Operations
Loading…

Run Fetch XML Query

Executes a Fetch XML query against the Microsoft Dynamics 365 CRM instance. | key: fetchXml

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Impersonate User ID

Specifies the GUID of a user to impersonate when executing the query.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Include Annotations

The 'Prefer: odata.include-annotations' header value, e.g., '*' to include all annotations or 'OData.Community.Display.V1.FormattedValue' for formatted values only.

*
Pagination

Page number and next-page cookie for paging through results.

XML Query

An XML query string to use as a Fetch query in Microsoft Dynamics 365.

<fetch mapping="logical">
  <entity name="account">
    <attribute name="accountid"/>
    <attribute name="name"/>
  </entity>
</fetch>
Example Payload for Run Fetch XML Query
Loading…

Update Attribute

Updates an existing CRM attribute on an entity. | key: updateAttribute

InputNotesExample
Attribute Body

The JSON payload describing the attribute to create or update.

{
  "AttributeType": "Money",
  "AttributeTypeName": {
    "Value": "MoneyType"
  },
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Enter the balance amount",
        "LanguageCode": 1033
      }
    ]
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Balance",
        "LanguageCode": 1033
      }
    ]
  },
  "RequiredLevel": {
    "Value": "None",
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
  },
  "SchemaName": "new_Balance",
  "@odata.type": "Microsoft.Dynamics.CRM.MoneyAttributeMetadata",
  "PrecisionSource": 2
}
Connection

The Microsoft Dynamics 365 connection to use.

Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Example Payload for Update Attribute
Loading…

Update Entity

Updates a Microsoft Dynamics 365 CRM entity record. | key: updateEntity

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Dynamic Values
Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Field Value

The names of the fields and their values to use when creating/updating a record.

Example Payload for Update Entity
Loading…

Upsert Entity

Upserts a Microsoft Dynamics 365 CRM entity record. | key: upsertEntity

InputNotesExample
Connection

The Microsoft Dynamics 365 connection to use.

Dynamic Values
Entity ID

The unique identifier (GUID) of the entity record to operate on.

7d577253-3ef0-4a0a-bb7f-8335c2596e70
Entity Type

The type of Entity to query, usually a pluralized name.

Contacts
Field Value

The names of the fields and their values to use when creating/updating a record.

Example Payload for Upsert Entity
Loading…

Changelog

2026-09-14

Removed the Raw Request (Deprecated) action that is no longer in use; use Raw Request instead

2026-09-04

  • Added opt-in batching to the New and Updated Records polling trigger, dispatching each changed record individually or in configured batches so large backlogs drain in one recurrence; enabling it changes the shape a downstream step receives
  • Added an optional Look-back Date input to the New and Updated Records polling trigger for performing an initial sync of records; the initial sync begins on the first recurrence and backfills every record created or modified on or after the specified date, seeding each once. Leave it empty to begin incremental polling with no backfill
  • Fixed the New and Updated Records polling trigger permanently skipping records when a single recurrence matched more records than it could page through
  • Fixed the Webhook trigger rejecting test executions when a Webhook Authentication Key was configured
  • Updated the List Entity Types and Run Fetch XML Query actions to group their paging inputs into a Pagination structured object; Fetch All stays a top-level toggle
  • Added inline action calling support to the Get Attribute, Get Entity, Get Entity Metadata, and Get Current User actions for improved example output during configuration
  • Added output schemas to the Get Current User, Get Entity Metadata, Get Entities Metadata, List Attributes, List Entities, and List Entity Types actions for improved field mapping during configuration

2026-05-28

Added New and Updated Records polling trigger that checks for changes to any Microsoft Dynamics 365 entity via the modifiedon OData filter. Records are partitioned into created and updated buckets based on each record's createdon/modifiedon timestamps

2026-05-13

Various modernizations and documentation updates.

2026-05-14

Added bulk pagination support to list actions across entities, entity types, and queries, allowing users to fetch all pages of results in a single action invocation

2026-04-30

Updated spectral version.

2026-04-07

Added trigger documentation and global debug support across all actions for improved troubleshooting.

2026-03-31

Various modernizations and documentation updates.