Для AI-агентов: markdown этой страницы — /docs-content/openlines.md индекс документации — /llms.txt
Открытые линии
Открытые линии Битрикс24 принимают обращения клиентов из мессенджеров и социальных сетей и распределяют их по операторам. Методы раздела настраивают линии, ведут диалоги от имени оператора, связывают их с карточками CRM и читают статистику контакт-центра.
Скоуп: imopenlines | Базовый URL: https://vibecode.bitrix24.tech/v1 | Авторизация: X-Api-Key
Быстрый старт | Полный пример | Справочник эндпоинтов | Коды ошибок
Разделы документации
- Конфигурации открытых линий — создание, чтение, изменение, удаление и поиск линий, а также приём и завершение диалога оператором
- Быстрые ответы открытой линии — шаблоны ответов линии: список, создание, изменение, удаление
- Сессии открытых линий — поиск сессий, их метрики, переназначения и переписка, открытие чата клиента, начало сессии, перехват диалога, вход в диалог и отправка CRM-формы клиенту
- Чаты по карточке CRM — диалоги линии, привязанные к лиду, сделке, компании или контакту
- Действия CRM-чата — добавить сотрудника в CRM-чат и удалить его, написать клиенту, создать лид из обращения
- Метаданные диалога — карточка диалога и ID линии по
chatId,dialogIdилиsessionId - История сессии — переписка последней сессии чата одним ответом
- Действия оператора и своя пауза — пропустить, передать, пометить клиента спамером, завершить чужой диалог, управлять своей паузой оператора
- Агрегаты по линии за период — сводные показатели линии для панели мониторинга
- Операторы в реальном времени — статус и нагрузка операторов
- Оценки (CSAT) — сессии с оценкой клиента за период
Идентификаторы
| Идентификатор | Что это | Где взять |
|---|---|---|
ИдентификаторconfigId, lineId |
Что этоОткрытая линия | Где взятьПоле data[].id в ответе GET /v1/openline-configs |
ИдентификаторsessionId |
Что этоОдно обращение клиента | Где взятьПоле sessions[].id в ответе POST /v1/openlines/sessions/search |
ИдентификаторchatId |
Что этоЧат открытой линии, общий для всех сессий клиента | Где взятьПоле sessions[].chatId в ответе POST /v1/openlines/sessions/search, поле data[].chatId в ответе GET /v1/openlines/crm/chats по карточке CRM или POST /v1/openlines/sessions/open по коду клиента |
Действия над диалогом выполняются от имени сотрудника, к которому привязан ключ. Параметра «сотрудник» у них нет — подробности в разделе Действия оператора и своя пауза.
Статистика (дашборд)
Методы статистики выходят в обновлении
imopenlines 26.700.0и доступны пока не на всех порталах Битрикс24. Если обновление на ваш портал ещё не пришло, API вернёт422 METHOD_NOT_YET_AVAILABLE— это признак того, что метод на портале ещё не выпущен, а не ошибка интеграции.
Шесть методов только читают данные: сводные показатели линии, операторы в реальном времени, сессии с фильтрами, метрики выбранных сессий, оценки клиентов и история переназначений. Данные видны в пределах прав сотрудника, к которому привязан ключ. Если у него нет доступа ни к одной линии, метод возвращает пустой список или нулевые показатели, а не ошибку. Методам нужно право на статистику Открытых линий report_open_lines, без него запрос вернёт 403 B24_TARIFF_RESTRICTION.
| Эндпоинт | Назначение |
|---|---|
ЭндпоинтPOST /v1/openlines/stats |
НазначениеАгрегаты по линии за период |
ЭндпоинтGET /v1/openlines/operators |
НазначениеСтатус и нагрузка операторов |
ЭндпоинтPOST /v1/openlines/sessions/search |
НазначениеПоиск сессий с фильтрами |
ЭндпоинтPOST /v1/openlines/sessions/stats |
НазначениеМетрики выбранных сессий, до 100 за вызов |
ЭндпоинтPOST /v1/openlines/ratings/search |
НазначениеСессии с оценкой клиента за период |
ЭндпоинтPOST /v1/openlines/sessions/transfers |
НазначениеИстория переназначений, до 50 сессий за вызов |
Остальные методы раздела работают на любом портале. Исключение — История сессии: её платформа Вайбкод включает постепенно, и до включения вызов отвечает 403 OPENLINES_HISTORY_DISABLED. Права report_open_lines и обновления imopenlines 26.700.0 история сессии не требует.
Типичные сценарии
| Сценарий | Эндпоинты |
|---|---|
| СценарийОтчёт по обращениям за период | ЭндпоинтыPOST /v1/openlines/stats, POST /v1/openlines/sessions/search |
| СценарийМонитор очереди и нагрузки операторов | ЭндпоинтыGET /v1/openlines/operators |
| СценарийПанель оценок клиентов (CSAT) | ЭндпоинтыPOST /v1/openlines/ratings/search, POST /v1/openlines/stats |
| СценарийРазбор жалобы по одной сессии | ЭндпоинтыPOST /v1/openlines/sessions/stats, POST /v1/openlines/sessions/history |
| СценарийАнализ переназначений между операторами | ЭндпоинтыPOST /v1/openlines/sessions/transfers |
| СценарийПодключиться к диалогу клиента из карточки CRM | ЭндпоинтыGET /v1/openlines/crm/chats, POST /v1/openlines/sessions/intercept или POST /v1/openlines/sessions/join |
| СценарийНаписать клиенту в диалог карточки CRM | ЭндпоинтыGET /v1/openlines/crm/chats, POST /v1/openlines/crm/messages |
| СценарийВзять диалог себе и передать коллеге | ЭндпоинтыPOST /v1/openlines/sessions/start, POST /v1/openlines/operator/transfer |
Рекомендации
- Сводные показатели берите из
POST /v1/openlines/stats— он считает показатели на стороне Битрикс24. Сбор тех же цифр перебором страницPOST /v1/openlines/sessions/searchрасходует лимит запросов. - Частота опроса сводных показателей и операторов в реальном времени указана на страницах Агрегаты по линии за период и Операторы в реальном времени.
Быстрый старт
Получите ID линии и сводные показатели этой линии за период.
1. Найдите линию
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://vibecode.bitrix24.tech/v1/openline-configs"
В ответе data — массив линий портала. Поле data[].id — ID линии, data[].name — её название.
2. Запросите сводные показатели линии
curl -X POST "https://vibecode.bitrix24.tech/v1/openlines/stats" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"dateFrom": "2026-09-01T00:00:00+03:00",
"dateTo": "2026-09-30T23:59:59+03:00",
"configId": 3
}'
Ответ:
{
"success": true,
"data": {
"totalSessions": 3,
"closedSessions": 2,
"spamSessions": 0,
"avgWaitAnswer": 25,
"avgSessionDuration": 17.3333,
"likeCount": 0,
"dislikeCount": 0,
"votedSessions": 0,
"positiveRate": 0,
"kpiFirstAnswerOk": 0,
"kpiFirstAnswerFail": 0,
"sessionsBySource": [{ "source": "livechat", "count": 2 }, { "source": "telegrambot", "count": 1 }],
"sessionsByHour": [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],
"sessionsByOperator": [{ "operatorId": 42, "count": 2, "avgWaitAnswer": 25, "positiveRate": 0 }]
}
}
Поля ответа — на странице Агрегаты по линии за период.
Полный пример
Отчёт по обращениям линии за период: сводные показатели, сессии с привязкой к CRM, их метрики и все диалоги карточки CRM первой сессии. Все вызовы только читают данные.
const VIBE_KEY = process.env.VIBE_KEY
const BASE = 'https://vibecode.bitrix24.tech/v1'
async function api(method, path, body = null) {
const opts = { method, headers: { 'X-Api-Key': VIBE_KEY } }
if (body) {
opts.headers['Content-Type'] = 'application/json'
opts.body = JSON.stringify(body)
}
const res = await fetch(`${BASE}${path}`, opts)
return res.json()
}
// 1. Линии портала: берём ID первой линии
const lines = await api('GET', '/openline-configs')
const configId = lines.data[0].id
console.log('Линия:', configId)
// 2. Сводные показатели линии за период
const period = { dateFrom: '2026-10-01T00:00:00+03:00', dateTo: '2026-10-19T23:59:59+03:00' }
const stats = await api('POST', '/openlines/stats', { ...period, configId })
console.log('Обращений:', stats.data.totalSessions, 'закрыто:', stats.data.closedSessions)
// 3. Сессии того же периода с привязкой к CRM
const found = await api('POST', '/openlines/sessions/search', {
configId,
dateCreateFrom: period.dateFrom,
dateCreateTo: period.dateTo,
hasCrm: 'Y',
limit: 50,
})
const sessions = found.data.sessions
console.log('Сессий на странице:', sessions.length, 'есть ещё:', found.data.hasNextPage)
if (sessions.length > 0) {
// 4. Метрики найденных сессий, до 100 за вызов
const metrics = await api('POST', '/openlines/sessions/stats', {
sessionId: sessions.map((s) => s.id),
})
for (const m of metrics.data.sessions) console.log('Сессия', m.sessionId, 'сообщений:', m.messagesCount)
// 5. Все диалоги карточки CRM, к которой привязана первая сессия
const { crmEntityType, crmEntityId } = sessions[0]
const chats = await api('GET', `/openlines/crm/chats?crmEntityType=${crmEntityType}&crmEntityId=${crmEntityId}&activeOnly=false`)
for (const c of chats.data) console.log('Чат', c.chatId, 'канал:', c.connectorTitle)
}
Как получить следующие страницы сессий — в абзаце «Пагинация» на странице Поиск сессий. Найденный на шаге 5 chatId принимают перехват диалога, вход в диалог и сообщение клиенту.
Справочник эндпоинтов
Все 39 эндпоинтов раздела:
| Метод | Путь | Bitrix24 метод | Описание |
|---|---|---|---|
| МетодPOST | Путь/v1/openline-configs | Bitrix24 методimopenlines.config.add | ОписаниеСоздать конфигурацию линии |
| МетодGET | Путь/v1/openline-configs | Bitrix24 методimopenlines.config.list.get | ОписаниеСписок конфигураций |
| МетодGET | Путь/v1/openline-configs/:id | Bitrix24 методimopenlines.config.get | ОписаниеКонфигурация по ID, с очередью операторов |
| МетодPATCH | Путь/v1/openline-configs/:id | Bitrix24 методimopenlines.config.update | ОписаниеОбновить конфигурацию |
| МетодDELETE | Путь/v1/openline-configs/:id | Bitrix24 методimopenlines.config.delete | ОписаниеУдалить конфигурацию |
| МетодPOST | Путь/v1/openline-configs/search | Bitrix24 методimopenlines.config.list.get | ОписаниеПоиск конфигураций по фильтру |
| МетодGET | Путь/v1/openline-configs/fields | Bitrix24 метод— | ОписаниеСхема полей конфигурации |
| МетодPOST | Путь/v1/openline-configs/aggregate | Bitrix24 методimopenlines.config.list.get | ОписаниеАгрегация по конфигурациям |
| МетодPOST | Путь/v1/openlines/operator/answer | Bitrix24 методimopenlines.operator.answer | ОписаниеПринять диалог оператором |
| МетодPOST | Путь/v1/openlines/operator/finish | Bitrix24 методimopenlines.operator.finish | ОписаниеЗавершить диалог оператором |
| МетодGET | Путь/v1/openline-configs/:lineId/quick-replies | Bitrix24 методimopenlines.v2.QuickReply.list | ОписаниеСписок быстрых ответов и разделов линии |
| МетодPOST | Путь/v1/openline-configs/:lineId/quick-replies | Bitrix24 методimopenlines.v2.QuickReply.save | ОписаниеСоздать быстрый ответ |
| МетодPATCH | Путь/v1/openline-configs/:lineId/quick-replies/:id | Bitrix24 методimopenlines.v2.QuickReply.save | ОписаниеИзменить быстрый ответ |
| МетодDELETE | Путь/v1/openline-configs/:lineId/quick-replies/:id | Bitrix24 методimopenlines.v2.QuickReply.delete | ОписаниеУдалить быстрый ответ |
| МетодPOST | Путь/v1/openlines/sessions/search | Bitrix24 методimopenlines.v2.Session.list | ОписаниеПоиск сессий с фильтрами |
| МетодPOST | Путь/v1/openlines/sessions/stats | Bitrix24 методimopenlines.v2.Session.Stat.get | ОписаниеМетрики выбранных сессий, до 100 за вызов |
| МетодPOST | Путь/v1/openlines/sessions/transfers | Bitrix24 методimopenlines.v2.Session.Transfer.list | ОписаниеИстория переназначений, до 50 сессий за вызов |
| МетодPOST | Путь/v1/openlines/sessions/history | Bitrix24 методimopenlines.session.history.get | ОписаниеПереписка последней сессии чата по chatId |
| МетодPOST | Путь/v1/openlines/sessions/open | Bitrix24 методimopenlines.session.open | ОписаниеОткрыть чат клиента по коду в коннекторе |
| МетодPOST | Путь/v1/openlines/sessions/start | Bitrix24 методimopenlines.session.start | ОписаниеНачать сессию: сотрудник становится оператором чата |
| МетодPOST | Путь/v1/openlines/sessions/intercept | Bitrix24 методimopenlines.session.intercept | ОписаниеПерехватить диалог на текущего оператора |
| МетодPOST | Путь/v1/openlines/sessions/join | Bitrix24 методimopenlines.session.join | ОписаниеВойти в диалог ещё одним участником |
| МетодPOST | Путь/v1/openlines/sessions/send-form | Bitrix24 методimopenlines.dialog.form.send | ОписаниеОтправить CRM-форму клиенту в диалог |
| МетодGET | Путь/v1/openlines/crm/chats | Bitrix24 методimopenlines.crm.chat.get | ОписаниеЧаты линии, привязанные к карточке CRM |
| МетодPOST | Путь/v1/openlines/crm/chats/users | Bitrix24 методimopenlines.crm.chat.user.add | ОписаниеДобавить сотрудника в CRM-чат |
| МетодDELETE | Путь/v1/openlines/crm/chats/users | Bitrix24 методimopenlines.crm.chat.user.delete | ОписаниеУдалить сотрудника из CRM-чата |
| МетодPOST | Путь/v1/openlines/crm/messages | Bitrix24 методimopenlines.crm.message.add | ОписаниеОтправить сообщение клиенту |
| МетодPOST | Путь/v1/openlines/dialogs/:chatId/lead | Bitrix24 методimopenlines.crm.lead.create | ОписаниеСоздать лид из обращения |
| МетодPOST | Путь/v1/openlines/dialogs/lookup | Bitrix24 методimopenlines.dialog.get | ОписаниеМетаданные диалога и ID линии по chatId, dialogId или sessionId |
| МетодPOST | Путь/v1/openlines/operator/skip | Bitrix24 методimopenlines.operator.skip | ОписаниеПропустить диалог |
| МетодPOST | Путь/v1/openlines/operator/spam | Bitrix24 методimopenlines.operator.spam | ОписаниеПометить клиента спамером и закрыть диалог |
| МетодPOST | Путь/v1/openlines/operator/transfer | Bitrix24 методimopenlines.operator.transfer | ОписаниеПередать диалог сотруднику или в очередь линии |
| МетодPOST | Путь/v1/openlines/operator/finish-another | Bitrix24 методimopenlines.operator.another.finish | ОписаниеЗавершить диалог другого оператора |
| МетодGET | Путь/v1/openlines/operator/pause | Bitrix24 методimopenlines.operator.pause.get | ОписаниеПрочитать свою паузу оператора |
| МетодPOST | Путь/v1/openlines/operator/pause | Bitrix24 методimopenlines.operator.pause.start | ОписаниеВключить свою паузу оператора |
| МетодDELETE | Путь/v1/openlines/operator/pause | Bitrix24 методimopenlines.operator.pause.stop | ОписаниеВыключить свою паузу оператора |
| МетодPOST | Путь/v1/openlines/stats | Bitrix24 методimopenlines.v2.Stat.get | ОписаниеАгрегаты по линии за период |
| МетодGET | Путь/v1/openlines/operators | Bitrix24 методimopenlines.v2.Operator.list | ОписаниеСтатус и нагрузка операторов |
| МетодPOST | Путь/v1/openlines/ratings/search | Bitrix24 методimopenlines.v2.Session.Rating.list | ОписаниеСессии с оценкой клиента за период |
Приём и завершение диалога оператором описаны на странице Конфигурации открытых линий. Шесть методов статистики выходят в обновлении imopenlines 26.700.0, см. Статистика (дашборд). У GET /v1/openline-configs/fields вызова Битрикс24 нет — схему полей отдаёт Вайбкод.
Коды ошибок
Ошибки Открытых линий
| HTTP | Код | Когда |
|---|---|---|
| HTTP400 | КодINVALID_JSON_BODY |
КогдаТело запроса не разобралось как JSON. Проверка идёт до проверки полей, поэтому про отсутствующие параметры ответ ничего не говорит. Так отвечают методы статистики, истории сессии, метаданных диалога, CRM-чатов, перехвата и входа в диалог и быстрых ответов. Создание, изменение и поиск конфигураций линий, действия оператора, его пауза, открытие и начало сессии на такое тело отвечают 400 FST_ERR_CTP_INVALID_JSON_BODY |
| HTTP400 | КодMISSING_PARAMS |
КогдаНе переданы обязательные параметры, например период у stats и ratings/search, sessionId у sessions/stats и sessions/transfers |
| HTTP400 | КодINVALID_PARAMS |
КогдаТело запроса не объект, либо некорректное значение там, где ожидается число или значение из списка |
| HTTP400 | КодBATCH_LIMIT_EXCEEDED |
КогдаМассив sessionId превышает лимит метода: 100 для sessions/stats, 50 для sessions/transfers |
| HTTP403 | КодB24_TARIFF_RESTRICTION |
КогдаТариф портала не включает статистику Открытых линий — право report_open_lines |
| HTTP403 | КодOPENLINES_HISTORY_DISABLED |
КогдаИстория сессии ещё не включена на платформе Вайбкод |
| HTTP422 | КодMETHOD_NOT_YET_AVAILABLE |
КогдаОбновление imopenlines 26.700.0 ещё не пришло на портал. Ответ содержит поле error.release со значением imopenlines 26.700.0 — разбор кода. Если тариф не включает статистику, после выхода обновления код сменится на 403 B24_TARIFF_RESTRICTION |
| HTTP502 | КодOPENLINE_OPERATOR_FAILED |
КогдаБитрикс24 не подтвердил действие или вернул ответ неожиданной формы. Так отвечают приём и завершение диалога оператором, действия оператора и его пауза, открытие и начало сессии, действия CRM-чата и быстрые ответы. Условие для конкретного метода — в таблице ## Ошибки на его странице |
При отказе Битрикс24 ответ приходит как 422 BITRIX_ERROR, а код Битрикс24 дублируется в поле error.b24Code:
error.b24Code |
Когда |
|---|---|
error.b24CodePERIOD_TOO_LARGE |
КогдаПериод превышает 1 год |
error.b24CodeINVALID_FILTER |
КогдаНедопустимое значение фильтра или формат даты |
error.b24CodeOFFSET_TOO_LARGE |
Когдаoffset превышает максимум — сузьте период или фильтры |
Коды конкретного метода — в таблице ## Ошибки на его странице.
Системные ошибки
Общие коды (SCOPE_DENIED, TOKEN_MISSING, WRITE_BLOCKED_READONLY_KEY, RATE_LIMITED и другие) — на странице Ошибки API.