← К заметкам

Заметки

user.update возвращает true, но поле пользователя не меняется

Успешный ответ user.update ещё не означает, что запрос передал нужное поле. Частая ошибка — скопировать структуру CRM-запроса и положить значения внутрь FIELDS. У этого метода такой обёртки нет.

Тело запроса для изменения должности выглядит так:

{
  "ID": 17,
  "WORK_POSITION": "Разработчик интеграций"
}

ID и WORK_POSITION находятся на одном уровне. Для собственного пользовательского поля принцип тот же: передавайте его реальный код, а значение оформляйте в соответствии с типом и множественностью поля.

Метод user.userfield.update решает другую задачу: меняет настройки самого поля, например подпись или набор значений списка. В его параметре id ожидается ID настройки поля, а не ID сотрудника.

У user.update есть ограничения по правам вызывающего пользователя. Но если ответ успешный, а значение осталось прежним, сначала сравните отправленный JSON с параметрами метода и прочитайте сотрудника через user.get. Выдача дополнительных прав не исправляет вложенность JSON.

Обратный пример: crm.deal.add требует объект fields.

Документация: user.update; user.userfield.update.