For AI agents: markdown of this page — /docs-content-en/openlines.md documentation index — /llms.txt
Open Channels
Bitrix24 Open Channels (the imopenlines module) — inbound inquiries from messengers and social networks, routing to operators, CRM integration, and service-quality ratings. The section covers two facets of the module: managing channel settings and the contact-center manager's dashboard statistics.
- Base URL:
https://vibecode.bitrix24.com - Authentication: the
X-Api-Keyheader (personal key) orX-Api-Key+Authorization: Bearer(OAuth application) - Key scope:
imopenlines
What the section covers
| Facet | Purpose | Documentation |
|---|---|---|
| Channel configuration | CRUD for channel settings: operator queue, working hours, CRM integration, welcome message, ratings | Channel configuration |
| Statistics (dashboard) | Read-only: aggregates, sessions, operators, CSAT, transfers | below in this section |
Identifiers
| Identifier | What it is | Where to get it |
|---|---|---|
configId |
Open Channel | GET /v1/openline-configs |
sessionId |
Open Channel session (dialog) | POST /v1/openlines/sessions/search |
chatId |
IM chat bound to the session | the chatId field in the sessions/search response |
Channel configuration
Managing Open Channel settings — create, list, get, update, delete, search. Generally available, no rollout required. Two operator actions on a dialog live here as well — answer (answer) and finish (finish).
Full documentation: Channel configuration.
Statistics (dashboard)
⚠️ The statistics methods are being rolled out — they ship in the
imopenlines 26.700.0update. They are not available on all Bitrix24 portals yet. If the methods are not yet available on your portal, the API returns422 METHOD_NOT_YET_AVAILABLE— this is not an integration error but a sign that the update has not reached the portal yet.
A list of inquiries with metrics, real-time operator load, per-channel aggregates, customer ratings (CSAT), and transfer history. All methods are read-only. Data is visible within the permissions of the user the key acts on behalf of: if that user has no access to any channel, the method returns an empty result (or zero aggregates) rather than an error. The methods need access to Open Channels statistics (the report_open_lines permission); without it, a request returns 403 B24_TARIFF_RESTRICTION.
| Endpoint | Bitrix24 method | Purpose |
|---|---|---|
POST /v1/openlines/stats |
imopenlines.v2.Stat.get |
Per-channel aggregates for a period |
GET /v1/openlines/operators |
imopenlines.v2.Operator.list |
Operators: status and load (real-time) |
POST /v1/openlines/sessions/search |
imopenlines.v2.Session.list |
Session list with filters |
POST /v1/openlines/sessions/stats |
imopenlines.v2.Session.Stat.get |
Metrics for specific sessions (up to 100) |
POST /v1/openlines/ratings/search |
imopenlines.v2.Session.Rating.list |
Rated sessions (CSAT) for a period |
POST /v1/openlines/sessions/transfers |
imopenlines.v2.Session.Transfer.list |
Transfer history (up to 50 sessions) |
All six methods ship in the imopenlines 26.700.0 update. The Bitrix24 method names are listed here for cross-referencing with the Bitrix24 documentation — call the API using the Vibecode paths in the left column.
Common scenarios
| Scenario | Endpoints |
|---|---|
| Historical report on inquiries for a period | POST /v1/openlines/sessions/search |
| Real-time monitor of the queue and operator load | GET /v1/openlines/operators |
| Dashboard with customer ratings (CSAT) | POST /v1/openlines/ratings/search, POST /v1/openlines/stats |
| Summary KPI per channel (by hour and source) | POST /v1/openlines/stats |
| Session card for complaint review | POST /v1/openlines/sessions/stats |
| Analysis of transfers between operators | POST /v1/openlines/sessions/transfers |
Recommendations
- For summary metrics use
stats— it computes aggregates on the Bitrix24 side. Do not assemble the same figures with client-side aggregation oversessions/search: that runs into the Bitrix24 REST request limit. operatorsreturns near-real-time data (status and the active-chat counter are read separately). For a monitoring widget, poll the method no more than once every 30 seconds.statsis a heavy method: request it no more than once every 30–60 seconds and cache the result on your side.- Call statistics live separately —
GET /v1/calls/statistics; Open Channels statistics use POST forms because they carry rich filters.
Quick start
Per-channel aggregates for June:
curl -X POST "https://vibecode.bitrix24.com/v1/openlines/stats" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"dateFrom": "2026-06-01T00:00:00+00:00",
"dateTo": "2026-06-30T23:59:59+00:00",
"configId": 3
}'
{
"success": true,
"data": {
"totalSessions": 340,
"closedSessions": 318,
"spamSessions": 4,
"avgWaitAnswer": 42.7,
"avgSessionDuration": 612.3,
"likeCount": 210,
"dislikeCount": 15,
"votedSessions": 225,
"positiveRate": 0.9333,
"kpiFirstAnswerOk": 300,
"kpiFirstAnswerFail": 18,
"sessionsBySource": [{ "source": "livechat", "count": 200 }, { "source": "whatsapp", "count": 140 }],
"sessionsByHour": [0,0,0,0,0,0,2,10,25,40,38,30,28,22,20,25,30,20,15,10,8,5,3,1],
"sessionsByOperator": [{ "operatorId": 42, "count": 120, "avgWaitAnswer": 38.1, "positiveRate": 0.95 }]
}
}
Full example
Report "inquiries for the month with a review of problem sessions":
POST /v1/openlines/statswithdateFrom/dateTo— summary metrics for the channel.POST /v1/openlines/sessions/searchwith the same period andlimit: 50— the first page of the session list. Page-by-page pagination: increaseoffsetbylimitwhiledata.hasNextPageequalstrue.POST /v1/openlines/sessions/statswith an array ofsessionId(up to 100) — detailed metrics for the selected sessions.
For a stable page-by-page export, fix the upper bound of the period: set dateCreateTo to the moment the export starts. Without a fixed bound, new sessions arriving during paging shift the pages, and records at the boundaries may be duplicated or lost.
Error codes
Open Channels errors
| HTTP | Code | When |
|---|---|---|
| 403 | B24_TARIFF_RESTRICTION |
The portal tariff does not include Open Channels statistics (the report_open_lines permission) |
| 422 | METHOD_NOT_YET_AVAILABLE |
The imopenlines 26.700.0 update has not reached the portal yet. Once the update arrives the method starts working; if the tariff does not include statistics, the code returned on the call changes to 403 B24_TARIFF_RESTRICTION |
| 400 | MISSING_PARAMS |
Required parameters are missing (the period for stats/ratings, sessionId for the batch methods) |
| 400 | INVALID_PARAMS |
The request body is not an object, or non-numeric/invalid values where numbers are expected |
| 400 | BATCH_LIMIT_EXCEEDED |
The sessionId array exceeds the method limit (100 for sessions/stats, 50 for sessions/transfers) |
When Bitrix24 rejects the call, the response arrives as 422 BITRIX_ERROR, and the raw Bitrix24 code is duplicated in the error.b24Code field:
error.b24Code |
When |
|---|---|
PERIOD_REQUIRED |
Bitrix24 did not recognize the period (for example, a date in an unknown format) |
PERIOD_TOO_LARGE |
The period exceeds 1 year |
INVALID_FILTER |
An invalid filter value or date format |
OFFSET_TOO_LARGE |
offset exceeds the maximum — narrow the period or filters |
System errors
Common codes (SCOPE_DENIED, TOKEN_MISSING, RATE_LIMITED, and others) are on the API errors page.