Обновить элемент crm.item.update

Если вы разрабатываете интеграции для Битрикс24 с помощью AI-инструментов (Codex, Claude Code, Cursor), подключите MCP-сервер, чтобы ассистент использовал официальную REST-документацию.

Scope: crm

Кто может выполнять метод: любой пользователь с правом «изменения» элементов объекта CRM

Метод обновляет элемент определенного типа объекта CRM, задав ему новые значения из параметра fields.

При обновлении элемента производится стандартный ряд проверок, модификаций и автоматических действий:

  • проверяются права доступа
  • проверяется заполненность обязательных полей, если изменена стадия элемента в рамках того же направления
  • проверяется заполненность зависимых от стадий обязательных полей, если изменена стадия элемента в рамках того же направления
  • проверяется корректность заполнения полей
  • полям присваиваются значения по умолчанию
  • если перед сохранением оказывается, что никакие значения полей не были изменены, то сохранение не производится
  • после сохранения запускаются роботы

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

entityTypeId*
integer

Идентификатор системного или пользовательского типа, чей элемент мы хотим изменить.

Числовые значения для системных типов (Лид — 1, Сделка — 2, Контакт — 3, Компания — 4, Счёт — 31 и др.) приведены в справочнике типов объектов CRM. Идентификатор смарт-процесса можно узнать методом crm.type.list

id*
integer

Идентификатор элемента, который мы хотим изменить.

Можно получить методом crm.item.list или crm.item.add

fields*
object

Объект формата

{
            field_1: value_1,
            field_2: value_2,
            ...,
            field_n: value_n,
        }
        

где

  • field_n — название поля
  • value_n — новое значение поля

У каждого типа сущности CRM свой набор полей. Это значит, что набор полей для изменения Лида не обязан подходить набору полей для изменения Контакта или Смарт-процесса.

Список доступных полей относительно каждого типа сущности описан ниже.

Некорректное поле в fields будет проигнорировано.

Примечание

В fields нужно передавать только те поля, которые нужно изменить

useOriginalUfNames
boolean

Параметр для управления форматом имен пользовательских полей в запросе и ответе.
Возможные значения:

  • Y — оригинальные имена пользовательских полей, например UF_CRM_2_1639669411830
  • N — имена пользовательских полей в camelCase, например ufCrm2_1639669411830

По умолчанию — N

Параметр fields

Обязательные параметры отмечены *

Идентификатор объекта CRM entityTypeId: 1

Название
тип

Описание

title
string

Название элемента

honorific
crm_status

Строковый идентификатор обращения лида (например 'HNR_RU_1' = 'г-н').

Список доступных обращений можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "HONOFIRIC" }

name
string

Имя

secondName
string

Отчество

lastName
string

Фамилия

birthdate
date

Дата рождения

companyTitle
string

Название компании

sourceId
crm_status

Строковый идентификатор источника.

Например 'CALL' = 'Звонок'.

Список доступных источников можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "SOURCE" }

sourceDescription
text

Дополнительно об источнике

stageId
crm_status

Строковый идентификатор стадии элемента.

Например 'NEW' = 'Не обработан'.

Список доступных стадий можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "STATUS" }

statusDescription
text

Дополнительно о стадии

post
string

Должность

currencyId
crm_currency

Идентификатор валюты элемента

isManualOpportunity
boolean

Режим расчета суммы. Возможные значения:

  • Y — ручной
  • N — автоматический

opportunity
double

Сумма

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

comments
text

Комментарий

assignedById
user

Идентификатор ответственного за элемент

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компании можно получить с помощью метода crm.item.list по entityTypeId = 4

contactId
crm_contact

Идентификатор контакта привязанный к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

originatorId
string

Внешний источник

originId
string

Идентификатор элемента во внешнем источнике

webformId
integer

Идентификатор CRM Формы

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе

utmSource
string

Рекламная система. Например: Yandex-Direct, Google-Adwords и другие

utmMedium
string

Тип трафика. Возможные значения:

  • CPC — объявления
  • CPM — баннеры

utmCampaign
string

Обозначение рекламной кампании

utmContent
string

Содержание кампании. Например, для контекстных объявлений

utmTerm
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

ufCrm...
crm_userfield

Пользовательское поле.

О пользовательских полях читайте раздел Пользовательские поля в CRM: обзор методов

Значения множественных полей передаются в виде массива.

Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

fm
multifield[]

Массив мультиполей.

Подробнее о мультиполях можно почитать в разделе crm_multifield

Структура мультиполя:

  • id — Уникальный идентификатор мультиполя. Если не существует мультиполя с данным id, то будет создано новое мультиполе
  • typeId — Тип мультиполя
  • valueType — Тип значения
  • value — Значение

Пример:

  fm: {
              "15": {
                  "valueType": "WORK",
                  "value": "+79999999",
                  "typeId": "PHONE"
              },
              "16": {
                  "valueType": "WORK",
                  "value": "bitrix@bitrix.ru",
                  "typeId": "EMAIL"
              }
          }
        

По умолчанию — null

Идентификатор объекта CRM entityTypeId: 2

Название
тип

Описание

title
string

Название элемента

typeId
crm_status

Строковый идентификатор типа сущности.

Например для сделки: 'SALE' = 'Продажа'

Список доступных типов сущности можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "DEAL_TYPE" }

categoryId
integer

Идентификатор направления (воронки) сделки

stageId
crm_status

Строковый идентификатор стадии элемента.

Например 'NEW' = 'Не обработан'.

Список доступных стадий можно узнать с помощью crm.status.list применив фильтр:

  • Если сделка находится в общей воронке (направления) — { ENTITY_ID: "DEAL_STAGE" }
  • Если сделка находится не в общей воронке (направления) — { ENTITY_ID: "DEAL_STAGE_{categoryId}" }, где
    categoryId это идентификатор воронки (направления) сделки

isRecurring
boolean

Является ли сделка регулярной. Возможные значения:

  • Y — да
  • N — нет

probability
integer

Вероятность %

currencyId
crm_currency

Идентификатор валюты элемента

isManualOpportunity
boolean

Режим расчета суммы. Возможные значения:

  • Y — ручной
  • N — автоматический

opportunity
double

Сумма

taxValue
double

Сумма налога

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компании можно получить с помощью метода crm.item.list по entityTypeId = 4

contactId
crm_contact

Идентификатор контакта привязанный к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

quoteId
crm_quote

Идентификатор предложения, который будет привязан к сделке

begindate
date

Дата начала элемента

closedate
date

Дата окончания элемента

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

comments
text

Комментарий

assignedById
user

Идентификатор ответственного за элемент

sourceId
crm_status

Строковый идентификатор источника.

Например 'CALL' = 'Звонок'.

Список доступных источников можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "SOURCE" }

sourceDescription
text

Дополнительно об источнике

leadId
crm_lead

Идентификатор лида, на основании, которого создается элемент

additionalInfo
string

Дополнительная информация

originatorId
string

Внешний источник

originId
string

Идентификатор элемента во внешнем источнике

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе

locationId
location

Идентификатор местоположения. Служебное поле

utmSource
string

Рекламная система. Yandex-Direct, Google-Adwords и другие

utmMedium
string

Тип трафика. Возможные значения:

  • CPC — объявления
  • CPM — баннеры

utmCampaign string

Обозначение рекламной кампании

utmContent
string

Содержание кампании. Например, для контекстных объявлений

utmTerm
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

Идентификатор объекта CRM entityTypeId: 3

Название
тип

Описание

honorific
crm_status

Строковый идентификатор обращения контакта.

Например 'HNR_RU_1' = 'г-н'.

Список доступных обращений можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "HONOFIRIC" }

name
string

Имя

secondName
string

Отчество

lastName
string

Фамилия

photo
file

Фотография

birthdate
date

Дата рождения

typeId
crm_status

Строковый идентификатор типа сущности.

Например для сделки: 'SALE' = 'Продажа'.

Список доступных типов сущности можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "CONTACT_TYPE" }

sourceId
crm_status

Строковый идентификатор источника.

Например 'CALL' = 'Звонок'.

Список доступных источников можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "SOURCE" }

sourceDescription
text

Дополнительно об источнике

post
string

Должность

comments
text

Комментарий

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

export
boolean

Участвует ли контакт в экспорте

assignedById
user

Идентификатор ответственного за элемент

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компаний можно получить с помощью метода crm.item.list по entityTypeId = 4

companyIds
crm_company

Массив идентификаторов компаний, которые будут привязаны к элементу

leadId
crm_lead

Идентификатор лида, на основании, которого создается элемент

originatorId
string

Внешний источник

originId
string

Идентификатор элемента во внешнем источнике

originVersion
string

Версия оригинала

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе

utmSource
string

Рекламная система. Yandex-Direct, Google-Adwords и другие

utmMedium
string

Тип трафика. Возможные значения:

  • CPC — объявления
  • CPM — баннеры

utmCampaign
string

Обозначение рекламной кампании

utmContent
string

Содержание кампании. Например, для контекстных объявлений

utmTerm
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

fm
multifield[]

Массив мультиполей.

Подробнее о мультиполях можно почитать в разделе crm_multifield

Структура мультиполя:

  • id — Уникальный идентификатор мультиполя. Если не существует мультиполя с данным id, то будет создано новое мультиполе
  • typeId — Тип мультиполя
  • valueType — Тип значения
  • value — Значение

Пример:

  fm: {
              "15": {
                  "valueType": "WORK",
                  "value": "+79999999",
                  "typeId": "PHONE"
              },
              "16": {
                  "valueType": "WORK",
                  "value": "bitrix@bitrix.ru",
                  "typeId": "EMAIL"
              }
          }
        

По умолчанию — null

Идентификатор объекта CRM entityTypeId: 4

Название
тип

Описание

title
string

Название элемента

typeId
crm_status

Строковый идентификатор типа сущности.

Например для сделки: 'SALE' = 'Продажа'.

Список доступных типов сущности можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "COMPANY_TYPE" }

logo
file

Логотип

bankingDetails
string

Банковские реквизиты

industry
crm_status

Строковый идентификатор типа индустрии.

Например 'IT' = 'Информационные технологии'.

Список доступных типов индустрий можно узнать с помощью метода crm.status.list применив фильтр { ENTITY_ID: "INDUSTRY"}

employees
crm_status

Строковый идентификатор типа количества сотрудников.

Значение берется из списка доступных, например 'EMPLOYEES_1' = 'менее 50'.

Список доступных типов количеств сотрудников можно узнать с помощью метода crm.status.list применив фильтр { ENTITY_ID: "EMPLOYEES" }

currencyId
crm_currency

Идентификатор валюты элемента

revenue
double

Годовой оборот

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

comments
text

Комментарий

isMyCompany
boolean

Является ли компания моей компанией

assignedById
user

Идентификатор ответственного за элемент

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3.

leadId
crm_lead

Идентификатор лида, на основании, которого создается элемент.

originatorId
string

Внешний источник

originId
string

Идентификатор элемента во внешнем источнике

originVersion
string

Версия оригинала

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе

utmSource
string

Рекламная система. Yandex-Direct, Google-Adwords и другие

utmMedium
string

Тип трафика Возможные значения:

  • CPC — объявления
  • CPM — баннеры

utmCampaign
string

Обозначение рекламной кампании

utmContent
string

Содержание кампании. Например, для контекстных объявлений

utmTerm
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

fm
multifield[]

Массив мультиполей.

Подробнее о мультиполях можно почитать в разделе crm_multifield

Структура мультиполя:

  • id — Уникальный идентификатор мультиполя. Если не существует мультиполя с данным id, то будет создано новое мультиполе
  • typeId — Тип мультиполя
  • valueType — Тип значения
  • value — Значение

Пример:

  fm: {
              "15": {
                  "valueType": "WORK",
                  "value": "+79999999",
                  "typeId": "PHONE"
              },
              "16": {
                  "valueType": "WORK",
                  "value": "bitrix@bitrix.ru",
                  "typeId": "EMAIL"
              }
          }
        

По умолчанию — null

Идентификатор объекта CRM entityTypeId: 7

Название
тип

Описание

title
string

Название элемента

assignedById
user

Идентификатор ответственного за элемент

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

content
text

Содержание

terms
text

Условия

comments
text

Комментарий

dealId
crm_deal

Идентификатор привязанной сделки

leadId
crm_lead

Идентификатор лида, на основании, которого создается элемент

storageTypeId
integer

Идентификатор типа хранения Возможные значения:

  • 1 — файл
  • 2 — WebDAV
  • 3 — диск

storageElementIds
integer

Массив файлов

webformId
integer

Идентификатор CRM Формы

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компании можно получить с помощью метода crm.item.list по entityTypeId = 4

contactId
crm_contact

Идентификатор контакта привязанный к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

locationId
location

Идентификатор местоположения. Служебное поле

currencyId
crm_currency

Идентификатор валюты элемента

isManualOpportunity
boolean

Режим расчета суммы.

  • Y — ручной
  • N — автоматический

opportunity
double

Сумма

taxValue
double

Сумма налога

stageId
crm_status

Строковый идентификатор стадии элемента.

Например 'DRAFT' = 'Новое'.

Список доступных стадий можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "QUOTE_STATUS" }

begindate
date

Дата начала элемента

closedate
date

Дата окончания элемента

actualDate
date

Актуально до

mycompanyId
crm_company

Идентификатор моей компании

utmSource
string

Рекламная система. Yandex-Direct, Google-Adwords и другие

utmMedium
string

Тип трафика.

  • CPC — объявления
  • CPM — баннеры

utmCampaign
string

Обозначение рекламной кампании

utmContent
string

Содержание кампании. Например, для контекстных объявлений

utmTerm
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов.

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

Идентификатор объекта CRM entityTypeId: 31

Название
тип

Описание

title
string

Название элемента

xmlId
string

Внешний код

assignedById
user

Идентификатор ответственного за элемент

opened
boolean

Является ли элемент доступным для всех. Возможные значения:

  • Y — да
  • N — нет

webformId
integer

Идентификатор CRM Формы

begindate
date

Дата начала элемента

closedate
date

Дата окончания элемента

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компании можно получить с помощью метода crm.item.list по entityTypeId = 4

contactId
crm_contact

Идентификатор контакта привязанный к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе

stageId
crm_status

Строковый идентификатор стадии элемента.

Например 'DT31_13:N' = 'Новый'.

Список доступных стадий можно узнать с помощью crm.status.list, применив фильтр: { ENTITY_ID: "SMART_INVOICE_STAGE_{categoryId}" }, где
categoryId — идентификатор воронки счетов по умолчанию. Его можно узнать с помощью crm.category.list по entityTypeId = 31

sourceId
crm_status

Строковый идентификатор источника.

Например 'CALL' = 'Звонок'.

Список доступных источников можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "SOURCE" }

sourceDescription
text

Дополнительно об источнике

currencyId
crm_currency

Идентификатор валюты элемента

isManualOpportunity
boolean

Режим расчета суммы. Возможные значения:

  • Y — ручной
  • N — автоматический

opportunity
double

Сумма

taxValue
double

Сумма налога

mycompanyId
crm_company

Идентификатор моей компании

comments
text

Комментарий

locationId
location

Идентификатор местоположения. Служебное поле

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов.

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

Идентификатор объекта CRM entityTypeId: можно получить методом crm.type.list или создать новый методом crm.type.add

Название
тип

Описание

title
string

Название элемента

xmlId
string

Внешний код

assignedById
user

Идентификатор ответственного за элемент

opened
boolean

Является ли элемент доступным для всех.

  • Y — да
  • N — нет

webformId
integer

Идентификатор CRM Формы

begindate
date

Дата начала элемента.

Доступно лишь при включенной настройке isBeginCloseDatesEnabled у соответствующего смарт-процесса.

closedate
date

Дата окончания элемента.

Доступно лишь при включенной настройке isBeginCloseDatesEnabled у соответствующего смарт-процесса

companyId
crm_company

Идентификатор компании привязанный к элементу.

Список компании можно получить с помощью метода crm.item.list по entityTypeId = 4.

Доступно лишь при включенной настройке isClientEnabled у соответствующего смарт-процесса

contactId
crm_contact

Идентификатор контакта привязанный к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3.

Доступно лишь при включенной настройке isClientEnabled у соответствующего смарт-процесса

contactIds
crm_contact[]

Список идентификаторов контакта привязанных к элементу.

Список контактов можно получить с помощью метода crm.item.list по entityTypeId = 3.

Доступно лишь при включенной настройке isClientEnabled у соответствующего смарт-процесса

observers
user[]

Массив идентификаторов пользователей, которые будут являться Наблюдателями в элементе.

Доступно лишь при включенной настройке isObserversEnabled у соответствующего смарт-процесса

categoryId
crm_category

Идентификатор воронки элемента смарт-процесса.

Если идентификатор не указан, то смарт-процесс будет перемещен в основную воронку.

Список доступных воронок можно узнать с помощью crm.category.list применив соответсвующий entityTypeId

stageId
crm_status

Строковый идентификатор стадии элемента.

Например 'DT1220_30:NEW' = 'Начало'.

Список доступных стадий можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "DYNAMIC_{entityTypeId}_STAGE_{categoryId}" }, где

  • entityTypeId — идентификатор типа смарт-процесса
  • categoryId — идентификатор воронки (направления) элемента смарт-процесса

Подробнее о воронках (направлениях).

Доступно лишь при включенной настройке isStagesEnabled у соответствующего смарт-процесса

sourceId
crm_status

Строковый идентификатор источника. (например 'CALL' = 'Звонок').

Список доступных источников можно узнать с помощью crm.status.list применив фильтр { ENTITY_ID: "SOURCE" }.

Доступно лишь при включенной настройке isSourceEnabled у соответствующего смарт-процесса

sourceDescription
text

Дополнительно об источнике.

Доступно лишь при включенной настройке isSourceEnabled у соответствующего смарт-процесса

currencyId
crm_currency

Идентификатор валюты элемента.

Доступно лишь при включенной настройке isLinkWithProductsEnabled у соответствующего смарт-процесса

isManualOpportunity
boolean

Режим расчета суммы. Возможные значения:

  • Y — ручной
  • N — автоматический

Доступно лишь при включенной настройке isLinkWithProductsEnabled у соответствующего смарт-процесса

opportunity
double

Сумма.

Доступно лишь при включенной настройке isLinkWithProductsEnabled у соответствующего смарт-процесса

taxValue
double

Сумма налога.

Доступно лишь при включенной настройке isLinkWithProductsEnabled у соответствующего смарт-процесса

mycompanyId
crm_company

Идентификатор моей компании.

Доступно лишь при включенной настройке isMycompanyEnabled у соответствующего смарт-процесса

ufCrm...
crm_userfield

Пользовательское поле. Смотрите раздел Пользовательские поля в CRM: обзор методов.

  • Значения множественных полей передаются в виде массива
  • Чтобы загрузить файл, в качестве значения пользовательского поля необходимо передать массив, где первый элемент — это имя файла, а второй — это закодированный в base64 контент файла.

parentId...
crm_entity

Поле-родитель. Элемент другого типа объекта CRM, который привязан к данному элементу.

Каждое такое поле имеет код parentId + {parentEntityTypeId}

Настройки смарт-процесса

Подробнее об управлении настройками смарт-процессов Вы можете прочитать в Смарт-процессы: обзор методов

Как обновить пользовательское поле типа file

  1. Загрузить новый файл вместо старого (не множественное поле)

    Чтобы заменить файл в не множественном поле, просто загрузите новый файл. Старый будет удален автоматически.

    {
                "fields": {
                    "ufCrm1617027453943": [
                        "myfile.pdf",
                        "...base64_encoded_file_content..."
                    ]
                }
            }
            
  2. Удалить значение пользовательского поля типа файл

    Для этого достаточно передать пустую строку ('') вместо значения.

  3. Оставить значение не множественного поля типа файл без изменений

    Самый простой вариант — не добавлять в fields ключ с этим полем.

    Но если надо и передать, и не изменить, то в качестве значения надо передать список, где по ключу id будет идентификатор файла.

    {
                "fields": {
                    "ufCrm1617027453943": {
                        "id": 433
                    }
                }
            }
            

    Важно

    Если в id передать отличное от текущего значение, то значение поля обнулится и файл будет стерт.

  4. Работа с множественным полем типа файл

    Значение множественного поля — это массив. Каждый элемент массива подчиняется тем же правилам, что и для не множественных значений.

    Как частично перезаписать значения множественного поля типа файл

    Например, сейчас в множественном поле типа файл находятся значения [12, 255, 44].

    Необходимо оставить файлы 12 и 44, а вместо 255 загрузить новый.

    Запрос должен выглядеть следующим образом:

    {
                "fields": {
                    "ufCrm1617027453943": [
                        {
                            "id": 12
                        },
                        {
                            "id": 44
                        },
                        [
                            "myNewFile.pdf",
                            "...base64_encoded_file_content..."
                        ]
                    ]
                }
            }
            

Примеры кода

Обновить сделку с id = 351

curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"entityTypeId":2,"id":351,"fields":{"title":"REST Сделка #1","stageId":"C9:UC_NYL06U","assignedById":6,"observers":[1,2,3],"opened":"N","typeId":"SERVICE","opportunity":10000,"currencyId":"USD","additionalInfo":"Изменение сделки через REST","isManualOpportunity":"N","utmSource":"google","ufCrm_1721244707107":200.05,"parentId1220":2}}' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.update
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"entityTypeId":2,"id":351,"fields":{"title":"REST Сделка #1","stageId":"C9:UC_NYL06U","assignedById":6,"observers":[1,2,3],"opened":"N","typeId":"SERVICE","opportunity":10000,"currencyId":"USD","additionalInfo":"Изменение сделки через REST","isManualOpportunity":"N","utmSource":"google","ufCrm_1721244707107":200.05,"parentId1220":2},"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/crm.item.update
        
    BX24.callMethod(
                'crm.item.update',
                {
                    entityTypeId: 2,
                    id: 351,
                    fields: {
                        title: "REST Сделка #1",
                        stageId: "C9:UC_NYL06U",
                        assignedById: 6,
                        observers: [1, 2, 3],
                        opened: "N",
                        typeId: "SERVICE",
                        opportunity: 10000,
                        currencyId: "USD",
                        additionalInfo: "Изменение сделки через REST",
                        isManualOpportunity: "N",
                        utmSource: "google",
                        ufCrm_1721244707107: 200.05,
                        parentId1220: 2,
                    },
                },
                (result) => {
                    if (result.error())
                    {
                        console.error(result.error());
        
                        return;
                    }
        
                    console.info(result.data());
                },
            );
        
require_once('crest.php');
        
        $result = CRest::call(
            'crm.item.update',
            [
                'entityTypeId' => 2,
                'id' => 351,
                'fields' => [
                    'title' => "REST Сделка #1",
                    'stageId' => "C9:UC_NYL06U",
                    'assignedById' => 6,
                    'observers' => [1, 2, 3],
                    'opened' => "N",
                    'typeId' => "SERVICE",
                    'opportunity' => 10000,
                    'currencyId' => "USD",
                    'additionalInfo' => "Изменение сделки через REST",
                    'isManualOpportunity' => "N",
                    'utmSource' => "google",
                    'ufCrm_1721244707107' => 200.05,
                    'parentId1220' => 2,
                ]
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        
try {
            $entityTypeId = 1; // Set your entity type ID
            $id = 123; // Set the ID of the item to update
            $fields = [
                'TITLE' => 'Updated Title',
                'DATE_MODIFIED' => (new DateTime())->format(DateTime::ATOM), // Example DateTime field
                // Add other fields as necessary
            ];
        
            $itemService = $serviceBuilder->getCRMScope()->item();
            $updateResult = $itemService->update($entityTypeId, $id, $fields);
        
            if ($updateResult->isSuccess()) {
                print("Item updated successfully: " . json_encode($updateResult));
            } else {
                print("Failed to update item.");
            }
        } catch (Throwable $e) {
            print("An error occurred: " . $e->getMessage());
        }
        

Обработка ответа

HTTP-статус: 200

{
            "result": {
                "item": {
                    "id": 351,
                    "createdTime": "2024-07-23T19:10:26+02:00",
                    "dateCreateShort": null,
                    "updatedTime": "2024-07-23T18:19:21+02:00",
                    "dateModifyShort": null,
                    "createdBy": 1,
                    "updatedBy": 1,
                    "assignedById": 6,
                    "opened": "N",
                    "leadId": null,
                    "companyId": 0,
                    "contactId": 0,
                    "quoteId": null,
                    "title": "REST Сделка #1",
                    "productId": null,
                    "categoryId": 9,
                    "stageId": "C9:UC_NYL06U",
                    "stageSemanticId": "P",
                    "isNew": "N",
                    "isRecurring": "N",
                    "isReturnCustomer": "N",
                    "isRepeatedApproach": "N",
                    "closed": "N",
                    "typeId": "SERVICE",
                    "opportunity": 10000,
                    "isManualOpportunity": "N",
                    "taxValue": 0,
                    "currencyId": "USD",
                    "probability": null,
                    "comments": "",
                    "begindate": "2024-07-23T02:00:00+02:00",
                    "begindateShort": null,
                    "closedate": "2024-07-31T02:00:00+02:00",
                    "closedateShort": null,
                    "eventDate": null,
                    "eventDateShort": null,
                    "eventId": null,
                    "eventDescription": null,
                    "locationId": null,
                    "webformId": 0,
                    "sourceId": "",
                    "sourceDescription": "",
                    "originatorId": null,
                    "originId": null,
                    "additionalInfo": "Изменение сделки через REST",
                    "searchContent": "351 Сделка #351 10200.00 Российский рубль Не Придумал Придумал Продажа Название2134234233 23.07.2024 31.07.2024",
                    "orderStage": null,
                    "movedBy": 1,
                    "movedTime": "2024-07-23T18:19:21+02:00",
                    "lastActivityBy": 1,
                    "lastActivityTime": "2024-07-23T18:10:26+02:00",
                    "isWork": null,
                    "isWon": null,
                    "isLose": null,
                    "receivedAmount": null,
                    "lostAmount": null,
                    "hasProducts": null,
                    "ufCrm_1721244707107": 200.05,
                    "parentId1220": 2,
                    "utmSource": "google",
                    "utmMedium": null,
                    "utmCampaign": null,
                    "utmContent": null,
                    "utmTerm": null,
                    "observers": [
                        1,
                        2,
                        3
                    ],
                    "contactIds": [],
                    "entityTypeId": 2
                }
            },
            "time": {
                "start": 1721751560.824475,
                "finish": 1721751564.481578,
                "duration": 3.6571030616760254,
                "processing": 3.1893951892852783,
                "date_start": "2024-07-23T18:19:20+02:00",
                "date_finish": "2024-07-23T18:19:24+02:00",
                "operating": 3.1893470287323
            }
        }
        

Возвращаемые значения

Название
тип

Описание

result
object

Корневой элемент ответа, содержит единственный ключ item

item
item

Информация об обновленном элементе, описание полей

time
time

Информация о времени выполнения запроса

По умолчанию имена пользовательских полей передаются и возвращаются в camelCase, например ufCrm2_1639669411830.
При передаче параметра useOriginalUfNames со значением Y пользовательские поля будут возвращаться с оригинальными именами, например UF_CRM_2_1639669411830.

Обработка ошибок

HTTP-статус: 400, 403

{
            "error": "NOT_FOUND",
            "error_description": "Смарт-процесс не найден"
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

Возможные коды ошибок

Статус

Код

Описание

Значение

403

allowed_only_intranet_user

Действие разрешено только интранет-пользователям

Пользователь не является интранет-пользователем

400

NOT_FOUND

Смарт-процесс не найден

Возникает, при передаче невалидного entityTypeId

400

ACCESS_DENIED

Доступ запрещен

У пользователя нет прав на изменение элементов типа entityTypeId

400

CRM_FIELD_ERROR_VALUE_NOT_VALID

Неверное значение поля "field"

Передано неправильное значения поля field

400

100

Expected iterable value for multiple field, but got type instead

В одно из множественных полей было передано значения типа type, хотя ожидался итерируемый тип

400

-

Недостаточно прав на смену стадии

Если пользователь пытается изменить стадию элемента, при том, что у него недостаточно прав

400

UPDATE_DYNAMIC_ITEM_RESTRICTED

Вы не можете изменить элемент из-за ограничений вашего тарифа

Ограничения тарифа не позволяют изменять элементы смарт-процессов

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение