Для AI-агентов: markdown этой страницы — /docs-content/entities/crm-forms/embedding-update.md индекс документации — /llms.txt
Обновить настройки встраивания формы
PATCH /v1/crm-forms/:id/embedding
Меняйте настройки показа формы по нажатию и через заданное время для размещения на сайте. Пропущенные настройки сохраняются.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрid (path) |
Типnumber | Обяз.да | ОписаниеПоложительный ID формы из списка форм |
Поля запроса (body)
Примеры настроек: click.settings.button.text, auto.settings.delay.
Получите updatedTime через Получить форму перед запросом. Замените YOUR_UPDATED_TIME в примерах этим значением. Передавайте настройки плоско, как в примерах, или в виде {updatedTime, fields: {click: {...}, auto: {...}}}. Для обёртки fields нужен объект. Не смешивайте вложенные настройки с настройками в корне.
Таблица содержит примеры настроек, а не исчерпывающий список. Пути свойств, значения и возможность очистки через null проверяет Битрикс24. Текущие варианты значений — в кодах встраивания формы.
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ПолеupdatedTime |
Типstring | Обяз.да | ОписаниеТекущая версия формы из GET /v1/crm-forms/:id |
Полеclick.settings.type |
Типstring / null | Обяз.нет | Описаниеpopup, panel |
Полеclick.settings.position |
Типstring / null | Обяз.нет | Описаниеleft, center, right |
Полеclick.settings.vertical |
Типstring / null | Обяз.нет | Описаниеbottom, top |
Полеauto.settings.type |
Типstring / null | Обяз.нет | Описаниеpopup, panel |
Полеauto.settings.position |
Типstring / null | Обяз.нет | Описаниеleft, center, right |
Полеauto.settings.vertical |
Типstring / null | Обяз.нет | Описаниеbottom, top |
Полеclick.settings.button.use |
Типboolean / null | Обяз.нет | ОписаниеИспользовать создаваемую кнопку |
Полеclick.settings.button.text |
Типstring / null | Обяз.нет | ОписаниеПодпись кнопки |
Полеclick.settings.button.font |
Типstring / null | Обяз.нет | Описаниеmodern, classic, elegant |
Полеclick.settings.button.align |
Типstring / null | Обяз.нет | Описаниеinline, left, center, right |
Полеclick.settings.button.plain |
Типboolean / null | Обяз.нет | ОписаниеПлоское оформление кнопки |
Полеclick.settings.button.rounded |
Типboolean / null | Обяз.нет | ОписаниеСкруглённые углы кнопки |
Полеclick.settings.button.outlined |
Типboolean / null | Обяз.нет | ОписаниеКонтурная кнопка |
Полеclick.settings.button.decoration |
Типstring / null | Обяз.нет | ОписаниеОформление, например dotted, solid или пустая строка |
Полеclick.settings.button.color.text |
Типstring / null | Обяз.нет | ОписаниеЦвет текста. Формат: #RGB, #RGBA, #RRGGBB, #RRGGBBAA |
Полеclick.settings.button.color.textHover |
Типstring / null | Обяз.нет | ОписаниеЦвет текста при наведении. Формат: #RGB, #RGBA, #RRGGBB, #RRGGBBAA |
Полеclick.settings.button.color.background |
Типstring / null | Обяз.нет | ОписаниеЦвет фона. Формат: #RGB, #RGBA, #RRGGBB, #RRGGBBAA |
Полеclick.settings.button.color.backgroundHover |
Типstring / null | Обяз.нет | ОписаниеЦвет фона при наведении. Формат: #RGB, #RGBA, #RRGGBB, #RRGGBBAA |
Полеauto.settings.delay |
Типinteger / null | Обяз.нет | ОписаниеСекунды: 3, 5, 7, 10, 15, 20, 25, 30, 40, 60, 120 |
Какие свойства можно записывать, решает Битрикс24. Поля ответа встраивания не задают локальный перечень настроек для записи.
Примеры
curl — личный ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/crm-forms/59/embedding" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"updatedTime": "YOUR_UPDATED_TIME",
"auto": {
"settings": {
"delay": 10
}
},
"click": {
"settings": {
"button": {
"text": "Write us"
}
}
}
}'
curl — OAuth-приложение
curl -X PATCH "https://vibecode.bitrix24.tech/v1/crm-forms/59/embedding" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"updatedTime": "YOUR_UPDATED_TIME",
"auto": {
"settings": {
"delay": 10
}
},
"click": {
"settings": {
"button": {
"text": "Write us"
}
}
}
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-forms/59/embedding', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
updatedTime: 'YOUR_UPDATED_TIME',
auto: { settings: { delay: 10 } },
click: { settings: { button: { text: 'Write us' } } },
}),
})
const { success, data, meta } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-forms/59/embedding', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
updatedTime: 'YOUR_UPDATED_TIME',
auto: { settings: { delay: 10 } },
click: { settings: { button: { text: 'Write us' } } },
}),
})
const { success, data, meta } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успехе |
Полеdata |
Типobject | ОписаниеНастройки встраивания из Битрикс24 после записи или {id}, если дополнительное чтение не удалось |
Полеdata.id |
Типnumber | ОписаниеID формы при сбое дополнительного чтения |
Полеmeta.warnings |
Типobject[] | ОписаниеПодтверждённая запись остаётся успешной при сбое чтения. CRM_FORM_READBACK_FAILED требует прочитать форму и встраивание до следующего изменения, не повторяя запись |
Полеmeta.redacted |
Типstring[] | ОписаниеПути с заменёнными учётными данными соединения. Такой ответ не является полной конфигурацией для обратного сохранения |
Полеdata.formActive |
Типboolean | ОписаниеАктивна ли форма |
Полеdata.resourcesReady |
Типboolean | ОписаниеГотовы ли ресурсы формы |
Полеdata.publicUrl |
Типstring | ОписаниеПубличная ссылка на форму вместе с публичной подписью |
Полеdata.inline |
Типobject | ОписаниеФорма внутри страницы |
Полеdata.click |
Типobject | ОписаниеФорма, открываемая по нажатию |
Полеdata.auto |
Типobject | ОписаниеФорма, открываемая через заданное время |
Полеdata.<variant>.code |
Типstring / null | ОписаниеHTML-код для размещения на сайте, включая null, если ресурсы не готовы |
Полеdata.<variant>.previewUrl |
Типstring | ОписаниеСсылка на предварительный просмотр, если передана. Отсутствующие поля и null сохраняются |
Полеdata.<variant>.settings |
Типobject / null | ОписаниеТекущие настройки из Битрикс24, включая null |
Полеdata.<variant>.options |
Типobject / null | ОписаниеДопустимые значения из Битрикс24, включая null |
Полеdata.<variant>.options.type |
Типstring[] | Описаниеpopup, panel |
Полеdata.<variant>.options.position |
Типstring[] | Описаниеleft, center, right |
Полеdata.<variant>.options.vertical |
Типstring[] | Описаниеbottom, top |
Полеdata.click.options.button.font |
Типstring[] | Описаниеmodern, classic, elegant |
Полеdata.click.options.button.align |
Типstring[] | Описаниеinline, left, center, right |
Полеdata.auto.options.delay |
Типnumber[] | Описание3, 5, 7, 10, 15, 20, 25, 30, 40, 60, 120 |
Пример ответа
Публичные домены и подписи в примере условные.
{
"success": true,
"data": {
"formActive": true,
"resourcesReady": true,
"publicUrl": "https://example.bitrix24.ru/crm_form_nfby7/?telemetry_sign=DUMMY_PUBLIC_SIGNATURE",
"inline": {
"code": "<script data-b24-form=\"inline/59/p4yyaj\" data-b24-form-telemetry-sign=\"DUMMY_PUBLIC_SIGNATURE\" data-skip-moving=\"true\">\n\t(function(w,d,u){\n\t\tvar s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);\n\t\tvar h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);\n\t})(window,document,'https://cdn.example.com/b13743910/crm/form/loader_59.js');\n</script>",
"previewUrl": "https://example.bitrix24.ru/pub/form/59_probe/p4yyaj/?view=preview&preview=inline",
"settings": null,
"options": null
},
"click": {
"code": "<script data-b24-form=\"click/59/p4yyaj\" data-b24-form-telemetry-sign=\"DUMMY_PUBLIC_SIGNATURE\" data-skip-moving=\"true\">\n\t(function(w,d,u){\n\t\tvar s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);\n\t\tvar h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);\n\t})(window,document,'https://cdn.example.com/b13743910/crm/form/loader_59.js');\n</script>",
"previewUrl": "https://example.bitrix24.ru/pub/form/59_probe/p4yyaj/?view=preview&preview=click",
"settings": {
"type": "panel",
"position": "right",
"vertical": "bottom",
"button": {
"use": true,
"text": "Write us",
"font": null,
"align": null,
"plain": false,
"rounded": false,
"outlined": false,
"decoration": null,
"color": {
"text": null,
"textHover": null,
"background": null,
"backgroundHover": null
}
}
},
"options": {
"type": [
"popup",
"panel"
],
"position": [
"left",
"center",
"right"
],
"vertical": [
"bottom",
"top"
],
"button": {
"font": [
"modern",
"classic",
"elegant"
],
"align": [
"inline",
"left",
"center",
"right"
]
}
}
},
"auto": {
"code": "<script data-b24-form=\"auto/59/p4yyaj\" data-b24-form-telemetry-sign=\"DUMMY_PUBLIC_SIGNATURE\" data-skip-moving=\"true\">\n\t(function(w,d,u){\n\t\tvar s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);\n\t\tvar h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);\n\t})(window,document,'https://cdn.example.com/b13743910/crm/form/loader_59.js');\n</script>",
"previewUrl": "https://example.bitrix24.ru/pub/form/59_probe/p4yyaj/?view=preview&preview=auto",
"settings": {
"type": "popup",
"position": "right",
"vertical": "bottom",
"delay": 10
},
"options": {
"type": [
"popup",
"panel"
],
"position": [
"left",
"center",
"right"
],
"vertical": [
"bottom",
"top"
],
"delay": [
3,
5,
7,
10,
15,
20,
25,
30,
40,
60,
120
]
}
}
}
}
Пример ответа при ошибке
400 — не передан updatedTime:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "updatedTime from GET /v1/crm-forms/:id is required"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
ОписаниеНекорректный ID формы или структура запроса |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеНеизвестный параметр или некорректная структура запроса |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеНе передан updatedTime |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеБитрикс24 отклонил настройку. Уточнения — в error.validation, исходный код — в error.b24Code |
| HTTP409 | КодCRM_FORM_REST_NOT_ENABLED |
ОписаниеREST-методы CRM-форм выключены на портале. Исходный код отсутствующего метода — в error.b24Code |
| HTTP403 | КодBITRIX_INSUFFICIENT_SCOPE |
ОписаниеТокену Битрикс24 не хватает скоупа. Исходный код — в error.b24Code |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеФорма не найдена |
| HTTP402 | КодCRM_FORM_WRITE_RESTRICTED |
ОписаниеТариф Битрикс24 не разрешает запись CRM-форм — бесплатный и демо-тариф |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеAPI-ключ не имеет скоупа crm |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеУ пользователя нет прав доступа |
| HTTP403 | КодCRM_FORM_SYSTEM_IMMUTABLE |
ОписаниеФорма системная — system: true в списке форм |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеAPI-ключ работает только на чтение |
| HTTP409 | КодCRM_FORM_VERSION_MISMATCH |
ОписаниеФорму изменили после переданного updatedTime. Текущее время изменения — в error.currentUpdatedTime |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ API-ключа не настроены учётные данные |
| HTTP500 | КодCRM_FORM_SIDE_EFFECT_FAILED |
ОписаниеИзменения уже записаны, но последующий шаг на стороне Битрикс24 не выполнен. Прочитайте форму перед повтором |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеНекорректный ответ с данными встраивания |
Ошибки Битрикс24 содержат исходный error.b24Code и переданные уточнения по полям в error.validation. Общие ошибки API — Ошибки.
Известные особенности
Ответ встраивания не добавляет выдуманную updatedTime. Перед следующим изменением встраивания или самой формы перечитайте форму. Если meta.warnings сообщает о сбое чтения, запись уже выполнена: не повторяйте её. Прочитайте форму и встраивание.
Объект встраивания сохраняет исходные поля. Переданные Битрикс24 resourcesReady: false и code: null остаются успешным ответом. Заменяются только учётные данные текущего соединения с путями в meta.redacted.