in functions/source/addDynamicsAccountNote/addDynamicsAccountNote.js [56:135]
function addNote(contactDetails, callback) {
var accountId = contactDetails.ContactData.Attributes.DynamicsAccountId;
var callerPhoneNumber = contactDetails.ContactData.CustomerEndpoint.Address;
callerPhoneNumber = callerPhoneNumber.replace(/^\+[0-9]/, ""); //strip +1
var queueName = "Not set";
if (contactDetails.ContactData.Queue) {
queueName = contactDetails.ContactData.Queue.Name;
}
var connectPhoneNumber = "Unknown";
if (contactDetails.ContactData.SystemEndpoint) {
connectPhoneNumber = contactDetails.ContactData.SystemEndpoint.Address;
connectPhoneNumber = connectPhoneNumber.replace(/^\+[0-9]/, ""); //strip +1
}
console.log(
"Adding Note for Connect call from " +
callerPhoneNumber +
" to Account " +
accountId
);
const subject = "Amazon Connect call received from " + callerPhoneNumber;
var notetext = "Caller dialed " + connectPhoneNumber + " \n";
if (queueName != "Not set") {
notetext += "Caller was placed into " + queueName + " queue";
}
var note = {
subject: subject,
notetext: notetext
};
note["objectid_account@odata.bind"] = "accounts(" + accountId + ")";
var noteRequestBody = JSON.stringify(note);
var callRequestHeaders = {
Authorization: "Bearer " + accessToken,
"Content-Type": "application/json; charset=utf-8",
"Content-Length": noteRequestBody.length,
"OData-MaxVersion": "4.0",
"OData-Version": "4.0",
Accept: "application/json"
};
var options = {
host: dynamicsHostDomain,
path: "/api/data/v8.2/annotations",
method: "POST",
headers: callRequestHeaders
};
var noteRequestClient = https.request(options, function(response) {
var insertPhoneCallResponse = "";
response.on("data", function(dataChunk) {
insertPhoneCallResponse += dataChunk;
});
response.on("end", function() {
if (response.statusCode == 204) {
callback(null, { success: true });
} else {
var badResponseCodeMsg =
"Could not add Note to account. Response code " +
response.statusCode +
", message: " +
response.statusMessage;
console.error(badResponseCodeMsg);
callback(badResponseCodeMsg);
}
});
});
noteRequestClient.on("error", function(e) {
console.error("Add Note request failed with error", e);
callback("Add Note request failed with error: " + e);
});
noteRequestClient.write(noteRequestBody);
noteRequestClient.end();
}