Для AI-агентов: markdown этой страницы — /docs-content/openlines/crm.md индекс документации — /llms.txt
Действия CRM-чата
Действия с диалогом открытой линии, привязанным к лиду, сделке, компании или контакту: добавить в чат сотрудника или убрать его, написать клиенту, создать лид из обращения.
Битрикс24 API: imopenlines.crm.*
Скоуп: imopenlines
Добавить сотрудника в CRM-чат
POST /v1/openlines/crm/chats/users
Добавляет сотрудника в чат открытой линии, привязанный к лиду, сделке, контакту или компании, чтобы подключить коллегу к переписке по карточке CRM.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ПолеcrmEntityType |
Типstring | Обяз.да | ОписаниеТип объекта CRM: lead, deal, company, contact. Регистр не важен |
ПолеcrmEntityId |
Типnumber | Обяз.да | ОписаниеID объекта CRM, положительное целое. Список: GET /v1/leads, GET /v1/deals, GET /v1/companies, GET /v1/contacts |
ПолеuserId |
Типnumber | Обяз.да | ОписаниеID сотрудника, которого нужно добавить в чат. Список: GET /v1/users |
ПолеchatId |
Типnumber | Обяз.нет | ОписаниеID чата открытой линии этого объекта CRM. Список: GET /v1/openlines/crm/chats с activeOnly=false. Без поля используется последний чат объекта |
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/openlines/crm/chats/users" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"crmEntityType": "deal", "crmEntityId": 42, "userId": 7, "chatId": 123}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/openlines/crm/chats/users" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"crmEntityType": "deal", "crmEntityId": 42, "userId": 7, "chatId": 123}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/crm/chats/users', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
crmEntityType: 'deal',
crmEntityId: 42,
userId: 7,
chatId: 123,
}),
})
const { success, data } = await res.json()
console.log('Чат:', data.chatId)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/crm/chats/users', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
crmEntityType: 'deal',
crmEntityId: 42,
userId: 7,
chatId: 123,
}),
})
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успешном добавлении |
Полеdata.chatId |
Типnumber | ОписаниеID чата, в который добавлен сотрудник. Без chatId в запросе — последний чат объекта CRM |
Полеdata.userId |
Типnumber | ОписаниеID добавленного сотрудника |
Полеdata.added |
Типboolean | ОписаниеВсегда true |
Пример ответа
{
"success": true,
"data": {
"chatId": 123,
"userId": 7,
"added": true
}
}
Пример ответа при ошибке
404 — у объекта CRM нет чата с переданным chatId:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "CRM chat not found"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
ОписаниеТело не JSON-объект, crmEntityType не передан или не из списка, crmEntityId или userId не передан или не положительное целое |
| HTTP400 | КодINVALID_JSON_BODY |
ОписаниеТело запроса не разбирается как JSON |
| HTTP400 | КодINVALID_CHAT_ID |
ОписаниеchatId передан, но не положительное целое |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеСообщение CRM chat not found: у объекта CRM нет ни одного чата открытой линии, включая завершённые, или chatId не из их числа. Проверка идёт до записи, состав чата не меняется |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеСообщение Record not found: Битрикс24 не нашёл чат при добавлении |
| HTTP422 | КодBITRIX_ERROR |
Описаниеerror.b24Code равен CHAT_NOT_IN_CRM: Битрикс24 не подтвердил, что чат привязан к объекту CRM |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеБитрикс24 отклонил запрос по другой причине, текст — в message |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеБитрикс24 отказал владельцу ключа из-за недостатка прав |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеУ ключа нет скоупа imopenlines |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч в режиме «только чтение» |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
| HTTP401 | КодINVALID_API_KEY |
ОписаниеКлюч не опознан |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ личного ключа нет доступа к порталу Битрикс24, у ключа приложения не передан токен сессии в Authorization |
| HTTP429 | КодRATE_LIMITED |
ОписаниеПревышен лимит 120 запросов в минуту на портал. Лимит делится между репликами платформы, поэтому код может прийти раньше 120-го запроса. Действующее значение для ключа — в заголовке x-ratelimit-limit, остаток — в x-ratelimit-remaining |
| HTTP429 | КодRATE_LIMITED |
ОписаниеБитрикс24 отклонил вызов по лимиту частоты запросов к порталу. В ответе приходит заголовок Retry-After |
| HTTP502 | КодOPENLINE_OPERATOR_FAILED |
ОписаниеБитрикс24 вернул неожиданный результат записи: не ID чата или чат, отличный от переданного chatId |
| HTTP502 | КодOPENLINE_OPERATOR_FAILED |
ОписаниеСписок чатов карточки пришёл в неожиданной форме. Проверка идёт до записи, состав чата не меняется |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеБитрикс24 недоступен |
| HTTP503 | КодBITRIX_TIMEOUT |
ОписаниеБитрикс24 не ответил вовремя, результат неизвестен. Перед повтором проверьте состав чата |
Полный список общих ошибок API — Ошибки.