verified
Create a DataExtension recordLearn 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
Help me turn coffee into code
This website is provided to you free of charge. However, a lot of time and effort are spent to write, test and mainain the code. Please consider supporting my work by buying me a cup of coffee.