Create a DataExtension record verified

Learn how to create Data Extension records (rows) in Salesforce Marketing Cloud (SFMC) with SSJS (server-side JavaScript). Code snippets include WSProxy, Core, Platform and REST API methods.

Platform

var config = {
    dataextension: "MyDataExtension",
    attributes: {
        Names: [
            "SubscriberKey", 
            "EmailAddress", 
            "FirstName", 
            "LastName"
        ],
        Values: [
            Platform.Function.GUID(), 
            "example@mail.com", 
            "John", 
            "Doe"
        ]
    }
}

var result = Platform.Function.InsertData(
    config.dataextension,
    config.attributes.Names,
    config.attributes.Values
);

Platform.Response.Write(Platform.Function.Stringify(result));
<script runat="server">
	try {

        var config = {
            dataextension: "MyDataExtension",
            attributes: {
                Names: [
                    "SubscriberKey", 
                    "EmailAddress", 
                    "FirstName", 
                    "LastName"
                ],
                Values: [
                    Platform.Function.GUID(), 
                    "example@mail.com", 
                    "John", 
                    "Doe"
                ]
            }
        }

        var result = Platform.Function.InsertData(
            config.dataextension,
            config.attributes.Names,
            config.attributes.Values
        );

        Platform.Response.Write(Platform.Function.Stringify(result));
		
	} catch(error) {
        Platform.Response.Write(Platform.Function.Stringify(error));
    }
</script>
1

Core

var de = DataExtension.Init("MyDataExtension");
	
var payload = {
    SubscriberKey: GUID(),
    FirstName : "John",
    LastName : "Doe",
    EmailAddress : "example@mail.com" 
};

var result = de.Rows.Add(payload);
<script runat="server">

    Platform.Load("core", "1");

	try {

        var de = DataExtension.Init("MyDataExtension");
	
        var payload = {
            SubscriberKey: GUID(),
            FirstName : "John",
            LastName : "Doe",
            EmailAddress : "example@mail.com" 
        };

        var result = de.Rows.Add(payload);

        Write(Stringify(result));
		
	} catch(error) {
        Write(Stringify(error));
    }	

</script>
1

WSProxy

var api = new Script.Util.WSProxy();

var result = api.createItem("DataExtensionObject", { 
    CustomerKey: "S0M3-GU1D-K3Y-G03SR1G4T-H3R3",
    Properties: [
        {
            Name: "SubscriberKey",
            Value: GUID()
        },
        {
            Name: "FirstName",
            Value: "John"
        },
        {
            Name: "LastName",
            Value: "Doe"
        },
        {
            Name: "EmailAddress",
            Value: "example@mail.com"
        }
    ] 
});
<script runat="server">

    Platform.Load("core", "1");

    var api = new Script.Util.WSProxy();

	try {

        var result = api.createItem("DataExtensionObject", { 
            CustomerKey: "S0M3-GU1D-K3Y-G03SR1G4T-H3R3",
            Properties: [
                {
                    Name: "SubscriberKey",
                    Value: GUID()
                },
                {
                    Name: "FirstName",
                    Value: "John"
                },
                {
                    Name: "LastName",
                    Value: "Doe"
                },
                {
                    Name: "EmailAddress",
                    Value: "example@mail.com"
                }
            ] 
        });

        Write(Stringify(result));
		
	} catch(error) {
        Write(Stringify(error));
    }	

</script>
{
    "Status": "OK",
    "RequestID": "S0M3-GU1D-K3Y-G03SR1G4T-H3R3",
    "Results": [
        {
            "ErrorMessage": null,
            "KeyErrors": null,
            "ValueErrors": null,
            "NewID": 0,
            "NewObjectID": null,
            "PartnerKey": null,
            "Object": {
                "Name": null,
                "Keys": null,
                "Type": null,
                "Properties": [
                    {
                        "Name": "SubscriberKey",
                        "Value": "S0M3-GU1D-K3Y-G03SR1G4T-H3R3"
                    },
                    {
                        "Name": "FirstName",
                        "Value": "John"
                    },
                    {
                        "Name": "LastName",
                        "Value": "Doe"
                    },
                    {
                        "Name": "EmailAddress",
                        "Value": "example@mail.com"
                    }
                ],
                "Client": null,
                "PartnerKey": null,
                "PartnerProperties": null,
                "CreatedDate": "0001-01-01T00:00:00.000",
                "ModifiedDate": null,
                "ID": 0,
                "ObjectID": null,
                "CustomerKey": "S0M3-GU1D-K3Y-G03SR1G4T-H3R3",
                "Owner": null,
                "CorrelationID": null,
                "ObjectState": null,
                "IsPlatformObject": false
            },
            "CreateResults": null,
            "ParentPropertyName": null,
            "StatusCode": "OK",
            "StatusMessage": "Created DataExtensionObject",
            "OrdinalID": 0,
            "ErrorCode": 0,
            "RequestID": null,
            "ConversationID": null,
            "OverallStatusCode": null,
            "RequestType": "Synchronous",
            "ResultType": null,
            "ResultDetailXML": null
        }
    ]
}

REST API

var customerKey = "S0M3-GU1D-K3Y-G03SR1G4T-H3R3";

var payload = {
    items: [
        {
            SubscriberKey: GUID(),
            FirstName: "John",
            LastName: "Doe",
            EmailAddress: "example@mail.com"
        },
        {
            SubscriberKey: GUID(),
            FirstName: "Jane",
            LastName: "Doe",
            EmailAddress: "example@mail.com"
        }
    ]
}

var endpoint = restInstanceUrl + "data/v1/async/dataextensions/key:" + customerKey + "/rows";

var request = new Script.Util.HttpRequest(endpoint);
    request.emptyContentHandling = 0;
    request.retries = 2;
    request.continueOnError = true;
    request.setHeader("Authorization", "Bearer " + accessToken);
    request.method = "POST";
    request.contentType = "application/json";
    request.encoding = "UTF-8";
    request.postData = Stringify(payload);

var results = request.send();

var result = Platform.Function.ParseJSON(String(results.content));
<script runat="server">

    Platform.Load("core", "1");

    var api = new Script.Util.WSProxy();

    var restInstanceUrl = "https://YOUR_SUBDOMAIN.rest.marketingcloudapis.com/",
        accessToken     = "YOUR_REST_API_TOKEN";
	
	try {

        var customerKey = "S0M3-GU1D-K3Y-G03SR1G4T-H3R3";

        var payload = {
            items: [
                {
                    SubscriberKey: GUID(),
                    FirstName: "John",
                    LastName: "Doe",
                    EmailAddress: "example@mail.com"
                },
                {
                    SubscriberKey: GUID(),
                    FirstName: "Jane",
                    LastName: "Doe",
                    EmailAddress: "example@mail.com"
                }
            ]
        }

        var endpoint = restInstanceUrl + "data/v1/async/dataextensions/key:" + customerKey + "/rows";

        var request = new Script.Util.HttpRequest(endpoint);
            request.emptyContentHandling = 0;
            request.retries = 2;
            request.continueOnError = true;
            request.setHeader("Authorization", "Bearer " + accessToken);
            request.method = "POST";
            request.contentType = "application/json";
            request.encoding = "UTF-8";
            request.postData = Stringify(payload);

        var results = request.send();

        var result = Platform.Function.ParseJSON(String(results.content));

        Write(Stringify(result));
		
	} catch(error) {
        Write(Stringify(error));
    }	

</script>
{
  "requestId": "S0M3-GU1D-K3Y-G03SR1G4T-H3R3",
  "resultMessages": [
    
  ]
}

TIP

Send a PUT request in order to perform an Upsert action.

TIP

REST API method is performed asynchronously.

Reference

Ressources and references related to the current methods.

Official documentation
Data Extension Fields
Data Extensions Async API
SOAP object

Last Updated: