Microsoft 365 Upsert

Microsoft 365 Upsert

Certified

Upsert a Dataverse entity record

Issues an OData PATCH request to create or update a record identified by its GUID. If the record exists it is updated; if it does not exist it is created (upsert semantics). Requires the Dataverse application permission Dynamics CRM user on the service principal.

yaml
type: io.kestra.plugin.microsoft365.dynamics365.dataverse.Upsert

Upsert an account record in Dataverse

yaml
id: dataverse_upsert_account
namespace: company.team

tasks:
  - id: upsert
    type: io.kestra.plugin.microsoft365.dynamics365.dataverse.Upsert
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    orgUrl: "https://myorg.api.crm.dynamics.com"
    entitySetName: "accounts"
    recordId: "00000000-0000-0000-0000-000000000001"
    record:
      name: "Contoso Ltd"
      emailaddress1: "info@contoso.com"
Properties

Client ID

Client ID of the Azure service principal. If you don't have a service principal, refer to create a service principal with Azure CLI.

Entity set name

OData entity set name, e.g. accounts, contacts, leads.

Dataverse Organization URL

Base URL of the Dataverse organization, e.g. https://myorg.api.crm.dynamics.com. All OData API calls are made relative to {orgUrl}/api/data/v9.2/.

Record fields

Map of field names to values to set on the record.

Record ID

GUID of the record to create or update, e.g. 00000000-0000-0000-0000-000000000001.

Tenant ID

Azure AD (Entra ID) tenant GUID used for authentication.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Client Secret

Service principal client secret. Use this for Client Secret authentication. Provide clientId, tenantId, and clientSecret. Either clientSecret OR pemCertificate must be provided, not both.

PEM Certificate

Alternative authentication method using certificate-based authentication. Use this for Client Certificate authentication. Provide clientId, tenantId, and pemCertificate. Either clientSecret OR pemCertificate must be provided, not both.

Record ID

GUID of the created or updated record.