Для AI-агентов: markdown этой страницы — /docs-content/openlines/send-form.md индекс документации — /llms.txt
Отправить CRM-форму клиенту
POST /v1/openlines/sessions/send-form
Отправляет CRM-форму в диалог Открытой линии. Клиент получает реальное сообщение. Битрикс24 проверяет доступ текущего пользователя к чату.
Нужны оба скоупа: imopenlines и crm, и ключ с правом записи.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ПолеsessionId |
Типinteger | Обяз.да | ОписаниеПоложительный ID сессии Открытой линии, не chatId. Поиск: POST /v1/openlines/sessions/search |
ПолеformId |
Типinteger | Обяз.да | ОписаниеПоложительный ID CRM-формы. Список: GET /v1/crm-forms |
Принимаются только эти два поля. Код, название и публичный код безопасности формы сервер получает сам. При получении этих данных могут быть созданы отсутствующие загрузчики JavaScript для форм в Битрикс24.
Примеры
curl — личный ключ
curl -X POST 'https://vibecode.bitrix24.tech/v1/openlines/sessions/send-form' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"sessionId":9,"formId":8}'
curl — OAuth-приложение
curl -X POST 'https://vibecode.bitrix24.tech/v1/openlines/sessions/send-form' \
-H 'X-Api-Key: YOUR_APP_KEY' \
-H 'Authorization: Bearer USER_SESSION_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"sessionId":9,"formId":8}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/sessions/send-form', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ sessionId: 9, formId: 8 }),
})
const { data } = await res.json()
console.log(data.sent)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/sessions/send-form', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ sessionId: 9, formId: 8 }),
})
const { data } = await res.json()
console.log(data.sent)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata.sent |
Типboolean | ОписаниеВсегда true: Битрикс24 принял вызов отправки |
Пример ответа
{
"success": true,
"data": {
"sent": true
}
}
Пример ответа при ошибке
404 — сессия не найдена:
{
"success": false,
"error": {
"code": "NO_SESSION_ERROR",
"message": "Error getting session info"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодMISSING_REQUIRED_FIELDS |
ОписаниеНет sessionId или formId |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеТело не JSON-объект, передано поле кроме sessionId и formId, или ID не положительное целое число |
| HTTP400 | КодSESSION_ID_EMPTY |
ОписаниеБитрикс24 отклонил запрос: не передан ID сессии |
| HTTP400 | КодFORM_INFO_EMPTY |
ОписаниеБитрикс24 отклонил запрос: нет данных формы |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеУ ключа нет скоупа imopenlines или crm |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч только на чтение |
| HTTP403 | КодACCESS_ERROR |
ОписаниеБитрикс24 отказал в доступе к диалогу |
| HTTP404 | КодNO_SESSION_ERROR |
ОписаниеСессия с таким sessionId не найдена |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеФормы с таким formId нет на портале. Текст сообщения приходит от Битрикс24 |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеФорма есть, но не найдена в списке форм портала. Сообщение CRM form not found |
| HTTP502 | КодBITRIX_RESPONSE_INVALID |
ОписаниеБитрикс24 вернул некорректные данные формы или не подтвердил отправку |
Тексты отказов Битрикс24 передаются без изменений. Общие отказы — Лимиты и оптимизация, полный список общих ошибок API — Ошибки.
Известные особенности
sent не подтверждает доставку. Поле означает, что Битрикс24 принял вызов, а не что клиент получил сообщение. Внутренние коды формы не возвращаются.
Повтор после сбоя может отправить дубль. Если ответ не пришёл или пришёл 502 BITRIX_RESPONSE_INVALID, форма могла уже уйти клиенту. Перед повтором проверьте диалог, иначе клиент получит форму дважды.