Вопрос.
При настройке REST-робота для добавления товаров в сделку использовался метод crm.deal.productrows.set. В параметрах передавались название услуги, цена и количество, PRODUCT_ID был равен нулю, чтобы не создавать товар в каталоге. Однако после выполнения робота товарные позиции в сделке не появлялись, а метод возвращал пустой результат или null. Ответ.
Проблема оказалась не в правах, не в методе и не в логике автоматизации, а в структуре JSON. Метод crm.deal.productrows.set принимает массив товарных строк строго под ключом rows. Если использовать любое другое имя массива, даже при полностью валидном JSON, метод формально выполнится, но данные просто не будут применены к сделке. После приведения структуры к ожидаемому формату — id сделки и массив rows с товарными позициями — строки начали корректно добавляться. При PRODUCT_ID = 0 Битрикс24 воспринимает позицию как свободную строку сделки и не создаёт товар в каталоге, что идеально подходит для услуг, сопровождения и разовых работ