CreateRequest Class


Contains the data that is needed to create a record.

public ref class CreateRequest sealed : Microsoft::Xrm::Sdk::OrganizationRequest
public sealed class CreateRequest : Microsoft.Xrm.Sdk.OrganizationRequest
type CreateRequest = class
    inherit OrganizationRequest
Public NotInheritable Class CreateRequest
Inherits OrganizationRequest


The following example shows how to use this message. For this sample to work correctly, you must be connected to the server to get an IOrganizationService interface instance.

/// <summary>
/// Demonstrates using CreateRequest with optional parameters
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
static void CreateRequestExample(IOrganizationService service)
    //Use late bound Entity class with entity logical name
    Entity account = new("account")
        Attributes = {
            //String primary name
            {"name","Contoso" },
            //Yes/No column
            {"creditonhold", false },
            // DateTime
            {"lastonholdtime", new DateTime(2023, 1, 1) },
            // Double
            // Integer
            {"numberofemployees", 500 },
            // Money
            {"revenue",new Money(new decimal(5000000.00))},
            // Choice column: Preferred Customer
            {"accountcategorycode",new OptionSetValue(1)}

    //Create the account
    CreateRequest request = new()
        Target = account

    //Set optional parameters:

    // Expect error if duplicate record found
    request["SuppressDuplicateDetection"] = false;
    // Set a shared variable that a plug-in can access
    request["tag"] = "RecordCreatedBySampleCode";
    // Bypass plug-in logic if caller has prvBypassCustomPlugins privilege
    request["BypassCustomPluginExecution"] = true;
    // Don't trigger any flows for this operation
    request["SuppressCallbackRegistrationExpanderJob"] = true;

        var response = (CreateResponse)service.Execute(request);

        Console.WriteLine($"Created record ID: {}");
    catch (FaultException<OrganizationServiceFault> ex)
        switch (ex.Detail.ErrorCode)
            case -2147220685: // Duplicate record error
// A record was not created or updated because a duplicate of the current record already exists.

Sample code on GitHub

Use duplicate detection when creating and updating records



Pass an instance of this class to the Execute(OrganizationRequest) method, which returns an instance of the CreateResponse class.

Privileges and Access Rights

To perform this action, the caller must have privileges on the table for the Entity set to the Target property. Generally, callers must have Read and Create privileges for the table. If the entity includes related records or lookup values, the caller will need the appropriate privileges for those records as well as Append and AppendTo privileges for the related records. Learn more about how to verify access in code

Notes for Callers

This class enables some operations not possible when using the Create(Entity) method. Some things you can do with this class:

For more information, see Use the CreateRequest class.

For user-owned tables, the caller becomes the owner for the new record by default unless you set the ownerid column for the record to the ID of another user or team.

Supported Tables

See Message support for tables for an example query you can use to get the list of tables you can use with the Create message.



Initializes a new instance of the CreateRequest class.



Gets or sets the structure that contains extra data. Optional.

(Inherited from OrganizationRequest)

Gets or sets the indexer for the Parameters collection.

(Inherited from OrganizationRequest)

Gets or sets the collection of parameters for the request. Required, but is supplied by derived classes.

(Inherited from OrganizationRequest)

Gets or sets the ID of the request. Optional.

(Inherited from OrganizationRequest)

Gets or sets the name of the request. Required, but is supplied by derived classes.

(Inherited from OrganizationRequest)

Gets or sets an instance of an entity that you can use to create a new record. Required.

Applies to

See also