updateMessageLog
This function is to add following messages on the same day to the same contact. Use case is explained here
Params
Input
:
- user
: user entity
- contactInfo
: has id
, phoneNumber
, type
, name
- existingMessageLog
: existing message log entity
- authHeader
: auth header for CRM API call
- message
: message text
Reference
//-------------------------------------------------------------------------------------
//---CHECK.5: In extension, for a logged call, click edit to see if info is fetched ---
//-------------------------------------------------------------------------------------
return {
callLogInfo: {
subject,
note
},
returnMessage: {
message: 'Call log fetched.',
messageType: 'success',
ttl: 3000
}
}
}
// - note: note submitted by user
// - subject: subject submitted by user
// - startTime: more accurate startTime will be patched to this update function shortly after the call ends
// - duration: more accurate duration will be patched to this update function shortly after the call ends
// - result: final result will be patched to this update function shortly after the call ends
// - recordingLink: recordingLink updated from RingCentral. It's separated from createCallLog because recordings are not generated right after a call. It needs to be updated into existing call log
async function updateCallLog({ user, existingCallLog, authHeader, recordingLink, subject, note, startTime, duration, result, aiNote, transcript }) {
// ---------------------------------------
// ---TODO.6: Implement call log update---
// ---------------------------------------
let body = mockCallLog.note;
if (!!note && (user.userSettings?.addCallLogNote?.value ?? true)) { logBody = upsertCallAgentNote({ body: logBody, note }); }
if (!!duration && (user.userSettings?.addCallLogDuration?.value ?? true)) { logBody = upsertCallDuration({ body: logBody, duration }); }
if (!!result && (user.userSettings?.addCallLogResult?.value ?? true)) { logBody = upsertCallResult({ body: logBody, result }); }
org_id: orgId,
deal_id: dealId,
note,
done: true,
due_date: dateUtc,
due_time: timeUtc,
type: hasSMSType ? 'SMS' : 'Call'
}
const addLogRes = await axios.post(
`https://${user.hostname}/v1/activities`,
postBody,
{
headers: { 'Authorization': authHeader }
});
return {
logId: addLogRes.data.data.id,
returnMessage: {
message: 'Message logged',
messageType: 'success',
ttl: 1000
}
};
}
async function updateMessageLog({ user, contactInfo, existingMessageLog, message, authHeader }) {
const existingLogId = existingMessageLog.thirdPartyLogId;
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}/v1/activities/${existingLogId}`,