Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Обновить состав списка обзвона crm.calllist.update», проанализируем лучшие практики и покажем, как правильно использовать crm.calllist.update в реальных задачах.
Обновить состав списка обзвона crm.calllist.update
> Scope: crm
>
> Кто может выполнять метод: пользователь с правами на чтение элементов CRM
Метод crm.calllist.update позволяет добавить или удалить участников в существующем списке обзвона, и обновить связанную CRM-форму.
Параметры метода
Названиетип | Описание |
|---|---|
LIST_IDinteger | Идентификатор обзвона |
ENTITY_TYPEstring | Тип объекта: — CONTACT — контакт,— COMPANY — компания |
ENTITIES*array | Массив ID контактов или компаний, получить можно методом crm.item.list |
WEBFORM_IDinteger | ID CRM-формы, которая будет выводиться в форме обзвона. ID можно найти в списке форм Битрикс24 https://your-domain.ru/crm/webform/ |
Особенности работы метода
Метод перезаписывает массив ENTITIES. Чтобы добавить элемент, включите в запрос и текущие, и новые ID:
1. Текущие ID: [1,2,3].
2. Новые ID: [4].
3. Передать: [1,2,3,4].
Чтобы удалить элемент, передайте только те ID, которые должны остаться в списке:
4. Текущие ID: [1,2,3].
5. Удалить: [2].
6. Передать: [1,3].
Метод перезаписывает поле WEBFORM_ID. Если при вызове метода не передавать поле WEBFORM_ID, поле будет очищено.
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-d '{"LIST_ID":123,"ENTITY_TYPE":"CONTACT","ENTITIES":[1,2,3],"WEBFORM_ID":5}' \
https://**your_bitrix24**/rest/**user_id**/**webhook**/crm.calllist.update- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-d '{"LIST_ID":123,"ENTITY_TYPE":"CONTACT","ENTITIES":[1,2,3],"WEBFORM_ID":5,"auth":"**put_access_token_here**"}' \
https://**your_bitrix24**/rest/crm.calllist.update- JS
try
{
const response = await $b24.callMethod(
'crm.calllist.update',
{
LIST_ID: 123,
ENTITY_TYPE: 'CONTACT',
ENTITIES: [1, 2, 3],
WEBFORM_ID: 5
}
);
const result = response.getData().result;
if (result.error()) {
console.error(result.error());
} else {
console.dir(result);
}
}
catch (error)
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.calllist.update',
[
'LIST_ID' => 123,
'ENTITY_TYPE' => 'CONTACT',
'ENTITIES' => [1, 2, 3],
'WEBFORM_ID' => 5,
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Success: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating call list: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.calllist.update",
{
LIST_ID: 123,
ENTITY_TYPE: "CONTACT",
ENTITIES: [1,2,3],
WEBFORM_ID: 5
},
function(result) {
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.calllist.update',
[
'LIST_ID' => 123,
'ENTITY_TYPE' => 'CONTACT',
'ENTITIES' => [1,2,3],
'WEBFORM_ID' => 5
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": true,
"time": {
"start": 1752562914.533195,
"finish": 1752562914.606445,
"duration": 0.07325005531311035,
"processing": 0.044027090072631836,
"date_start": "2025-07-15T10:01:54+03:00",
"date_finish": "2025-07-15T10:01:54+03:00",
"operating_reset_at": 1752563514,
"operating": 0
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultboolean | Корневой элемент ответа, содержит true в случае успеха |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400
{
"error": "Invalid parameters.",
"error_description": "Переданы некорректные параметры."
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
400 | Invalid parameters | Переданы некорректные параметры |
400 | Incorrect entity type | Указан неподдерживаемый тип объекта |
400 | Entities is not array | Параметр ENTITIES не является массивом |
400 | Incorrect entities id | Переданы некорректные ID элементов |
400 | Incorrect list id or access denied | Некорректный идентификатор списка или нет доступа |
400 | Discrepancy between the type of call participants and incoming type | Несовпадение типа участников и переданного типа |
400 | Incorrect webform id | Некорректный ID CRM-формы |
- [](./crm-calllist-add)
- [](./crm-calllist-get)
- [](./crm-calllist-items-get)
- [](./crm-calllist-list)
- [](./crm-calllist-statuslist)
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к crm.calllist.update, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Обновить состав списка обзвона crm.calllist.update».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru