Найти в Дзене

Почему REST-робот не добавляет товары в сделку Битрикс24

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

Вопрос.
При настройке REST-робота для добавления товаров в сделку использовался метод crm.deal.productrows.set. В параметрах передавались название услуги, цена и количество, PRODUCT_ID был равен нулю, чтобы не создавать товар в каталоге. Однако после выполнения робота товарные позиции в сделке не появлялись, а метод возвращал пустой результат или null.

Ответ.
Проблема оказалась не в правах, не в методе и не в логике автоматизации, а в структуре JSON. Метод crm.deal.productrows.set принимает массив товарных строк строго под ключом rows. Если использовать любое другое имя массива, даже при полностью валидном JSON, метод формально выполнится, но данные просто не будут применены к сделке.

После приведения структуры к ожидаемому формату — id сделки и массив rows с товарными позициями — строки начали корректно добавляться. При PRODUCT_ID = 0 Битрикс24 воспринимает позицию как свободную строку сделки и не создаёт товар в каталоге, что идеально подходит для услуг, сопровождения и разовых работ.

Результат и вывод.
Исправление одного ключа в JSON полностью решило задачу: товары стали появляться в сделке, сумма рассчитывалась корректно, а каталог остался чистым. В подобных сценариях, где важно быстро проверить структуру запроса и увидеть реальный ответ метода, удобно использовать REST API - методы РЕСТ Битрикс24 и JSON в роботах и БП. Это же приложение позволяет заранее отловить подобные ошибки и избежать «тихих» сбоев в роботах, когда автоматизация формально отрабатывает, но фактически ничего не делает.