Для 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 — личный ключ
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-приложение
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 — личный ключ
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-приложение
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.
Пример ответа
{
"success": true,
"data": {
"id": 17,
"skipped": []
}
}
Пример ответа при ошибке
400 — тип участников не совпадает с типом списка:
{
"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 целиком.
Смотрите также
- Создать список
- Получить список
- Участники списка
- Статусы участников
- Список обзвонов
- Связанные сущности: Контакты, Компании, CRM-формы