Docs Connect Navigating Call Event Statuses

Navigating Call Event Statuses

Overview

In an automated lead management workflow, handling call events effectively is crucial for maintaining high engagement rates and ensuring efficient follow-up. The Logimeter Connect API provides real-time call events that reflect the status of call attempts, allowing the LMS system to take appropriate actions based on these statuses.

Below are the key call event statuses and the recommended courses of action for each:

Call Event StatusRecommended ActionSuggested LMS Workflow
FAILEDLog the failure and notify the sales team for retry.Update lead status to "Call Failed" and schedule a follow-up task.
PENDINGMonitor the status and contact Logimeter support if it remains pending for an unusually long duration.Temporarily set lead status to "Call In Progress" and wait for call event updates.
A_NOT_ANSWEREDLog the missed call and schedule a callback attempt.Update lead status to "Missed Call" and set a follow-up task to retry the call as per your distribution strategy for ex: round robin
A_NOT_CONFIRMEDRecord the lack of confirmation and explore alternative contact methods.Update lead status to "Call Not Confirmed" and set a follow-up task to retry the call as per your distribution strategy for ex: round robin
A_CANCELLEDLog the cancellation and investigate the reason if necessary.Update lead status to "Call Cancelled" and set a follow-up task to retry the call as per your distribution strategy for ex: round robin
B_NOT_ANSWEREDLog the attempt, notify the sales executive, and schedule a retry.Update lead status to "Prospect didn't answer" and set a follow-up task to retry the call later.
OKLog the call as SuccessfulUpdate the Lead status to “Call Connected” and move to the next step as per your workflow.

Additional Considerations:

  • Implement error handling and retry mechanisms in your integration to handle potential API failures or unexpected responses.
  • Regularly monitor call event data to identify trends and opportunities for process improvement.

Example Webhook Handler

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def handle_call_event():
    data = request.json
    status = data.get('leadconnect', {}).get('state', {}).get('name')

    if status == 'FAILED':
        log_failure(data)
        notify_support(data)
    elif status == 'PENDING':
        monitor_call(data)
    elif status == 'A_NOT_ANSWERED':
        schedule_retry(data)
    elif status == 'A_NOT_CONFIRMED':
        notify_sales_exec(data)
        schedule_retry(data)
    elif status == 'A_CANCELLED':
        notify_sales_exec(data)
    elif status == 'B_NOT_ANSWERED':
        log_attempt(data)
        schedule_retry(data)
    elif status == 'OK':
        update_lms(data)
    else:
        handle_other_status(data)

    return jsonify({'status': 'success'}), 200


def log_failure(data):
    # Implement logging
    pass

def notify_support(data):
    # Implement notification to support
    pass

def monitor_call(data):
    # Implement call monitoring
    pass

def schedule_retry(data):
    # Implement retry logic
    pass

def notify_sales_exec(data):
    # Implement notification to sales executive
    pass

def log_attempt(data):
    # Implement logging of call attempt
    pass

def update_lms(data):
    # Implement LMS update
    pass

def handle_other_status(data):
    # Handle other statuses
    pass
import express from 'express';

const app = express();
app.use(express.json());

app.post('/webhook', (req, res) => {
  const data = req.body;
  const status = data?.leadconnect?.state?.name;

  switch (status) {
    case 'FAILED':
      logFailure(data);
      notifySupport(data);
      break;
    case 'PENDING':
      monitorCall(data);
      break;
    case 'A_NOT_ANSWERED':
      scheduleRetry(data);
      break;
    case 'A_NOT_CONFIRMED':
      notifySalesExec(data);
      scheduleRetry(data);
      break;
    case 'A_CANCELLED':
      notifySalesExec(data);
      break;
    case 'B_NOT_ANSWERED':
      logAttempt(data);
      scheduleRetry(data);
      break;
    case 'OK':
      updateLms(data);
      break;
    default:
      handleOtherStatus(data);
  }

  res.status(200).json({ status: 'success' });
});

function logFailure(data) { /* implement logging */ }
function notifySupport(data) { /* implement notification to support */ }
function monitorCall(data) { /* implement call monitoring */ }
function scheduleRetry(data) { /* implement retry logic */ }
function notifySalesExec(data) { /* implement notification to sales executive */ }
function logAttempt(data) { /* implement logging of call attempt */ }
function updateLms(data) { /* implement LMS update */ }
function handleOtherStatus(data) { /* handle other statuses */ }

By integrating the Connect API and Call Events API, you can create a streamlined and efficient workflow for managing leads, ensuring timely follow-ups and accurate tracking of interactions.