getCallLog
This interface retrieves a previously logged call log record in the target CRM. This information is used to render a form to allow an end user to view or edit that record within the App Connect client.
Request parameters
Parameter | Description |
---|---|
user |
TODO |
callLogId |
The ID of the activity or call log record within the CRM. |
authHeader |
The HTTP Authorization header to be transmitted with the API request to the target CRM. |
Return value(s)
This interface should return the associated call log record in a prescribed format.
Parameter | Description |
---|---|
callLogInfo |
Contain subject , note and optionally additionalSubmission |
returnMessage |
message , messageType and ttl |
Example
{
callLogInfo:{
subject: "A new call from John Doe",
note: "Delivery location changed.",
additionalSubmission: {
address: "12 Some Street, CA"
}
},
returnMessage:{
message: 'Log fetched',
messageType: 'success', // 'success', 'warning' or 'danger'
ttl: 30000 // in miliseconds
}
}
Reference
async function getCallLog({ user, callLogId, authHeader }) {
// -----------------------------------------
// ---TODO.5: Implement call log fetching---
// -----------------------------------------
// const getLogRes = await axios.get(
// `https://api.crm.com/activity/${callLogId}`,
// {
// headers: { 'Authorization': authHeader }
// });
const getLogRes = {
subject: mockCallLog.subject,
note: mockCallLog.note
}
const subject = getLogRes.subject;
const note = getLogRes.note.split('- Agent note: ')[1].split('\n')[0];
//-------------------------------------------------------------------------------------
//---CHECK.5: In extension, for a logged call, click edit to see if info is fetched ---
//-------------------------------------------------------------------------------------
return {
callLogInfo: {
subject,
note,
dispositions:{
testDispositionId: 'test disposition value'
}
},
returnMessage: {
message: 'Call log fetched.',
messageType: 'success',
ttl: 3000
}
}
}
if (orgId) {
postBody.org_id = orgId;
}
const addLogRes = await axios.post(
`https://${user.hostname}/api/v2/activities`,
postBody,
{
headers: { 'Authorization': authHeader }
});
extraDataTracking = {
ratelimitRemaining: addLogRes.headers['x-ratelimit-remaining'],
ratelimitAmount: addLogRes.headers['x-ratelimit-limit'],
ratelimitReset: addLogRes.headers['x-ratelimit-reset']
};
return {
logId: addLogRes.data.data.id,
returnMessage: {
message: 'Message logged',
messageType: 'success',
ttl: 1000
},
extraDataTracking
};
}
async function updateMessageLog({ user, contactInfo, existingMessageLog, message, authHeader, additionalSubmission }) {
const dealId = additionalSubmission ? additionalSubmission.deals : '';
const leadId = additionalSubmission ? additionalSubmission.leads : '';
let extraDataTracking = {};
const existingLogId = existingMessageLog.thirdPartyLogId;
const userInfoResponse = await axios.get('https://api.pipedrive.com/v1/users/me', {
headers: {