Для AI-агентов: markdown этой страницы — /docs-content/openlines/quick-replies/create.md индекс документации — /llms.txt
Создать быстрый ответ
POST /v1/openline-configs/:lineId/quick-replies
Добавляет быстрый ответ в открытую линию — заготовку текста, которую оператор вставляет в диалог с клиентом.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
ПараметрlineId (path) |
Типinteger | Обяз.да | ОписаниеID открытой линии. Список: GET /v1/openline-configs |
Поля запроса (body)
Тело передаётся плоско, без обёртки fields.
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеtext |
Типstring | Обяз.да | ОписаниеТекст ответа. Строка из одних пробелов не принимается |
ПолеsectionId |
Типinteger | Обяз.нет | ОписаниеID раздела этой же линии из data.sections ответа GET /v1/openline-configs/:lineId/quick-replies. Без поля ответ создаётся без раздела, sectionId в ответе равен 0 |
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/openline-configs/3/quick-replies" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Доставка по городу занимает один-два рабочих дня",
"sectionId": 127
}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/openline-configs/3/quick-replies" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Доставка по городу занимает один-два рабочих дня",
"sectionId": 127
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/openline-configs/3/quick-replies', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: 'Доставка по городу занимает один-два рабочих дня',
sectionId: 127,
}),
})
const { data } = await res.json()
console.log('ID ответа:', data.id)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/openline-configs/3/quick-replies', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: 'Доставка по городу занимает один-два рабочих дня',
sectionId: 127,
}),
})
const { data } = await res.json()
console.log('ID ответа:', data.id)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успехе |
Полеdata |
Типobject | ОписаниеСозданный быстрый ответ. Те же поля, что у записи data.replies[] в списке быстрых ответов |
Полеdata.id |
Типinteger | ОписаниеID созданного ответа. Нужен для правки и удаления |
Полеdata.name |
Типstring | ОписаниеНазвание ответа — первые 100 символов text |
Полеdata.text |
Типstring | ОписаниеТекст ответа |
Полеdata.sectionId |
Типinteger | ОписаниеID раздела. 0 — ответ без раздела |
Полеdata.canEdit |
Типboolean | ОписаниеМожет ли пользователь ключа изменить ответ |
Полеdata.rating |
Типnumber | string | ОписаниеРейтинг ответа. У нового ответа — 1 |
Пример ответа
{
"success": true,
"data": {
"id": 7279,
"name": "Доставка по городу занимает один-два рабочих дня",
"text": "Доставка по городу занимает один-два рабочих дня",
"sectionId": 127,
"canEdit": true,
"rating": 1
}
}
Пример ответа при ошибке
400 — не передан text или в нём одни пробелы:
{
"success": false,
"error": {
"code": "MISSING_REQUIRED_FIELDS",
"message": "text must be a non-empty string"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодMISSING_REQUIRED_FIELDS |
Описаниеtext не передан, пустой или состоит из пробелов |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеlineId не положительное целое число |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеsectionId не целое неотрицательное число |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеsectionId не 0 и его нет среди data.sections этой линии. Ответ не создаётся |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеТело запроса не JSON-объект |
| HTTP400 | КодINVALID_JSON_BODY |
ОписаниеТело запроса не разбирается как JSON |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ ключа нет действующей авторизации в Битрикс24 |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеУ ключа нет скоупа imopenlines |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч в режиме «только чтение» |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеПередан sectionId, а быстрые ответы линии пользователю ключа недоступны: нет права просмотра или их нет на тарифе |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеБитрикс24 отказал пользователю ключа в доступе |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеОткрытой линии с таким lineId нет |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеБитрикс24 вернул ошибку. Текст — в message |
| HTTP429 | КодRATE_LIMITED |
ОписаниеПревышен собственный лимит метода. Общий потолок платформы — 120 запросов в минуту на портал, он делится между репликами платформы, поэтому код может прийти раньше 120-го запроса. Действующее значение — в заголовке x-ratelimit-limit |
| HTTP502 | КодOPENLINE_OPERATOR_FAILED |
ОписаниеБитрикс24 вернул ответ неожиданной формы |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеБитрикс24 недоступен |
| HTTP503 | КодBITRIX_TIMEOUT |
ОписаниеБитрикс24 не ответил вовремя. Ответ мог создаться: перед повтором проверьте список ответов |
Полный список общих ошибок API — Ошибки.
Известные особенности
Название задаётся только текстом. Поле name в теле запроса игнорируется, название ответа собирается из text.