Кейсы Digital for Sales: использование приложений для Битрикс24

Как передать ответственного в REST-роботе Битрикс24, если переменная возвращает user_XX вместо ID

2026-01-23 18:28
При автоматизации в задачах Битрикс24 часто нужно запускать REST-методы: создавать элементы смарт-процессов, заполнять поля и сразу назначать ответственного — например, постановщика задачи. На практике это выглядит просто: в методе crm.item.add передать assignedById и подставить туда переменную из задачи.

В чем была проблема

Пользователь столкнулся с типичной ситуацией: если указать assignedById числом (ID сотрудника) — всё работает. А если подставить переменную вроде {{Постановщик}} — ответственный не назначается как ожидается, и элемент получает ответственного из поля «Запускать от имени». Причина оказалась не в методе и не в правах, а в формате данных: переменная возвращала строку вида user_XX, а REST-метод ждет чистое число ID.

Почему стандартные инструменты “не спасают”

В интерфейсе роботов это не очевидно: визуально переменная выглядит корректно, а ошибка часто маскируется под “странное поведение” (например, назначение “по умолчанию”). При этом JSON в роботе чувствителен к типам: поле assignedById должно быть числом, и любая строка (включая user_11) превращает значение в невалидное для этого поля или приводит к тому, что платформа применяет дефолтную логику.

Решение: дебаг + нормализация значения до числа

Подход оказался двухшаговым:

1) Сначала вывести фактическое значение переменной

Самый быстрый способ — временно отправить себе сообщение/уведомление и вывести туда значение {{Постановщик}} (или другой переменной, которую планируется подставлять). Так сразу видно, что приходит не “11”, а “user_11”.

2) “Отрезать” префикс user_ и оставить только цифры

Дальше остается привести значение к числу. В задачах и бизнес-процессах это обычно делают регулярным выражением (суть — удалить всё, что не цифра, или конкретно префикс user_).
Пример логики (идея, без привязки к конкретному действию):
  • вход: user_11
  • правило: заменить [^0-9] на пусто
  • выход: 11
И уже это значение подставлять в JSON без кавычек как число.
Пример параметров для crm.item.add (схематично):
{
"entityTypeId": 1044,
"fields": {
"title": "{{Название}}",
"assignedById": {{Постановщик_ID_Число}}
}
}
Где {{Постановщик_ID_Число}} — результат преобразования user_XX → XX.

Результат

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

Вывод

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