Scribe Connector For Microsoft Dynamics 365 / CRM

Use the Scribe Connector for Microsoft Dynamics 365 / CRM to replicate or integrate Microsoft Dynamics 365 data into other database or reporting systems.

This Connector is compatible with Microsoft Dynamics CRM.

Connector Specifications


Agent Types

On Premise




Replication Services





Integration Services





Migration Services












This Connector is available from the Scribe Online Marketplace. See Marketplace Scribe Certified Connectors for more information.

Setup Considerations

Microsoft Dynamics 365 Or Microsoft Dynamics CRM Versions

Scribe Online requires a Microsoft Dynamics 365 or Microsoft Dynamics CRM Organization with one of the following versions of Microsoft Dynamics 365 or Microsoft Dynamics CRM:

If your company is considering adding Microsoft Dynamics 365 to use with Scribe Online, you can obtain a Microsoft Dynamics 365 trial version. For more information about Microsoft Dynamics 365, talk to your Microsoft reseller or see the Microsoft Dynamics 365 website at http:\\


Your Microsoft Dynamics 365 account must have appropriate permissions to allow Scribe Online to perform Create, Read, Update, Delete, and Batch or non-Batch operations. Contact your Microsoft Dynamics 365 administrator for assistance.

Run As User

Microsoft Dynamics 365 provides the ability for a user to perform all operations as if a different user were performing them. In the Connection, this alternate user is the Run As User. The user named in the User ID field is the "login user".

Assume that as the login user, you have administrator credentials, but you set the Run As User to be a salesperson. You then run a Solution that imports contacts. In this case, all the contacts appear to have been entered by the Run As User. In addition, all operations run in the context of the roles and privileges held by the Run As User.

Selecting An Agent Type For Microsoft Dynamics 365

Refer to Scribe Online Agents for information on available Agent types and how to select the best Agent for your Solution.

Connecting To Microsoft Dynamics 365

  1. Select More > Connections from the menu.
  2. From the Connections page select Add to open the Add a New Connection dialog.
  3. Select the Connector from the drop-down list in the Connection Type field, and then enter the following information for this Connection:
  4. URL — The URL (web address) for Microsoft Dynamics 365. This URL varies depending on the type of deployment selected.
  5. User ID/Password — User ID and password requirements vary depending on the Deployment type selected.
  6. Organization — The Microsoft Dynamics 365 or Microsoft Dynamics CRM Organization you want to access. Select Browse to have Scribe Online determine the Organization associated with these Microsoft Dynamics 365 or Dynamics CRM credentials.

    The Microsoft Dynamics 365-friendly Organization name is the Organization name that appears in the upper right hand corner of Dynamics 365. This name is case-sensitive.

  7. Run As User ID — Optionally, specify the valid User ID of a user to serve as the Run As User.
  8. Bulk Concurrent Calls — Number of simultaneous calls to the Microsoft Dynamics 365 API when Batch Processing is enabled for a target operation, such as Delete. Default is 2, minimum is 1, and maximum is 32. Setting to 0 disables the Test button. Setting to a value higher than 32 defaults to 32, but continues to display the higher number.

    Receiving either of the following errors, is an indication that the number of calls or threads is too high and you should decrease this number.

    • Server busy
    • The following error has occurred in the Dynamics 365 Connector: System.ObjectDisposedException: Cannot access a disposed object.
  9. Bulk Batch Size — Maximum number of records to include in a single call to the Microsoft Dynamics 365 API when Batch Processing is enabled for a target operation. Default is 500, minimum is 1, and maximum is 1000. Setting to 0 disables the Test button. Setting to a value higher than 1000 defaults to 1000, but continues to display the higher number.

    Receiving Timeout errors is an indication that the number of records per call may be too high and you should decrease this number.

  10. Include Picklist Display Names select this option if you want to include the display names for any picklist, status, or state fields that you are replicating. When the entity is recreated, Scribe Online adds a new field in the format fieldname _displayname for each qualifying field, where _displayname is the text description rather than the numeric value.

    See Picklists below for more information.

  11. Select Test to ensure that the Agent can connect to your database. Be sure to test the Connection against all Agents that use this Connection. See Testing Connections.
  12. Select OK to save the Connection.

Metadata Notes

Custom Decimal Fields

When adding custom decimal fields to entities in Microsoft Dynamics 365 with a precision of 0, the precision is not being honored.


In Microsoft Dynamics 365, some fields are generated via a picklist. Picklists include both a text value that displays in Microsoft Dynamics 365 and an internal code. By default, Scribe Online uses the text value when running a Solution. However, you can choose to exclude the text value that displays in the Microsoft Dynamics 365 interface by disabling the Include Picklist Display Names option in the Microsoft Dynamics 365 Connection configuration. When this option is enabled, an additional field is created in your Microsoft Dynamics 365 datastore to contain the text value.

For example, if you have a picklist field, shippingmethod, where the picklist values include available shipping methods of DHL, FedEx, UPS, or USPS, and the Include Picklist Display Names option is enabled, both the picklist value and the picklist_displayname columns display for that entity in the database, as shown:

Picklist value shippingmethod _displayname









Including Picklist Display Names

When you create a new Microsoft Dynamics 365 Connection, the Include Picklist Display Names option is selected by default. Picklist, state, and status fields include a _displayname column. You can choose to include or exclude the _displayname by editing the Connection.

  1. From the Connections page, edit the Microsoft Dynamics 365 Connection you want to change.
  2. Select Include Picklist Display Names.

    To exclude the _displayname, make sure this option is not selected.

  3. Select Test and then select OK to save the changes to the Connection.

Scribe Online may be considerably slower the first time you run the Solution after adding or removing picklist names.

Changing Picklist Entities

When you make changes in Microsoft Dynamics 365 to entities with picklists, the source and target are affected as follows:

If you change the value of a picklist field for any records within Microsoft Dynamics 365 after a replication runs, the display name changes are not reflected in previously replicated records. To properly replicate changed picklist values, drop the table in the target database. The next time the replication runs, the table is recreated with the new display names.

Using Picklists With Integration Solutions

When using picklist values with Integration Solutions, because the display names are not actual fields in the source or target entity, the following caveats apply:

Ignored Entities

The following entities are not available through the Microsoft Dynamics 365 / CRM Connector.

Ignored Microsoft Dynamics 365 Entities

















































Microsoft Dynamics 365 / CRM Connection As RS Source

Microsoft Dynamics 365 can be used as a data source for Replication Services Solutions. See Managing Scribe Online RS Solutions.

For information about using Microsoft Dynamics 365 with Scribe Online Replication Solutions, see Selecting Source Entities For Replication Solutions

Recommended Entities

When you select the Recommended entities option in the RS Solution, Scribe Online replicates all entities for which you have the appropriate permissions, including custom entities, that meet the following criteria:

Entities Not In Recommended List

When you select the Recommended entities option in the RS Solution, the entities below are not included, but can be replicated if you use the Select All option or you specifically select them yourself using the Selected option.

Microsoft Dynamics 365 Entities Not Included In Recommended List



























































































Storage Guidelines For Scribe Online RS

The amount of storage required to replicate to a Microsoft SQL Server Server database depends on the amount of data you are replicating. While Scribe cannot provide precise numbers, the following examples may provide guidelines for you to determine your site's requirements:

Deleted Records In Microsoft Dynamics 365

Replicated Entities

Custom Objects

During replication, Scribe Online automatically creates any corresponding tables for custom entities in the target datastore. Select the entities you want to replicate from the Select Source Entities option on the Replication Solution page.

If your Microsoft Dynamics 365 organization contains custom entities:

When you create a custom entity in Microsoft Dynamics 365, a default prefix of new_ is added to the entity name. However, you can change the name of the default prefix within Microsoft Dynamics 365. If you are using custom entities or fields, be sure you know the custom prefix name and use that name to search for your custom entities. For more information, see your Microsoft Dynamics 365 Administrator.

Microsoft Dynamics 365 / CRM Connection As IS/MS Source


When using a Native Query Block with FetchXML or a standard Query Block to return related entities, only the first 1000 child entities can be returned for a single parent record.


The Microsoft Dynamics 365 / CRM Connector supports using the FetchXML query language in a Native Query Block to create customized queries for Microsoft Dynamics 365 / CRM entity records and associated child records. The query can be as simple or complex as you need it to be; however, it should return a single result set.

After entering the FetchXML query, you must select Test to validate the query. Invalid XML is not accepted by the Connector.

You should understand the FetchXML query language before attempting to use the Native Query Block to access your Microsoft Dynamics 365 / CRM data. For assistance with FetchXML, see Build queries with FetchXML on the Microsoft developer site.

Using FetchXML in a Native Query Block includes support for sorting, grouping, filtering, and relationships. See the examples below for each option.

Simple Query

The example below returns all accounts and associated accountid and name values.

<fetch mapping='logical'>
    <entity name='account'>
      <attribute name='accountid'/>
      <attribute name='name'/>


The example below sorts returned records by the value of the creditlimit field.

<fetch mapping="logical" version="1.0">
    <entity name="Account">
      <all-attributes />
      <order attribute="creditlimit" />


The example below groups returned records by the value of the address1_city field.

<fetch mapping="logical" aggregate="true" version="1.0">
    <entity name="account">
      <attribute name="accountid" alias="COUNT_accountid" aggregate="countcolumn" />
      <attribute name="address1_city" groupby="true" />


The example below returns records where the name field contains Scribe.

<fetch mapping="logical" version="1.0">
    <entity name="account">
      <attribute name="name" />
      <attribute name="accountid" />
        <condition attribute="name" operator="like" value="%Scribe%" />


If you have more than one entity with the same name, you must alias the entity names to distinguish the entities from each other.


When parent and child records are returned, they are flattened and treated as a single set of records with the parent information repeated for each child. In this case, you cannot use a For Each Child Block. When mapping parent and child records, all fields for both the parent and the child records display as a single result set in the source side of the operation Block Properties Fields tab. If the parent and child entities have the same name and/or the same field names, such as a parent Account with multiple child Accounts, Scribe differentiates them by adding an alias to the entity or field name in the format entityalias_fieldname.

The example below performs an inner join on the account and SystemUser entities and returns System Users where the ownerid of the account matches the systemUserID of the SystemUser.

<fetch mapping="logical" version="1.0">
    <entity name="account">
      <attribute name="name" />
      <link-entity name="SystemUser" from="systemUserId" to="ownerid" alias="s" link-type="inner" />

Query Block Filtering

When a datetime is configured on the Query Block on the Block Properties Net Change Tab to query for new and updated records, that configuration is treated as an additional filter. The Net Change datetime filter is appended as an AND to the end of the list of filters configured on the Block Properties Filter Tab. Scribe Online builds a query combining both the Net Change filter and the filters on the Filter tab. See Net Change And Filters for an example.

Some Connectors for Scribe Online only support one filter. For those Connectors you can use either Net Change or one filter on the Filter tab, not both.

Microsoft Dynamics 365 / CRM Connection As IS/MS Target

Batch Processing

For information about using Batch processing, see Batch Processing, Create Block, Update Block, or Delete Block.

Id And Idtype

For Microsoft Dynamics 365 target Connections, if you map an id field, such as ownerid, you may also need to set the corresponding owneridtype to the value of the id base field.

To determine if you need to map the owneridtype, see the Description of the field displayed by selecting the Info icon for the Entity. See Block Properties Fields Tab.

Ownerid And Owneridtype

For Microsoft Dynamics 365 target Connections, both the ownerid and owneridtype fields may need to be mapped:


For example, in the image below, the Description indicates that if you map the ownerid field, you must also set a value for the ownertypeid field.

In the image below, the Description for the owneridtype field specifies the possible base entities and values: systemuser, team. To set this value, enter the name of the base field type in quotation marks into the Formula field.

Microsoft Dynamics 365 Merge Functionality

Alternate Keys

An Alternate Key is an optional, unique ID value you define in Microsoft Dynamics 365. Any decimal, integer, or string field can be used to define either a simple Alternate Key, defined by a single field, or a complex Alternate Key, defined by multiple fields.

An Alternate Key has both a display name that appears in the interface, and a key name that Microsoft Dynamics 365 uses to identify the field. By default, the key name is the display name with a new_ prefix. For example, if you define the display name as MyKey, the key name assigned by Microsoft Dynamics 365 is new_MyKey.

When you define an Alternate Key, it is validated for uniqueness for existing records within the Microsoft Dynamics 365 entity for which the Alternate Key is defined. The status of that validation determines the state of the Alternate Key, which can be any of the following:

Defining Alternate Keys

To define the alternate keys:

  1. Log into Microsoft Dynamics 365.
  2. Select Settings > Customizations.
  3. Select Customize the System > Components > Entities > Entity <X> > Keys.
  4. Select New.
  5. On the form, fill in the required fields, Display Name and Name.
  6. Then choose and add the fields to the key.

For additional information on defining Alternate Keys, refer to these Microsoft articles: Define alternate keys to reference Dynamics 365 records and Define alternate keys for an entity.

Using Alternate Keys With Scribe Online

Alternate Key behavior differs for the Delete, Update, and Upsert operations:


Seek Under is a lookup process where the Microsoft Dynamics 365 Connector uses the Matching Criteria on a target operation Block to locate a record. The Connector then returns the entire record from the data store and builds the updated record with any fields that were mapped on the Fields tab. This process provides a greater degree of accuracy in locating the correct record and provides unmapped data for use in subsequent operations. For example, if telephone number is not one of the mapped fields on the Fields tab, it is still available for use in an operation later in the Map. However, because the target datastore is accessed twice, once to return the record and again to perform the target operation, there is an impact to performance.

The skipseekunder virtual field on the Fields tab of the target operation Block is used to enable or disable the Seek Under process. Use skipseekunder when you do not need access to additional fields for the selected entity and you are sure that the fields you provided in Matching Criteria are sufficient to locate the correct record. When using skipseekunder, note the following:

Notes On Standard Entities





This virtual entity isused to support complex product catalog integration requirements for products.

PublishProductHierarchy, RevertProductHierarchy

These virtual entities are used to support complex product catalog integration requirements for products, product families, and product bundles.





You may receive one of the following errors when using Microsoft Dynamics 365.

Fatal Error

If you receive a fatal error that contains either of the following messages, make sure the credentials for your target Microsoft Dynamics 365 URL and Organization are correct. In addition, make sure the system time for the computer where the Scribe Online Agent resides is correct.

Metadata contains a reference that cannot be resolved: ''

Verify that the Connection URL is correct and that you can connect to the same URL from the system running the Scribe Online Agent.

Security Time Stamp Error

This error is the result of an issue in the way Microsoft Dynamics 365 tracks time. The Microsoft Dynamics 365 Server, which is set to UTC/GMT, cannot generate a timestamp if the minutes value on the computer where the Scribe Online On-Premise Agent is installed differs by more than 5 minutes from the Microsoft Dynamics 365 Server time.

The Microsoft Dynamics 365 Server uses your local time zone. Therefore, this problem only occurs if the minutes, not hours, are off by more than 5 minutes known as the skew time. To ensure that you do not get this message, make sure the minutes on the computer where the Scribe Online On-Premise Agent is installed reflect the same minutes value as UTC/GMT time.

Unable To Insert Error

If you create a Map using Microsoft Dynamics 365 as a target and see the error shown below, it may be caused by populating a field in the target that requires an associated field to also be populated. If the second field upon which the first one depends is either not linked or is being populated by a null or invalid value, the error can occur.

Unable to insert data into the XYZ entity. An unexpected error occurred.

For example, populating the businesscustomerid field and not populating the businesscustomeridtype in the Contract entity in Microsoft Dynamics 365 results in this error. To resolve this issue, map both fields with valid non-null values.

Scribe Online API Considerations

To create Connections with the Scribe Online API, the Microsoft Dynamics 365 Connector requires the following information:

Connector Name

Microsoft Dynamics 365/CRM

Connector ID


Scribe Online Connection Properties

In addition, this Connector uses the Connection properties shown in the following table.

Connection property names are case-sensitive.

Name Data Type Required Secured Usage





Must be Online, OnPremise or PartnerHosted




















Required only if DeploymentType is PartnerHosted and a third party authentication server is being used.










Only required if DeploymentType is OnPremise





Defaults to false if empty





Username of the user making Microsoft Dynamics 365 API requests





Defaults to 500 if empty.





Defaults to 2 if empty.

More Information

For additional information on this Connector, refer to the Knowledge Base and Discussions in the Scribe Success Community.

Scribe Online StarterPaks

Scribe Software provides several StarterPaks to help you begin using the Microsoft Dynamics 365 Connector.

NetSuite And Microsoft Dynamics CRM StarterPak Series

The StarterPaks in this series can be used independently or with other StarterPaks in the series.

Download these StarterPaks from the Scribe StarterPaks Download page.


Scribe Software