Below is user event script to sync Salesforce customers to Netsuite:
/**
-
@NApiVersion 2.x
-
@NScriptType UserEventScript
*/
define([‘N/record’, ‘N/https’, ‘N/log’], function(record, https, log) {function afterSubmit(context) {
// Get access token for Salesforce
var accessToken = ‘jhbfjsegbrfhbehgb’;if (context.type === context.UserEventType.CREATE) { var rec = context.newRecord; var customerId = rec.id; var name = rec.getValue({ fieldId: 'companyname' }); try { // Create customer in Salesforce var createBody = { Name: name }; var createSalesforceResponse = createSalesforceCustomer(accessToken, createBody); log.debug("createSalesforceResponse", createSalesforceResponse); if (createSalesforceResponse.success) { record.submitFields({ type: rec.type, id: customerId, values: { custentity_sf_customer_id: createSalesforceResponse.id } }); log.debug("Customer Created in Salesforce", "Customer ID: " + createSalesforceResponse.id); } else { throw new Error('Failed to create customer in Salesforce: ' + JSON.stringify(createSalesforceResponse.error)); } } catch (e) { log.error('Error creating customer in Salesforce', e.message); } } else if (context.type === context.UserEventType.EDIT) { var rec = context.newRecord; var salesforceCustomerId = rec.getValue({ fieldId: 'custentity_sf_customer_id' }); log.debug("salesforceCustomerId", salesforceCustomerId); var name = rec.getValue({ fieldId: 'companyname' }); try { // Update customer in Salesforce var updateBody = { City__c: "Kochi" }; log.debug("calling salesforceResponse", "calling salesforceResponse"); var updateSalesforceResponse = updateSalesforceCustomer(accessToken, updateBody, salesforceCustomerId); } catch (e) { log.error('Error creating customer in Salesforce', e.message); } }
}
function createSalesforceCustomer(accessToken, customerData) {
var response = https.post({
url: ‘https://abc4-dev-ed.develop.my.salesforce.com/services/data/v61.0/sobjects/Customer/’,
headers: {
‘Authorization’: ‘Bearer ‘ + accessToken,
‘Content-Type’: ‘application/json’
},
body: JSON.stringify(customerData)
});var responseBody = JSON.parse(response.body); if (response.code === 201) { return { success: true, id: responseBody.id }; } else { log.error('Error creating customer in Salesforce', responseBody); return { success: false, error: responseBody }; }
}
function updateSalesforceCustomer(accessToken, updateData, salesforceId) {
log.debug(‘salesforceId parameter’, salesforceId);var response = https.post({ url: 'https://abc4-dev-ed.develop.my.salesforce.com/services/data/v61.0/sobjects/Customer/' + salesforceId + '?_HttpMethod=PATCH', headers: { Authorization: 'Bearer ' + accessToken, 'Content-Type': 'application/json' }, body: JSON.stringify(updateData) }); log.debug('response', response);
}
return {
afterSubmit: afterSubmit
};
});