[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-openlines\u002Fconfig\u002Ffields":3,"docs-tabs-openlines\u002Fconfig\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля конфигурации открытой линии\n\n`GET \u002Fv1\u002Fopenline-configs\u002Ffields`\n\nВозвращает схему полей, доступных для фильтрации и сортировки, а также полный реестр полей в ответах `list`, `get` и `search`.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fopenline-configs\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fopenline-configs\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fopenline-configs\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Поля схемы:', Object.keys(data.fields))\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fopenline-configs\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\nЭндпоинт `\u002Ffields` возвращает `data.fields` — описание **всех** полей ответов `list`, `get` и `search`: каждое поле снабжено `type`, `readonly`, названием `label` и описанием `description`. Имена полей — **в camelCase**. Полный набор в `get` — 95 полей, в `list`\u002F`search` — 91 (без 4 полей очереди операторов). Дополнительно `data` содержит `aggregatable` и `batch`.\n\n### Схема полей (data.fields)\n\n`\u002Ffields` возвращает полный набор полей — каждое с `type`, `readonly`, `label` и `description`. Фильтрация (`filter`), сортировка (`sort`) и группировка (`groupBy`) работают по этим camelCase-именам. Ниже — основные поля, чаще всего используемые в `sort` и `filter`:\n\n| Поле | Тип | RO | Описание |\n|------|-----|----|---------|\n| `id` | number | да | Идентификатор конфигурации |\n| `name` | string | | Название открытой линии |\n| `active` | boolean | | Активна ли линия |\n| `queueType` | string | | Алгоритм распределения: `all` — всем операторам одновременно, `evenly` — равномерно, `strictly` — строго по очереди |\n| `workTimeFrom` | string | | Начало рабочего времени (например `\"8\"` или `\"9.30\"`) |\n| `workTimeTo` | string | | Конец рабочего времени |\n\nДополнительно в `data` указаны:\n- `aggregatable` — поля, доступные для `groupBy`: `[\"active\", \"queueType\"]`\n- `batch` — перечень пакетных операций, объявленных для этой сущности в ответе `\u002Ffields`: пустой массив `[]`\n\n### Полный реестр полей ответа (list \u002F get \u002F search)\n\nВ `get` объект `data` содержит 95 полей (все в camelCase), в `list`\u002F`search` — 91 (без 4 полей с отметкой «только `get`»: `queue`, `queueFull`, `queueUsersFields`, `queueOnline`).\n\n#### Основные\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `id` | number | да | везде | Идентификатор конфигурации |\n| `name` | string | | везде | Название открытой линии |\n| `active` | boolean | | везде | Линия активна (`true`\u002F`false`) |\n| `temporary` | string | | везде | Временная линия: `\"Y\"` \u002F `\"N\"` |\n| `xmlId` | string\\|null | | везде | Внешний идентификатор |\n| `languageId` | string\\|null | | везде | Язык линии (например `\"ru\"`). `null`, если язык не задан |\n\n#### Очередь и операторы\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `queueType` | string | | везде | Алгоритм распределения: `all` — всем операторам одновременно, `evenly` — равномерно, `strictly` — строго по очереди |\n| `queueTime` | string | | везде | Время ожидания в очереди (секунды) |\n| `noAnswerTime` | string | | везде | Время без ответа оператора до переключения (секунды) |\n| `checkAvailable` | string | | везде | Проверять доступность оператора: `\"Y\"` \u002F `\"N\"` |\n| `maxChat` | string\\|null | | везде | Максимальное число одновременных чатов на оператора (`\"0\"` — без ограничения). `null`, если не задан |\n| `typeMaxChat` | string\\|null | | везде | Тип подсчёта лимита чатов: `answered` — только принятые, `total` — все. `null`, если не задан |\n| `queue` | string[] | да | только `get` | Массив ID операторов в очереди (строки) |\n| `queueFull` | object | да | только `get` | Объекты операторов с полями `ID`, `SORT`, `USER_ID`, `DEPARTMENT_ID`, `USER_NAME`, `USER_WORK_POSITION`, `USER_AVATAR`, `USER_AVATAR_ID` |\n| `queueUsersFields` | object | да | только `get` | Данные профилей операторов: `USER_NAME`, `USER_WORK_POSITION`, `USER_AVATAR`, `USER_AVATAR_ID` |\n| `queueOnline` | string | да | только `get` | Есть ли операторы онлайн в данный момент: `\"Y\"` \u002F `\"N\"` |\n\n#### Интеграция с CRM\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `crm` | string | | везде | Включить интеграцию с CRM: `\"Y\"` \u002F `\"N\"` |\n| `crmCreate` | string | | везде | Тип создаваемой CRM-записи при первом обращении: `deal`, `lead`, `contact`, `company` |\n| `crmCreateSecond` | string | | везде | Тип записи при повторных обращениях (числовой идентификатор типа) |\n| `crmCreateThird` | string | | везде | Тип записи при третьем и последующих обращениях: `\"Y\"` \u002F `\"N\"` |\n| `crmForward` | string | | везде | Переадресовывать обращение ответственному из CRM: `\"Y\"` \u002F `\"N\"` |\n| `crmChatTracker` | string | | везде | Включить трекер чата в CRM: `\"Y\"` \u002F `\"N\"` |\n| `crmTransferChange` | string | | везде | Менять ответственного при переводе чата: `\"Y\"` \u002F `\"N\"` |\n| `crmSource` | string | | везде | Источник CRM-записи: `create` — создавать, другое значение — брать из истории |\n\n#### Приветственное сообщение\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `welcomeMessage` | string | | везде | Показывать приветствие: `\"Y\"` \u002F `\"N\"` |\n| `welcomeMessageText` | string | | везде | Текст приветствия (поддерживает BB-код) |\n| `watchTyping` | string | | везде | Показывать индикатор набора текста: `\"Y\"` \u002F `\"N\"` |\n| `sendWelcomeEachSession` | string | | везде | Отправлять приветствие при каждой новой сессии: `\"Y\"` \u002F `\"N\"` |\n\n#### Приветственный бот\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `welcomeBotEnable` | string | | везде | Включить приветственного бота: `\"Y\"` \u002F `\"N\"` |\n| `welcomeBotId` | string | | везде | ID бота. Список: `GET \u002Fv1\u002Fbots` |\n| `welcomeBotTime` | string | | везде | Время ожидания ответа бота (секунды) |\n| `welcomeBotJoin` | string | | везде | Когда бот присоединяется: `always` — всегда, другие значения по настройке |\n| `welcomeBotLeft` | string | | везде | Когда бот покидает чат: `queue` — после постановки в очередь, другие значения по настройке |\n\n#### Рабочее время\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `workTimeEnable` | string | | везде | Включить расписание рабочего времени: `\"Y\"` \u002F `\"N\"` |\n| `workTimeFrom` | string | | везде | Начало рабочего дня (например `\"8\"`, `\"9.30\"`) |\n| `workTimeTo` | string | | везде | Конец рабочего дня |\n| `workTimeTimezone` | string | | везде | Часовой пояс (например `\"Europe\u002FKaliningrad\"`) |\n| `workTimeHolidays` | string[] | | везде | Праздничные нерабочие дни в формате `\"ДД.ММ\"` (например `[\"1.01\",\"7.01\"]`) |\n| `workTimeDayoff` | string[] | | везде | Выходные дни недели: `\"MO\"`, `\"TU\"`, `\"WE\"`, `\"TH\"`, `\"FR\"`, `\"SA\"`, `\"SU\"` |\n\n#### Сценарии нерабочего времени, нет ответа, закрытие\n\nТри группы по четыре поля — сценарий, форма, бот, текст:\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `workTimeDayoffRule` | string | | везде | Действие в выходной день: `text` — сообщение, `form` — форма, `bot` — бот, `none` — ничего |\n| `workTimeDayoffFormId` | string | | везде | ID формы для нерабочего времени |\n| `workTimeDayoffBotId` | string | | везде | ID бота для нерабочего времени. Список: `GET \u002Fv1\u002Fbots` |\n| `workTimeDayoffText` | string | | везде | Текст сообщения в нерабочее время (поддерживает BB-код) |\n| `noAnswerRule` | string | | везде | Действие при нет ответа: `text`, `form`, `bot`, `none` |\n| `noAnswerFormId` | string | | везде | ID формы при нет ответа |\n| `noAnswerBotId` | string | | везде | ID бота при нет ответа. Список: `GET \u002Fv1\u002Fbots` |\n| `noAnswerText` | string | | везде | Текст сообщения при нет ответа |\n| `closeRule` | string | | везде | Действие при закрытии чата: `text`, `form`, `bot`, `none` |\n| `closeFormId` | string | | везде | ID формы при закрытии |\n| `closeBotId` | string | | везде | ID бота при закрытии. Список: `GET \u002Fv1\u002Fbots` |\n| `closeText` | string | | везде | Текст сообщения при закрытии |\n| `fullCloseTime` | string | | везде | Время до полного закрытия чата (секунды) |\n| `confirmClose` | string | | везде | Запрашивать подтверждение при закрытии чата: `\"Y\"` \u002F `\"N\"` |\n| `showNotificationRedirect` | string\\|null | | везде | Показывать уведомление при перенаправлении: `\"Y\"` \u002F `\"N\"` \u002F `null` |\n\n#### Автозакрытие по неактивности\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `autoCloseRule` | string | | везде | Действие при истечении времени неактивности: `text`, `form`, `bot`, `none` |\n| `autoCloseFormId` | string | | везде | ID формы при автозакрытии |\n| `autoCloseBotId` | string | | везде | ID бота при автозакрытии. Список: `GET \u002Fv1\u002Fbots` |\n| `autoCloseTime` | string | | везде | Время до автозакрытия чата (секунды) |\n| `autoCloseText` | string\\|null | | везде | Текст при автозакрытии. Незаданное значение приходит как `null` |\n| `autoExpireTime` | string | | везде | Время истечения сессии по неактивности (секунды) |\n\n#### Оценка качества\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `voteMessage` | string | | везде | Включить запрос оценки: `\"Y\"` \u002F `\"N\"` |\n| `voteTimeLimit` | string | | везде | Ограничение времени на оценку (секунды, `\"0\"` — без ограничения) |\n| `voteBeforeFinish` | string | | везде | Запрашивать оценку до завершения чата: `\"Y\"` \u002F `\"N\"` |\n| `voteClosingDelay` | string | | везде | Задержка закрытия после оценки: `\"Y\"` \u002F `\"N\"` |\n| `voteMessage1Text` | string | | везде | Текст запроса оценки (простые сообщения с кнопками) |\n| `voteMessage1Like` | string | | везде | Ответ при положительной оценке |\n| `voteMessage1Dislike` | string | | везде | Ответ при отрицательной оценке |\n| `voteMessage2Text` | string | | везде | Текст запроса оценки (текстовый режим, `1`\u002F`0`) |\n| `voteMessage2Like` | string | | везде | Ответ при `1` (положительная) |\n| `voteMessage2Dislike` | string | | везде | Ответ при `0` (отрицательная) |\n\n#### Соглашения и категории\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `agreementMessage` | string | | везде | Запрашивать согласие с условиями: `\"Y\"` \u002F `\"N\"` |\n| `agreementId` | string | | везде | ID документа с условиями |\n| `categoryEnable` | string | | везде | Включить категоризацию обращений: `\"Y\"` \u002F `\"N\"` |\n| `categoryId` | string | | везде | ID категории по умолчанию |\n\n#### Форма ожидания\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `useWelcomeForm` | string | | везде | Показывать форму перед постановкой в очередь: `\"Y\"` \u002F `\"N\"` |\n| `welcomeFormId` | string | | везде | ID формы ожидания |\n| `welcomeFormDelay` | string | | везде | Задержка показа формы: `\"Y\"` \u002F `\"N\"` |\n| `ignoreWelcomeFormResponsible` | string | | везде | Пропускать форму для ответственного из CRM: `\"Y\"` \u002F `\"N\"` |\n\n#### Оператор и сессия\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `operatorData` | string | | везде | Данные оператора в чате: `profile` — полный профиль |\n| `defaultOperatorData` | array | | везде | Данные по умолчанию при отсутствии операторов. Пустой набор приходит как `[]` |\n| `sessionPriority` | string | | везде | Приоритет сессии (`\"0\"` — стандартный) |\n| `quickAnswersIblockId` | string | | везде | ID инфоблока с быстрыми ответами |\n\n#### KPI\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `kpiFirstAnswerTime` | string | | везде | Норматив времени первого ответа (секунды) |\n| `kpiFirstAnswerAlert` | string | | везде | Отправлять предупреждение при нарушении KPI первого ответа: `\"Y\"` \u002F `\"N\"` |\n| `kpiFirstAnswerList` | string[] | | везде | Список ID получателей предупреждения по KPI первого ответа. Пустой набор приходит как `[]` |\n| `kpiFirstAnswerText` | string\\|null | | везде | Шаблон текста предупреждения (поддерживает `#OPERATOR#`, `#DIALOG#`). `null`, если не задан |\n| `kpiFurtherAnswerTime` | string | | везде | Норматив времени последующих ответов (секунды) |\n| `kpiFurtherAnswerAlert` | string | | везде | Отправлять предупреждение при нарушении KPI последующих ответов: `\"Y\"` \u002F `\"N\"` |\n| `kpiFurtherAnswerList` | string[] | | везде | Список ID получателей предупреждения. Пустой набор приходит как `[]` |\n| `kpiFurtherAnswerText` | string\\|null | | везде | Шаблон текста предупреждения. `null`, если не задан |\n| `kpiCheckOperatorActivity` | string | | везде | Контролировать активность оператора: `\"Y\"` \u002F `\"N\"` |\n| `sendNotificationEmptyQueue` | string | | везде | Уведомлять при пустой очереди: `\"Y\"` \u002F `\"N\"` |\n\n#### Служебные\n\n| Поле | Тип | RO | Источник | Описание |\n|------|-----|----|---------|---------|\n| `dateCreate` | object | да | везде | Дата создания — приходит как пустой объект `{}` |\n| `dateModify` | object | да | везде | Дата последнего изменения — приходит как пустой объект `{}` |\n| `modifyUserId` | string | да | везде | ID пользователя, внёсшего последнее изменение. Поиск: `GET \u002Fv1\u002Fusers` |\n\n## Пример ответа\n\nПоказаны несколько представительных полей. Полный набор больше — 95 полей в `get`, 91 в `list`\u002F`search`.\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true, \"label\": \"Идентификатор\", \"description\": \"Идентификатор конфигурации.\" },\n      \"name\": { \"type\": \"string\", \"readonly\": false, \"label\": \"Название линии\", \"description\": \"Название открытой линии.\" },\n      \"active\": { \"type\": \"boolean\", \"readonly\": false, \"label\": \"Линия активна\", \"description\": \"Линия активна (true\u002Ffalse).\" },\n      \"queueType\": { \"type\": \"string\", \"readonly\": false, \"label\": \"Алгоритм распределения\", \"description\": \"Алгоритм распределения: all — всем одновременно, evenly — равномерно, strictly — строго по очереди.\" },\n      \"crmCreate\": { \"type\": \"string\", \"readonly\": false, \"label\": \"Создаваемая CRM-запись\", \"description\": \"Тип создаваемой CRM-записи при первом обращении: deal, lead, contact, company.\" },\n      \"welcomeMessage\": { \"type\": \"string\", \"readonly\": false, \"label\": \"Показывать приветствие\", \"description\": \"Показывать приветствие: Y\u002FN.\" },\n      \"workTimeFrom\": { \"type\": \"string\", \"readonly\": false, \"label\": \"Начало рабочего дня\", \"description\": \"Начало рабочего дня (например 8, 9.30).\" }\n    },\n    \"aggregatable\": [\"active\", \"queueType\"],\n    \"batch\": []\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"Access denied. Required scope: imopenlines\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `TOKEN_MISSING` | API-ключ не передан |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `imopenlines` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Единый набор имён — camelCase.** Все поля ответов `list`\u002F`get`\u002F`search` приходят в camelCase. Эндпоинт `\u002Ffields` (`data.fields`) описывает каждое поле с `type`, `readonly`, `label` и `description`. По этим именам работают `filter`, `sort`, `groupBy`. Всего 91 поле в `list`\u002F`search`, 95 в `get` (добавляются 4 поля очереди операторов). При **записи** (`create`\u002F`update`) camelCase — канонический регистр. Имена в UPPER_SNAKE_CASE также принимаются для обратной совместимости. Булевы поля при записи принимают `true`\u002F`false` (приводятся к `\"Y\"`\u002F`\"N\"`).\n\n**Числовые поля приходят строками.** `queueTime`, `noAnswerTime`, `autoCloseTime`, `maxChat`, `kpiFirstAnswerTime` и другие — строки (`\"60\"`, `\"180\"`). Исключение — `id` (`number`) и `active` (`boolean`): эти два поля трансформирует схема API Вайбкод.\n\n**`dateCreate` и `dateModify` всегда пустые объекты `{}`.** Битрикс24 не передаёт значения дат через эти поля.\n\n## Смотрите также\n\n- [Список конфигураций](\u002Fdocs\u002Fopenlines\u002Fconfig\u002Flist)\n- [Получить конфигурацию](\u002Fdocs\u002Fopenlines\u002Fconfig\u002Fget)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n","2026-07-21",{}]