Microsoft Dynamics CRM – Gotchas

Service ID: microsoft-dynamics

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

allactivitiesAll

Microsoft 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

allcompaniesAll

Microsoft 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.

addcompaniesAdd

Entity 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.

updatecompaniesUpdate

Entity 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

allcontactsAll

Microsoft 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.

addcontactsAdd

Entity 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.

updatecontactsUpdate

Entity 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

allleadsAll

Microsoft 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.

addleadsAdd

Entity 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.

updateleadsUpdate

Entity 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

allnotesAll

Microsoft 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

addopportunitiesAdd

The primary_contact_id is required in the request body

addopportunitiesAdd

Entity 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.

updateopportunitiesUpdate

Entity 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

allusersAll

Microsoft 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.