Microsoft Dynamics CRM

The Microsoft Dynamics CRM v2 Component is designed to use Microsoft’s web API.

Credentials

Microsoft Dynamics CRM APIs use OAuth 2.0.

During credentials creation, you would need to:

  • Select OAuth2 drop-down list Type.

  • Select the existing Auth client from the drop-down list. Choose Auth client or create the new one. To create the client, you should specify the following fields:

Field name Mandatory Description

Name

true

Your Auth client's name.

Client ID

true

Your OAuth client ID.

Client secret

true

Your OAuth client secret.

Authorization endpoint

true

Formatted as; https://login.windows.net/common/oauth2/authorize?resource=https://org1.crm4.dynamics.com/. Where org1.crm4.dynamics.com is the URL of your MS Dynamic CRM organization.

Token endpoint

true

Formatted as; https://login.windows.net/common/oauth2/token.

Complete the following process:

  1. Name your credential. Provide a name for your credentials.

  2. Supply a base URL. This field is required. It indicates what URL base needs to be used. Example https://org1.crm4.dynamics.com/api/data/v9.2 or https://org1.crm4.dynamics.com/api/data (without version).

  3. Nominate an API version. This field is optional. The API version to use. This field must be formatted as vXX.XX. By default, this value is set to v9.2.

  4. Click on Authenticate. This link will take you to Microsoft Dynamics to sign in and provide permission to access your service to the platform.

  5. Click on Verify to verify your credentials

  6. Click on Save to save your credentials

Triggers

Get new and updated objects polling

Retrieve all the updated or created objects within a given time range.

Configuration fields

Object type

A required drop-down option. Select an object-type on which to poll. For example, Accounts.

Emit behavior

A required drop-down option. The options are:

Emit page

ALL values found will be emitted in one array results.

Emit individually

EACH object found will be emitted individually.

Size of polling page

An optional string value. It indicates the size of pages to be fetched. Defaults to odata.maxpagesize preference value equals 5000.

Process single page per execution

This checkbox indicates that if the number of changed records exceeds the maximum number of results in a page, wait until the subsequent flow starts to fetch the next page instead of fetching the next page immediately.

Start time

An optional string value. The timestamp, in ISO 8601 format, to start polling from (inclusive). The default value is the Unix epoch (January 1, 1970, at 00:00.000).

End time

An optional string value. An inclusive timestamp, in ISO 8601 format, at which to end. The default value is never.

Timestamp field to poll on

An optional string value. This field can be either Last modified or Created dates (updated or new objects, respectively). Defaults to Last modified.

Input metadata

There is no input metadata.

Output metadata

The output metadata depends on the Object type and Emit behavior fields' settings. If Emit behavior is set to Emit page, an object with property results that contains an array of selected objects will be returned. If it is set to Emit individually, the metadata for the selected object type will be returned.

Actions

Lookup objects (plural)

Perform a lookup on a set of objects by a defined criteria list. The output can be emitted in different ways.

Configuration fields

Object Type

A required drop-down option. Object-type on which to lookup. For example, Contacts.

Emit Behavior

A required drop-down option. Defines how result objects will be emitted, one of Emit all, Emit page, or Emit individually.

Input metadata

Search criteria

This is a required array of strings. Use search terms to filter objects. Search terms are arrays that will be used as values for the filter param of search. By default, search mapping is configured to combine all search terms with the AND logical operator. If you want to use another behavior, proceed to advanced mode.

An example search criterion is shown below:

[{ fieldName: 'createdon', operator: 'gt', fieldValue: '2022-08-28T14:27:45Z' }, { fieldName: '_primarycontactid_value', operator: 'eq', fieldValue: 'd1bf9a01-b056-e711-abaa-00155d701c02' }]

If the chosen Emit behavior is Emit page, additional fields will be added:

Page number

An integer that indicates the number of pages fetched. Defaults to 0.

Page size

An integer that indicates the number of objects per page. The value can range from 0 to 5000.

Output metadata

Emit all

An object with results that has an array as its value.

Emit page

An object with results that has an array as its value, provided Page size is greater than 0. The totalCountOfMatchingResults key contains the total number of results (not just on the page) that match the search criteria, provided Page size equals 0.

Emit individually

Each object will fill the entire message.

Lookup object (at most one)

Perform a lookup on a single object by a selected field.

Configuration fields

Object type

A required drop-down option. The object-type on which to lookup. For example, Users.

Lookup criteria

A required drop-down option. A list of object parameters by which the object could be searched.

Allow criteria to be omitted

An optional (if the Lookup criteria value field is selected) boolean value.

Allow zero results

An optional boolean value. When selected, if the object is not found, an empty object will be returned instead of throwing an error.

Input metadata

Lookup criteria value

A required (unless Allow criteria to be omitted is selected) string. A value for unique search criteria in the Lookup criteria configuration field.

Output metadata

Object with the results of the lookup as value.

Delete object by ID

Delete a single object by its ID.

Configuration fields

Object type

A required string value. Object-type on which to lookup. For example, Accounts.

Input metadata

ID value

A required string value. Value for ID of the object to delete.

Output metadata

ID

A required string value. The ID of the deleted object.

Make raw request

Executes a custom request.

Configuration fields

Don’t throw an error on 404 response

An optional boolean value. Do not treat 404 HTTP responses as errors. Defaults to false.

Input metadata

URL

A required string value. Path of the resource relative to the base URL.

Method

A required string value. HTTP verb to use in the request, one of GET, POST, PUT, PATCH, DELETE.

Headers

An optional object. Headers of the request to send.

Request body

An optional object. Body of the request to send.

Output metadata

Status code

A required integer value. The HTTP status code of the response.

HTTP headers

A required object. The HTTP headers of the response.

Response body

An optional object. HTTP response body.

Extract raw system metadata

This action reads the XML document located at /api/data//$metadata and places the raw XML contents into either an attachment or a JSON string.

Configuration fields

Output

A required drop-down option. Where the fetched metadata should be placed

Input metadata

There is no input metadata

Output metadata

Depends on the selected output:

As attachment
content-type

A required string value. Hard-coded to application/xml

type

A required string value. Hard coded to .xml

size

A required integer value. The length of the attachment in bytes

url

A required string value. Maester URL with the contents

In body
metadata

A required string value. An XML string with the retrieved contents.

Limitations

  • Output metadata for the Lookup object (at most one) action can be inaccurate because:

    1. Some fields may have a different name, as extra symbols could be added. For example, ownerid will look like _ownerid_value.

    2. The Microsoft schema has many data types. Many of these are not supported by the Integrations platform, so they are set to string.