Skip to content

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: {