updateMessageLog
This function is to add following messages on the same day to the same contact. Use case is explained here
Input parameters
| Parameter | Description |
|---|---|
user |
An object describing the Chrome extension user associated with the action that triggered this interface. |
authHeader |
The HTTP Authorization header to be transmitted with the API request to the target CRM. |
contactInfo |
An associative array describing the contact a call is associated with. |
existingMessageLog |
existing message log entity |
message |
message text |
Reference
const axios = require('axios');
// Used to update existing message log so to group message in the same day together
async function updateMessageLog({ user, contactInfo, existingMessageLog, message, authHeader }) {
//--------------------------------------
//--- TODO: Add CRM API call here ------
//--------------------------------------
// const existingLogId = existingMessageLog.thirdPartyLogId;
// const getLogRes = await axios.get(
// `https://api.crm.com/activity/${existingLogId}`,
// {
// headers: { 'Authorization': authHeader }
// });
// const originalNote = getLogRes.data.body;
// const updateNote = orginalNote.replace();
// const patchBody = {
// data: {
// body: updateNote,
// }
// }
// const updateLogRes = await axios.patch(
// `https://api.crm.com/activity`,
// patchBody,
// {
// headers: { 'Authorization': authHeader }
// });
console.log(`update message log with... \n\n${JSON.stringify(message, null, 2)}`);
}
module.exports = updateMessageLog;
returnMessage: {
message: 'Message logged',
messageType: 'success',
ttl: 1000
},
extraDataTracking
};
}
async function updateMessageLog({ user, contactInfo, sharedSMSLogContent, existingMessageLog, message, authHeader, additionalSubmission }) {
const dealId = additionalSubmission ? additionalSubmission.deals : '';
const leadId = additionalSubmission ? additionalSubmission.leads : '';
let extraDataTracking = {};
const existingLogId = existingMessageLog.thirdPartyLogId;
let logBody = '';
let patchBody = {};
// Case: shared SMS
if (sharedSMSLogContent?.body) {
logBody = sharedSMSLogContent.body;
}
// Case: normal SMS
else {
const userInfoResponse = await axios.get('https://api.pipedrive.com/v1/users/me', {
headers: {
'Authorization': authHeader
}
});
const userName = userInfoResponse.data.data.name;
const getLogRes = await axios.get(
`https://${user.hostname}/api/v2/activities/${existingLogId}`,
{
headers: { 'Authorization': authHeader }
});
logBody = getLogRes.data.data.note;
const newMessageLog =
`<li>${message.direction === 'Inbound' ? `${contactInfo.name} (${contactInfo.phoneNumber})` : userName} ${moment(message.creationTime).utcOffset(user.timezoneOffset).format('hh:mm A')}<br>` +
`<b>${message.subject}</b></li>`;
// Add new message at the end (before the closing </ul> tag inside BEGIN/END block)
logBody = logBody.replace('</ul>------------<br>', `${newMessageLog}</ul>------------<br>`);
const regex = RegExp('<br>Conversation.(.*) messages.');
const matchResult = regex.exec(logBody);
logBody = logBody.replace(matchResult[0], `<br>Conversation(${parseInt(matchResult[1]) + 1} messages)`);
}
patchBody = {
note: logBody,
deal_id: dealId
}
if (!dealId && leadId) {