For AI agents: markdown of this page — /docs-content-en/openlines/config/fields.md documentation index — /llms.txt

Open Channel configuration fields

GET /v1/openline-configs/fields

Returns the schema of fields available for filtering and sorting, as well as the full registry of fields in the list, get, and search responses.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/openline-configs/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/openline-configs/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openline-configs/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Schema fields:', Object.keys(data.fields))

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openline-configs/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

Response fields

The /fields endpoint returns data.fields — a description of all fields in the list, get, and search responses: each field carries type, readonly, a label, and a description. Field names are in camelCase. The full set in get is 95 fields, in list/search — 91 (without the 4 operator queue fields). data additionally contains aggregatable and batch.

Field schema (data.fields)

/fields returns the full field set — each with type, readonly, label, and description. Filtering (filter), sorting (sort), and grouping (groupBy) operate on these camelCase names. Below are the core fields most often used in sort and filter:

Field Type RO Description
id number yes Configuration identifier
name string Open Channel name
active boolean Whether the channel is active
queueType string Distribution algorithm: all — to all operators at once, evenly — evenly, strictly — strictly in the queue order
workTimeFrom string Start of working hours (for example, "8" or "9.30")
workTimeTo string End of working hours

data additionally specifies:

  • aggregatable — fields available for groupBy: ["active", "queueType"]
  • batch — the set of batch operations declared for this entity in the /fields response: empty array []

In get the data object contains 95 fields (all camelCase), in list/search — 91 (without the 4 fields marked "get only": queue, queueFull, queueUsersFields, queueOnline).

Core

Field Type RO Source Description
id number yes everywhere Configuration identifier
name string everywhere Open Channel name
active boolean everywhere Channel is active (true/false)
temporary string everywhere Temporary channel: "Y" / "N"
xmlId string|null everywhere External identifier
languageId string|null everywhere Channel language (for example, "en"). null if the language is not set

Queue and operators

Field Type RO Source Description
queueType string everywhere Distribution algorithm: all — to all operators at once, evenly — evenly, strictly — strictly in the queue order
queueTime string everywhere Wait time in the queue (seconds)
noAnswerTime string everywhere Time without an operator response before switching (seconds)
checkAvailable string everywhere Check operator availability: "Y" / "N"
maxChat string|null everywhere Maximum number of simultaneous chats per operator ("0" — no limit). null if not set
typeMaxChat string|null everywhere Chat-limit counting type: answered — only accepted, total — all. null if not set
queue string[] yes get only Array of operator IDs in the queue (strings)
queueFull object yes get only Operator objects with the fields ID, SORT, USER_ID, DEPARTMENT_ID, USER_NAME, USER_WORK_POSITION, USER_AVATAR, USER_AVATAR_ID
queueUsersFields object yes get only Operator profile data: USER_NAME, USER_WORK_POSITION, USER_AVATAR, USER_AVATAR_ID
queueOnline string yes get only Whether any operators are online at the moment: "Y" / "N"

CRM integration

Field Type RO Source Description
crm string everywhere Enable CRM integration: "Y" / "N"
crmCreate string everywhere Type of CRM record created on the first inquiry: deal, lead, contact, company
crmCreateSecond string everywhere Record type on repeat inquiries (numeric type identifier)
crmCreateThird string everywhere Record type on the third and subsequent inquiries: "Y" / "N"
crmForward string everywhere Forward the inquiry to the responsible person from CRM: "Y" / "N"
crmChatTracker string everywhere Enable the chat tracker in CRM: "Y" / "N"
crmTransferChange string everywhere Change the responsible person when transferring the chat: "Y" / "N"
crmSource string everywhere CRM record source: create — create, any other value — take from history

Welcome message

Field Type RO Source Description
welcomeMessage string everywhere Show the welcome message: "Y" / "N"
welcomeMessageText string everywhere Welcome text (supports BB code)
watchTyping string everywhere Show the typing indicator: "Y" / "N"
sendWelcomeEachSession string everywhere Send the welcome on every new session: "Y" / "N"

Welcome bot

Field Type RO Source Description
welcomeBotEnable string everywhere Enable the welcome bot: "Y" / "N"
welcomeBotId string everywhere Bot ID. List: GET /v1/bots
welcomeBotTime string everywhere Bot response wait time (seconds)
welcomeBotJoin string everywhere When the bot joins: always — always, other values per configuration
welcomeBotLeft string everywhere When the bot leaves the chat: queue — after queueing, other values per configuration

Working hours

Field Type RO Source Description
workTimeEnable string everywhere Enable the working-hours schedule: "Y" / "N"
workTimeFrom string everywhere Start of the working day (for example, "8", "9.30")
workTimeTo string everywhere End of the working day
workTimeTimezone string everywhere Time zone (for example, "UTC")
workTimeHolidays string[] everywhere Holiday non-working days in "DD.MM" format (for example, ["1.01","7.01"])
workTimeDayoff string[] everywhere Days off of the week: "MO", "TU", "WE", "TH", "FR", "SA", "SU"

Non-working-hours, no-answer, and close scenarios

Three groups of four fields each — scenario, form, bot, text:

Field Type RO Source Description
workTimeDayoffRule string everywhere Action on a day off: text — message, form — form, bot — bot, none — nothing
workTimeDayoffFormId string everywhere ID of the form for non-working hours
workTimeDayoffBotId string everywhere ID of the bot for non-working hours. List: GET /v1/bots
workTimeDayoffText string everywhere Message text during non-working hours (supports BB code)
noAnswerRule string everywhere Action on no answer: text, form, bot, none
noAnswerFormId string everywhere ID of the form on no answer
noAnswerBotId string everywhere ID of the bot on no answer. List: GET /v1/bots
noAnswerText string everywhere Message text on no answer
closeRule string everywhere Action on chat close: text, form, bot, none
closeFormId string everywhere ID of the form on close
closeBotId string everywhere ID of the bot on close. List: GET /v1/bots
closeText string everywhere Message text on close
fullCloseTime string everywhere Time until the chat is fully closed (seconds)
confirmClose string everywhere Ask for confirmation when closing the chat: "Y" / "N"
showNotificationRedirect string|null everywhere Show a notification on redirect: "Y" / "N" / null

Auto-close on inactivity

Field Type RO Source Description
autoCloseRule string everywhere Action when the inactivity time expires: text, form, bot, none
autoCloseFormId string everywhere ID of the form on auto-close
autoCloseBotId string everywhere ID of the bot on auto-close. List: GET /v1/bots
autoCloseTime string everywhere Time until the chat auto-closes (seconds)
autoCloseText string|null everywhere Text on auto-close. An unset value comes back as null
autoExpireTime string everywhere Session expiration time on inactivity (seconds)

Quality rating

Field Type RO Source Description
voteMessage string everywhere Enable the rating request: "Y" / "N"
voteTimeLimit string everywhere Time limit for the rating (seconds, "0" — no limit)
voteBeforeFinish string everywhere Request the rating before finishing the chat: "Y" / "N"
voteClosingDelay string everywhere Delay closing after the rating: "Y" / "N"
voteMessage1Text string everywhere Rating request text (simple messages with buttons)
voteMessage1Like string everywhere Response on a positive rating
voteMessage1Dislike string everywhere Response on a negative rating
voteMessage2Text string everywhere Rating request text (text mode, 1/0)
voteMessage2Like string everywhere Response on 1 (positive)
voteMessage2Dislike string everywhere Response on 0 (negative)

Agreements and categories

Field Type RO Source Description
agreementMessage string everywhere Request consent to the terms: "Y" / "N"
agreementId string everywhere ID of the terms document
categoryEnable string everywhere Enable inquiry categorization: "Y" / "N"
categoryId string everywhere ID of the default category

Wait form

Field Type RO Source Description
useWelcomeForm string everywhere Show a form before queueing: "Y" / "N"
welcomeFormId string everywhere ID of the wait form
welcomeFormDelay string everywhere Delay showing the form: "Y" / "N"
ignoreWelcomeFormResponsible string everywhere Skip the form for the responsible person from CRM: "Y" / "N"

Operator and session

Field Type RO Source Description
operatorData string everywhere Operator data in the chat: profile — full profile
defaultOperatorData array everywhere Default data when no operators are present. An empty set comes back as []
sessionPriority string everywhere Session priority ("0" — standard)
quickAnswersIblockId string everywhere ID of the information block with quick answers

KPI

Field Type RO Source Description
kpiFirstAnswerTime string everywhere First-response time target (seconds)
kpiFirstAnswerAlert string everywhere Send an alert when the first-response KPI is breached: "Y" / "N"
kpiFirstAnswerList string[] everywhere List of recipient IDs for the first-response KPI alert. An empty set comes back as []
kpiFirstAnswerText string|null everywhere Alert text template (supports #OPERATOR#, #DIALOG#). null if not set
kpiFurtherAnswerTime string everywhere Subsequent-response time target (seconds)
kpiFurtherAnswerAlert string everywhere Send an alert when the subsequent-response KPI is breached: "Y" / "N"
kpiFurtherAnswerList string[] everywhere List of recipient IDs for the alert. An empty set comes back as []
kpiFurtherAnswerText string|null everywhere Alert text template. null if not set
kpiCheckOperatorActivity string everywhere Monitor operator activity: "Y" / "N"
sendNotificationEmptyQueue string everywhere Notify on an empty queue: "Y" / "N"

Service

Field Type RO Source Description
dateCreate object yes everywhere Creation date — comes back as an empty object {}
dateModify object yes everywhere Last-modification date — comes back as an empty object {}
modifyUserId string yes everywhere ID of the user who made the last change. Lookup: GET /v1/users

Response example

A few representative fields are shown. The full set is larger — 95 fields in get, 91 in list/search.

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true, "label": "ID", "description": "Configuration identifier." },
      "name": { "type": "string", "readonly": false, "label": "Line name", "description": "Open line name." },
      "active": { "type": "boolean", "readonly": false, "label": "Line active", "description": "Line is active (true/false)." },
      "queueType": { "type": "string", "readonly": false, "label": "Distribution algorithm", "description": "Distribution algorithm: all — to everyone at once, evenly — evenly, strictly — strictly by queue order." },
      "crmCreate": { "type": "string", "readonly": false, "label": "CRM record to create", "description": "Type of CRM record created on first contact: deal, lead, contact, company." },
      "welcomeMessage": { "type": "string", "readonly": false, "label": "Show welcome", "description": "Show welcome message: Y/N." },
      "workTimeFrom": { "type": "string", "readonly": false, "label": "Work day start", "description": "Work day start (for example 8, 9.30)." }
    },
    "aggregatable": ["active", "queueType"],
    "batch": []
  }
}

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "Access denied. Required scope: imopenlines"
  }
}

Errors

HTTP Code Description
401 TOKEN_MISSING The API key was not passed
403 SCOPE_DENIED The API key lacks the imopenlines scope

Full list of common API errors — Errors.

Known specifics

A single set of names — camelCase. All fields in the list/get/search responses come back in camelCase. The /fields endpoint (data.fields) describes each field with type, readonly, label, and description. filter, sort, groupBy operate on these names. 91 fields total in list/search, 95 in get (the 4 operator queue fields are added). On write (create/update) camelCase is the canonical case. UPPER_SNAKE_CASE names are also accepted for backward compatibility. Boolean fields accept true/false on write (coerced to "Y"/"N").

Numeric fields come as strings. queueTime, noAnswerTime, autoCloseTime, maxChat, kpiFirstAnswerTime, and others — strings ("60", "180"). The exceptions are id (number) and active (boolean): these two fields are transformed by the Vibecode API schema.

dateCreate and dateModify are always empty objects {}. Bitrix24 does not pass date values through these fields.

See also