-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
createSalesforceObject.js
34 lines (29 loc) · 1.02 KB
/
createSalesforceObject.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Create a record in an SF CRM object
* @param {string} type SF CRM object API name, i.e. 'Contact', 'ema_CustomObject__c'
* @param {object} props An object containing the new record's fields and values
* @returns {object | undefined}
*/
function createSalesforceObject(type, props) {
if (!props || !type) {
return undefined
}
var fieldsCount = 0
var recordData = []
for (var key in props) {
fieldsCount++
recordData.push(key)
recordData.push(props[key])
}
var createSFObject = "";
createSFObject += "\%\%[";
createSFObject += "set @SFCreate = CreateSalesforceObject('" + type + "',";
createSFObject += fieldsCount + ",'" + recordData.join("','") + "'";
createSFObject += ")";
createSFObject += "output(concat(@SFCreate))";
createSFObject += "]\%\%";
var execCreate = Platform.Function.TreatAsContent(createSFObject)
return execCreate && typeof execCreate === 'string' && execCreate.length === 18
? { id: execCreate }
: { error: 'Error creating SF record' }
}