Для AI-агентов: markdown этой страницы — /docs-content/entities/crm-forms/update.md индекс документации — /llms.txt
Изменить форму
PATCH /v1/crm-forms/:id
Изменяет настройки сохранённой CRM-формы: название, поля, привязку к CRM, ответственных и тексты.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрid (path) |
Типinteger | Обяз.да | ОписаниеID формы. Список: GET /v1/crm-forms |
Поля запроса (body)
Передавайте плоское тело или объект в fields: {"fields":{"name":"Contact form"}}. Массив в fields — секция полей формы в плоском теле. Объект в fields нельзя сочетать с другими свойствами верхнего уровня, кроме updatedTime — это 400 INVALID_PARAMS. Свойства формы и их значения проверяет портал.
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ПолеupdatedTime |
Типstring | Обяз.да | ОписаниеТекущая версия формы — data.updatedTime из GET /v1/crm-forms/:id или из ответа предыдущей записи |
Полеname |
Типstring | null | Обяз.нет | ОписаниеНазвание формы в списке форм |
ПолеlanguageId |
Типstring | null | Обяз.нет | ОписаниеЯзык формы. Список: data.languages в GET /v1/crm-forms/configuration |
ПолеtemplateId |
Типstring | null | Обяз.нет | ОписаниеСценарий, из которого создана форма. Список: Список сценариев |
Полеcrm |
Типobject | Обяз.нет | ОписаниеПривязка к CRM. |
Полеcrm.entityScheme |
Типinteger | Обяз.нет | ОписаниеСхема создаваемых записей CRM. Список: data.entitySchemes в GET /v1/crm-forms/configuration |
Полеappearance |
Типobject | Обяз.нет | ОписаниеОформление: заголовок title, описание description, подпись кнопки buttonCaption и другие свойства. |
Полеfields |
Типarray | object | Обяз.нет | ОписаниеМассив полей формы или объект с конфигурацией запроса |
Полеfields[].name |
Типstring | Обяз.нет | ОписаниеИмя поля, например LEAD_NAME. Список: GET /v1/crm-forms/entity-fields |
Полеfields[].type |
Типstring | Обяз.нет | ОписаниеТип поля. Список: data.fieldTypes в GET /v1/crm-forms/configuration |
Полеfields[].label |
Типstring | Обяз.нет | ОписаниеПодпись поля в форме |
Полеfields[].required |
Типboolean | Обяз.нет | ОписаниеОбязательно ли поле для отправки. Передавайте явно: без флага сохраняется true |
Полеfields[].multiple |
Типboolean | Обяз.нет | ОписаниеПринимает ли поле несколько значений. Передавайте явно: без флага сохраняется true |
Полеresponsible |
Типobject | Обяз.нет | ОписаниеОтветственные за результаты формы |
Полеresponsible.userIds |
Типarray of integer | Обяз.нет | ОписаниеID ответственных. Список: GET /v1/users |
Полеagreements |
Типobject | Обяз.нет | ОписаниеНастройки соглашений в схеме Битрикс24 |
Полеsubmission |
Типobject | Обяз.нет | ОписаниеНастройки после отправки: тексты и адреса перехода при успехе и ошибке. |
Полеcallback |
Типobject | Обяз.нет | ОписаниеНастройки обратного звонка. |
Полеpayment |
Типobject | Обяз.нет | ОписаниеНастройки оплаты. |
Полеbooking |
Типobject | Обяз.нет | ОписаниеНастройки бронирования. |
ПолеpresetFields |
Типarray | Обяз.нет | ОписаниеПредустановленные значения полей |
Полеdependencies |
Типarray | Обяз.нет | ОписаниеЗависимости между полями |
Полеanalytics |
Типobject | Обяз.нет | ОписаниеНастройки аналитики |
Полеintegrations |
Типobject | Обяз.нет | ОписаниеНастройки интеграций |
ПолеspamProtection |
Типobject | Обяз.нет | ОписаниеЗащита от спама |
Справочник Поля контракта формы описывает метаданные только верхнего уровня. Имена вложенных свойств и исходные значения секций для сохранённой формы берите из полного ответа Прочитать форму. Секции передаются в схеме Битрикс24; доступность записи настроек определяет портал.
Примеры
curl — личный ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/crm-forms/91" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"updatedTime": "2026-11-05T11:16:55+03:00",
"name": "VIBE-PROBE 777758 flat, companies"
}'
curl — OAuth-приложение
curl -X PATCH "https://vibecode.bitrix24.tech/v1/crm-forms/91" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"updatedTime": "2026-11-05T11:16:55+03:00",
"name": "VIBE-PROBE 777758 flat, companies"
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-forms/91', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
updatedTime: '2026-11-05T11:16:55+03:00',
name: 'VIBE-PROBE 777758 flat, companies',
}),
})
const { data } = await res.json()
console.log('Новая версия:', data.updatedTime)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-forms/91', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
updatedTime: '2026-11-05T11:16:55+03:00',
name: 'VIBE-PROBE 777758 flat, companies',
}),
})
const { data } = await res.json()
Поля ответа
HTTP 200. Ответ — сохранённая форма, перечитанная после изменения. Свойства формы, кроме id, присутствуют только при успешном чтении.
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успехе |
Полеdata |
Типobject | ОписаниеИзменённая форма в том же формате, что у Прочитать форму. Метаданные свойств верхнего уровня: Поля контракта формы |
Полеdata.id |
Типinteger | ОписаниеID формы |
Полеdata.name |
Типstring | ОписаниеНазвание формы |
Полеdata.updatedTime |
Типstring | null | ОписаниеНовая версия формы. Передаётся в следующий запрос записи |
Полеdata.fields |
Типarray | ОписаниеПоля формы в сохранённом виде |
Полеmeta.warnings |
Типarray | ОписаниеПредупреждение, если сохранённое состояние не удалось прочитать |
Полеmeta.redacted |
Типarray of string | ОписаниеПути JSON, где заменены учётные данные текущего подключения. Такое представление нельзя сохранять обратно как полную конфигурацию |
Если запись прошла, а последующее чтение не удалось, ответ остаётся успешным: 200 только с data.id и meta.warnings[].code: "CRM_FORM_READBACK_FAILED". До следующей записи перечитайте форму через GET, чтобы получить текущую updatedTime. Успешную запись не повторяйте.
Пример ответа
Пример сокращён. Имена вложенных свойств и их значения берите из полного ответа GET конкретной настроенной формы. Поля контракта формы описывают метаданные только верхнего уровня.
{
"success": true,
"data": {
"id": 91,
"code": "91",
"name": "VIBE-PROBE 777758 flat, companies",
"active": false,
"system": false,
"createdTime": "2026-11-05T11:16:55+03:00",
"updatedTime": "2026-11-05T11:25:29+03:00",
"crm": {
"entityScheme": 1,
"duplicateMode": "",
"dealCategoryId": null,
"dealDuplicateControlEnabled": false,
"smartProcessCategoryId": null,
"smartProcessDuplicateControlEnabled": false
},
"fields": [
{
"name": "LEAD_NAME",
"type": "string",
"label": null,
"sort": 10,
"required": false,
"multiple": false,
"placeholder": null,
"valueType": null,
"value": null
}
],
"agreements": {
"enabled": false,
"items": []
}
}
}
Пример ответа при ошибке
409 — форма изменилась после чтения, переданный updatedTime устарел:
{
"success": false,
"error": {
"code": "CRM_FORM_VERSION_MISMATCH",
"message": "Версия CRM-формы устарела, изменения не сохранены: получите форму заново и повторите запрос",
"b24Code": "CRM_FORM_VERSION_MISMATCH",
"currentUpdatedTime": "2026-11-05T11:25:30+03:00"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP409 | КодCRM_FORM_VERSION_MISMATCH |
ОписаниеupdatedTime не совпадает с текущей версией формы. Изменения не сохранены, текущая версия — в error.currentUpdatedTime |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеФормы с таким id нет |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеВ теле нет updatedTime |
| HTTP400 | КодINVALID_PARAMS |
Описаниеid не положительное целое число, тело не JSON-объект, смешаны форматы тела или передан параметр строки запроса |
| HTTP402 | КодCRM_FORM_WRITE_RESTRICTED |
ОписаниеТариф Битрикс24 не разрешает запись CRM-форм — бесплатный и демо-тариф |
| HTTP403 | КодCRM_FORM_SYSTEM_IMMUTABLE |
ОписаниеФорма системная, её настройки не изменяются |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч только для чтения. Нужен ключ с правом записи |
| HTTP403 | КодBITRIX_INSUFFICIENT_SCOPE |
ОписаниеУ токена Битрикс24 нет необходимого скоупа |
| HTTP409 | КодCRM_FORM_REST_NOT_ENABLED |
ОписаниеНа портале выключены методы CRM-форм |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеБитрикс24 отказал в доступе: у пользователя нет права на изменение CRM-форм |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеКлючу не хватает скоупа crm |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан X-Api-Key |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ ключа нет токенов доступа к Битрикс24 |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеДругой отказ Битрикс24. Исходное сообщение сохраняется в error.message |
| HTTP500 | КодCRM_FORM_SIDE_EFFECT_FAILED |
ОписаниеИзменения уже записаны, но последующий шаг на стороне Битрикс24 не выполнен. Прочитайте форму перед повтором |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеБитрикс24 недоступен или вернул ответ неверного вида. Изменения могли сохраниться — прочитайте форму перед повтором |
Ошибки портала содержат исходный код в error.b24Code и ошибки полей в error.validation, если они переданы. Коды CRM_FORM_* сохраняют HTTP-статус, код и сообщение. Общие ответы 429, 502 и 503 — Лимиты и оптимизация. Полный список общих ошибок API — Ошибки.
Известные особенности
Частичное обновление. Свойства, которых нет в теле, остаются прежними. Переданный массив или объект заменяет прежний целиком: чтобы добавить одно поле формы, передайте в fields все поля вместе с новым. Пустой массив очищает коллекцию, null у скалярного свойства очищает его значение.