HomeVICIdial TutorialsVICIdial Non Agent API TutorialsBatch Updating Multiple Leads in VICIdial Using batch_update_lead API

Batch Updating Multiple Leads in VICIdial Using batch_update_lead API

Key Takeaways

The batch_update_lead API in VICIdial is a powerful function that allows for bulk lead modifications, significantly improving efficiency when handling large datasets. Instead of updating leads one by one, this API enables administrators and developers to update multiple leads in a single request, making it ideal for CRM synchronization, marketing campaign adjustments, and call center data management.

To use this API, you must have an API-enabled VICIdial user with the appropriate permissions. The user account must have API access enabled, a User Level of 7 or higher, and explicit permission to execute the batch_update_lead function (or access to all API functions). Without these permissions, API requests will be rejected, and updates will not be processed.

Unlike some other VICIdial APIs, the batch_update_lead API requires data to be formatted in JSON. This structured format allows for multiple lead updates to be submitted in a single API request, ensuring accuracy and reducing processing time. It is essential to ensure that the JSON data is properly structured to avoid request failures due to formatting errors.

The batch update process can be executed using cURL, Postman, or automated scripts, making it flexible for integration into various lead management workflows. Developers can incorporate this API into their systems to automatically sync lead data from third-party platforms, reducing manual intervention and improving operational efficiency.

However, common errors when using this API typically stem from incorrect JSON formatting or insufficient user permissions. Errors such as “INVALID JSON FORMAT” occur when the request body is incorrectly structured, while “USER DOES NOT HAVE PERMISSION TO USE THIS FUNCTION” indicates that the API user lacks the necessary privileges. Ensuring that the JSON syntax is valid and the API user has the required permissions will help avoid these issues and ensure smooth lead management operations.

VICIdial is a powerful open-source call center solution widely used for managing inbound and outbound campaigns. Lead management is one of its core functionalities, allowing call centers to store, update, and process large volumes of leads.

While the update_lead API allows updating a single lead, the batch_update_lead API provides a way to update multiple leads at once, significantly improving efficiency when handling large lead lists, CRM integrations, or bulk data corrections.

Why Use the batch_update_lead API?

Saves time by updating multiple leads in one request
Reduces server load compared to making multiple single update calls
Automates CRM sync by bulk updating records programmatically
Improves call center efficiency with quick data modifications

In this tutorial, we will cover:

  • How the batch_update_lead API works
  • Prerequisites for using the API
  • How to construct and send API requests
  • Example API requests using a browser, cURL, and Postman
  • Understanding API responses and handling errors
  • Best practices for bulk lead updates

Let’s get started! 🚀


Understanding the batch_update_lead API Function

The batch_update_lead API allows you to modify multiple lead records at once. This is particularly useful for:

🔹 Bulk lead updates (e.g., updating statuses, phone numbers, or email addresses)
🔹 Data corrections across multiple campaigns
🔹 Automating CRM to VICIdial lead synchronization
🔹 Managing marketing and sales campaign transitions

Key Features of batch_update_lead API

✔ Update multiple leads simultaneously
✔ Supports various lead fields (name, phone, email, status, etc.)
✔ Provides fast execution compared to individual updates


Step 1: Prerequisites for Using the API

Before using the batch_update_lead API, ensure you have:

VICIdial installed and configured
An API-enabled user account with appropriate permissions
A list of existing leads that need updates
VICIdial server access credentials

How to Enable API Access in VICIdial

1️⃣ Log in to the VICIdial Admin Panel
2️⃣ Navigate to Admin > Users
3️⃣ Select the user account for API access
4️⃣ Set API Access to 1 (Enabled)
5️⃣ Set User Level to 7 or higher
6️⃣ Add batch_update_lead to the Allowed API Functions (or set to ALL)
7️⃣ Click Save Changes

Now, your user is ready to execute batch lead updates via API.


Step 2: Constructing the API Request

The VICIdial API uses HTTP GET requests, meaning you can access it via a browser, cURL, or API tools like Postman.

Base API URL

arduino
http://your-vicidial-server/vicidial/non_agent_api.php

🔹 Replace your-vicidial-server with your actual VICIdial instance.

Required Parameters for batch_update_lead API

Parameter Description Example
function Specifies the API function (batch_update_lead) batch_update_lead
user VICIdial API username admin
pass VICIdial API password 1234
source Identifier for tracking API calls CRM_BatchUpdate
leads_data List of leads to update (JSON format) See example below

Step 3: Preparing the Data Format for Batch Updates

Unlike most VICIdial API functions, batch_update_lead requires lead data in JSON format. Here’s an example JSON structure:

json
{
"leads": [
{
"lead_id": "1001",
"phone_number": "9876543210",
"status": "SALE",
"first_name": "John",
"last_name": "Doe"
},
{
"lead_id": "1002",
"phone_number": "9123456789",
"status": "DNC",
"first_name": "Jane",
"last_name": "Smith"
}
]
}

Step 4: Sending the API Request

Method 1: Updating Multiple Leads via cURL (Command Line)

You can use cURL to send the JSON data as part of the API request:

bash
curl -X POST "http://your-vicidial-server/vicidial/non_agent_api.php?function=batch_update_lead&user=admin&pass=1234&source=CRM_BatchUpdate" \
-H "Content-Type: application/json" \
-d '{
"leads": [
{
"lead_id": "1001",
"phone_number": "9876543210",
"status": "SALE",
"first_name": "John",
"last_name": "Doe"
},
{
"lead_id": "1002",
"phone_number": "9123456789",
"status": "DNC",
"first_name": "Jane",
"last_name": "Smith"
}
]
}'

🔹 This request sends two lead updates in a single API call.


Method 2: Updating Multiple Leads via Postman

1️⃣ Open Postman
2️⃣ Set the request type to POST
3️⃣ Enter the API URL:

pgsql
http://your-vicidial-server/vicidial/non_agent_api.php?function=batch_update_lead&user=admin&pass=1234&source=CRM_BatchUpdate

4️⃣ In the Body tab, select raw and choose JSON
5️⃣ Paste the JSON data (as shown above)
6️⃣ Click Send
7️⃣ View the response in the output panel


Step 5: Understanding API Responses

If the batch update is successful, VICIdial returns:

makefile
SUCCESS: Updated 2 Leads

Error Messages and Fixes

Error Message Cause Solution
ERROR: INVALID JSON FORMAT Incorrect JSON structure Verify JSON formatting using a validator
ERROR: USER DOES NOT HAVE PERMISSION TO USE THIS FUNCTION Insufficient API permissions Ensure user level is 7+ and API Access is enabled
ERROR: LEAD NOT FOUND Invalid lead ID in request Double-check lead IDs before making the request

Step 6: Best Practices for Using the batch_update_lead API

Validate lead data before updating (Ensure correct lead IDs exist in VICIdial)
Use unique source identifiers for tracking API calls
Test batch updates with a few leads before processing large volumes
Ensure your JSON data format is correct to prevent request failures
Log API responses to track errors and optimize automation


Conclusion

The batch_update_lead API function is an essential tool for call centers that need to modify multiple leads efficiently. Whether you are syncing leads with a CRM, updating lead statuses, or performing bulk corrections, this API streamlines the process by allowing you to update multiple leads in a single request.

- Advertisement -spot_img

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Special Offerspot_img

Must Read

spot_img
spot_img
spot_img

Related Articles - Must Read

spot_img