Microsoft Dynamics CRM – Gotchas
Dynamics CRM is a leading customer resource management and enterprise resource planning software.
15 gotchas across 7 resources
These are connector-specific behaviors and limitations to be aware of when integrating.
Activities1 gotcha
activitiesAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.
Companies3 gotchas
companiesAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.
companiesAddEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
companiesUpdateEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
Contacts3 gotchas
contactsAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.
contactsAddEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
contactsUpdateEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
Leads3 gotchas
leadsAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.
leadsAddEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
leadsUpdateEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
Notes1 gotcha
notesAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.
Opportunities3 gotchas
opportunitiesAddThe primary_contact_id is required in the request body
opportunitiesAddEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
opportunitiesUpdateEntity Reference (lookup) custom fields are written using Dataverse navigation-property
syntax automatically: supply the custom field id as either the read-side _<attribute>_value
form or the bare attribute logical name, with the target row GUID as the value, and the
connector emits <navigationProperty>@odata.bind for you.
Two limitations: polymorphic multi-target lookup columns (e.g. Customer-type columns
targeting both accounts and contacts) cannot be auto-resolved from a bare GUID — the request
fails with an actionable error; write those via pass_through with an explicit
<navigationProperty>@odata.bind key. Clearing a lookup custom field by sending a null
value is not supported.
Users1 gotcha
usersAllMicrosoft Dynamics 365 does not include a total record count in default list responses. meta.total_count will not appear. Surfacing the total requires adding $count=true to the OData query or calling a separate $count endpoint — not currently implemented.