Для 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 — личный ключ

Terminal
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-приложение

Terminal
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 — личный ключ

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-приложение

javascript
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 принял вызов отправки

Пример ответа

JSON
{
  "success": true,
  "data": {
    "sent": true
  }
}

Пример ответа при ошибке

404 — сессия не найдена:

JSON
{
  "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, форма могла уже уйти клиенту. Перед повтором проверьте диалог, иначе клиент получит форму дважды.

Смотрите также