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 Status | Recommended Action | Suggested LMS Workflow |
|---|---|---|
| FAILED | Log the failure and notify the sales team for retry. | Update lead status to "Call Failed" and schedule a follow-up task. |
| PENDING | Monitor 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_ANSWERED | Log 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_CONFIRMED | Record 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_CANCELLED | Log 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_ANSWERED | Log 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. |
| OK | Log the call as Successful | Update 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.