Вернуться к списку Вернуться к статьям
Статьи

Условия и ветвления в роботе Битрикс24: как настроить разные действия

Условие в собственном роботе Битрикс24 выбирает дальнейший путь по результату сравнения. В «Конструкторе роботов S-WEBS» к выходам «Да» и «Нет» можно подключить разные действия. Так схема использует уже найденный контакт или создаёт новый, выполняя нужную ветвь при конкретном запуске.

Ниже разберём именно выбор действия. Полная инструкция по контакту для лида объясняет создание всей схемы и подключение робота к CRM. Пример относится к порталам с лидами; на Базовом тарифе лидов нет.

Сначала сформулируйте вопрос условия

Хорошее условие отвечает на один проверяемый вопрос. Для контактного сценария это «Контакт найден?». Блок поиска возвращает признак found типа «Да/нет», а условие сравнивает его со значением «Да».

Такой вопрос отделяет два нормальных результата поиска. Найденный контакт нужно использовать повторно. Если контакт не найден, схема может перейти к созданию. Ошибка доступа или запроса не означает, что контакта нет: создавать запись на основании такой ошибки нельзя.

Перед настройкой полезно записать правила без названий блоков:

Результат поиска Дальнейшее действие
Контакт найден Использовать полученный ID, пропустить создание
Контакт не найден Выполнить блок создания контакта из лида
Поиск завершился ошибкой Разобраться с ошибкой; отсутствие контакта не подтверждено

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

Найденный контакт ведёт к повторному использованию, отсутствие к созданию, ошибка поиска к проверке ошибки

Ошибка поиска не является ответом «контакт не найден». Для сравнения нужен логический признак.

Откуда условие получает данные

В настройках блока «Условие» укажите источники двух сравниваемых значений.

  1. В поле «Первое значение» выберите результат блока «Найти контакт для лида», выход «Контакт найден».
  2. Задайте сравнение «Равно».
  3. Для «Второго значения» выберите «Ввести значение».
  4. Укажите тип «Да/нет» и значение «Да (true)».

Условие должно получать реальный результат предыдущего шага. Если вместо него вручную ввести «Да», схема всегда пойдёт по одной ветви, независимо от поиска.

Тип тоже имеет значение. Логическое true и текст «true» относятся к разным данным. В форме выбирайте тип «Да/нет». Если готовите JSON для моделирования, используйте true или false без кавычек. ID найденного контакта остаётся отдельным выходом поиска; он пригодится следующему действию.

Условие Контакт найден сравнивает результат поиска с Да

Условие получает признак «Контакт найден» из блока поиска и сравнивает его с «Да». Это настройка схемы; обращения к CRM кадр не подтверждает.

Соедините два маршрута

В графовом редакторе раздел «Связи» позволяет задать исходный блок, следующий блок и выход источника. У условия доступны «Да» и «Нет». Эти подписи обозначают результат сравнения, а не оценку того, хороший ли получился результат.

Для контактного примера настройте связи так:

  • «Найти контакт для лида» продолжает выполнение в «Условии».
  • Выход «Да» ведёт к общему продолжению без создания.
  • Выход «Нет» ведёт в «Создать контакт из лида».
  • После создания маршрут приходит к тому же общему продолжению.

В полной контактной схеме общим продолжением служит «Слияние ветвей», а затем «Привязать контакт к лиду». Слияние помогает передать дальше ID контакта из выбранного пути. Подробно эта задача разобрана в статье об объединении веток.

Проверьте связи визуально: линия от выхода «Нет» должна идти в создание, а линия от «Да» обходить его. Ветка с найденным контактом не должна случайно проходить через создание новой карточки.

Контактная схема с двумя путями и общим продолжением

Обзор контактной схемы: поиск, условие, создание при необходимости, слияние и привязка. Видимый граф не доказывает реальное выполнение внешних операций.

Проверьте каждую ветвь отдельно

Откройте «2. Проверить» → «Проверка и моделирование». Сначала выполните «Проверить схему», затем задайте синтетические входы и явные ответы портальных блоков.

Для первого опыта используйте ответ поиска с found=true и положительным тестовым ID контакта. В выполненных шагах создание должно быть пропущено. Итог контактной схемы должен содержать этот ID и created=false.

Во втором опыте задайте found=false, contact_id=null, match_count=0. Для блока создания укажите тестовый ответ с ID нового контакта и created=true. Убедитесь, что создание выполнено и его ID дошёл до результата.

Отдельно проверьте ошибочный вход: например, строку вместо логического признака. Успешный расчёт с неверным типом не должен становиться нормой. Если вы поменяли условие или связи, повторите проверку: прежний результат относится к прежней схеме.

Моделирование не читает и не меняет CRM. Оно проверяет решение на заданных ответах. Перед включением робота нужен настоящий запуск на тестовом лиде с проверкой карточек и прав исполнителя.

Модель найденного контакта: ID 501, создан Нет

Синтетическая модель найденного контакта вернула contact_id=501 и created=false; выполнено шесть блоков. Это заданные ответы модели, а не поиск в настоящей CRM.

Модель ветви создания: ID 501, создан Да

Вариант модели с отсутствующим контактом вернул contact_id=501 и created=true; выполнено семь блоков. Настоящий контакт этим моделированием не создавался.

Где ещё пригодится развилка

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

Развилка не создаёт параллельное выполнение. В обычном сценарии выбирается нужный путь; долговременные ожидания и согласования к этой схеме не относятся. Возможности и пределы приложения описаны на странице Конструктора роботов.

Частые вопросы

Почему всегда выполняется одна ветвь?

Проверьте источник первого значения, тип второго значения и оператор. Частая ошибка: в обоих полях указаны постоянные значения, поэтому данные предыдущего шага не влияют на решение.

Можно ли считать ошибку поиска ответом «Нет»?

Нет. Ошибка не подтверждает отсутствие контакта. Сначала установите причину ошибки и фактическое состояние CRM.

Условие прошло моделирование. Можно включать его для рабочих лидов?

Сначала проверьте сохранённую версию и реальный запуск на тестовых данных портала. Моделирование не подтверждает доступ к CRM или результат записи.

Приложение из статьи

  • Конструктор роботов

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