Для AI-агентов: markdown этой страницы — /docs-content/entities/call-lists/replace.md индекс документации — /llms.txt

Заменить состав

PUT /v1/call-lists/:id

Заменяет весь состав списка обзвона переданными участниками, а участников, которых нет в запросе, удаляет из списка.

Тело передаётся целиком, как при создании, плоско в корне JSON, без обёртки fields.

Параметры

Параметр Тип Обяз. Описание
id (path) number да Идентификатор списка обзвона. Список: GET /v1/call-lists

Поля запроса (body)

Поле Тип Обяз. Описание
entityType string да Тип участников: CONTACT или COMPANY. Должен совпадать с entityType списка из GET /v1/call-lists/:id
entities number[] да Новый полный состав списка, непустой массив положительных целых чисел. Контакты: GET /v1/contacts, компании: GET /v1/companies
webformId number нет CRM-форма, привязанная к списку. Список форм: GET /v1/crm-forms. Если поле не передать, привязка сбрасывается в null. Чтобы сохранить форму, передайте текущий webformId из GET /v1/call-lists/:id

Значения полей и связи с другими сущностями — ключевые поля обзвонов.

Примеры

curl — личный ключ

Terminal
curl -X PUT "https://vibecode.bitrix24.tech/v1/call-lists/17" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entityType": "CONTACT",
    "entities": [9, 19]
  }'

curl — OAuth-приложение

Terminal
curl -X PUT "https://vibecode.bitrix24.tech/v1/call-lists/17" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "entityType": "CONTACT",
    "entities": [9, 19]
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/call-lists/17', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    entityType: 'CONTACT',
    entities: [9, 19],
  }),
})

const { success, data } = await res.json()
console.log('skipped:', data.skipped)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/call-lists/17', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    entityType: 'CONTACT',
    entities: [9, 19],
  }),
})

const { success, data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean true при успешной замене
data object Результат замены
data.id number Идентификатор списка, совпадает с id из пути
data.skipped number[] Идентификаторы из entities, которых нет в составе списка, прочитанном после замены от имени владельца ключа. Пустой массив — в списке все переданные участники

Новый состав со статусами участников — GET /v1/call-lists/:id/items.

Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": 17,
    "skipped": []
  }
}

Пример ответа при ошибке

400 — тип участников не совпадает с типом списка:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "entityType must match the existing call list"
  }
}

Ошибки

HTTP Код Описание
400 INVALID_PARAMS entityType отличается от типа списка, например COMPANY для списка контактов. Сообщение содержит entityType must match the existing call list
400 MISSING_REQUIRED_FIELDS В теле нет entityType или entities, либо тело не JSON-объект. Сообщение содержит entityType and entities are required
400 UNKNOWN_FIELD В теле есть поле, кроме entityType, entities и webformId. Сообщение содержит Supported write fields
400 INVALID_PARAMS В entityType передано другое значение, например LEAD. Сообщение содержит entityType must be CONTACT or COMPANY
400 INVALID_PARAMS entities пуст, не массив или содержит не положительное целое число. Сообщение содержит entities must be a nonempty list
400 INVALID_PARAMS webformId не положительное целое число. Сообщение содержит webformId must be a positive safe integer
400 INVALID_PARAMS id в пути не положительное целое число. Сообщение содержит id must be a positive safe integer
404 ENTITY_NOT_FOUND Списка с таким id нет или он недоступен владельцу ключа. Сообщение содержит Call list not found or inaccessible
422 BITRIX_ERROR Участника с таким ID нет в CRM. В ответе b24Code: "ENTITIES_ERROR". Состав списка не меняется. Сообщение содержит Incorrect entities id
422 BITRIX_ERROR CRM-формы с таким webformId нет. В ответе b24Code: "WEBFORM_ERROR". Состав списка не меняется. Сообщение содержит Incorrect webform id
422 BITRIX_ERROR Битрикс24 не подтвердил замену. Прочитайте участников списка, чтобы узнать текущий состав. Сообщение содержит Bitrix24 did not confirm the call-list replacement
422 BITRIX_ERROR При проверочном чтении после замены в списке оказался участник не из entities или другого типа. Замена уже выполнена. Сообщение содержит participants outside the requested call-list composition
502 BITRIX_RESPONSE_INVALID Ответ Битрикс24 не совпал с ожидаемой структурой списка или участников. Если сбой случился при проверочном чтении, замена уже выполнена
403 WRITE_BLOCKED_READONLY_KEY Ключ в режиме только для чтения, замена недоступна
403 SCOPE_DENIED Ключу не хватает скоупа crm
401 MISSING_API_KEY Не передан X-Api-Key
401 TOKEN_MISSING У ключа нет настроенных токенов Битрикс24

Полный список общих ошибок API — Ошибки.

Известные особенности

Один участник добавляется или убирается через полный состав. Прочитайте текущий состав через участников списка по всем страницам, измените массив и передайте его в entities целиком.

Смотрите также