Роботы: условия, группы условий и операторы сравнения | Napulse

Роботы: условия, группы условий и операторы сравнения

Условие — развилка сценария: робот проверяет ответ клиента, тег, переменную, время, оплату или этап сделки и выбирает, куда идти дальше. Для одной проверки есть нода «Условие» (два выхода: выполнено / иначе), для нескольких вариантов — «Группа условий» (первое подходящее из списка, иначе — запасной выход). Здесь описаны обе ноды и все 61 оператор, которые есть в конструкторе.

Где найти: конструктор → «+» → «Условие» или «Группа условий»; настройки — шестерёнка на карточке. Кто видит: право «Техблок/Роботы: смотреть свои / все»; менять — «Техблок/Роботы: редактировать свои / все».

Нода «Условие»

Окно условия
Рис. 1. Условие «Спросили про рассрочку?»

Поля по порядку:

  1. «Название шага:» — «Спросили про рассрочку?».
  2. «Условие:» — оператор сравнения (список с поиском).
  3. Значение — что сравнивать. Вид поля зависит от оператора: текст, список тегов, линии, даты, дни недели и т. д. (ниже — по каждому оператору).
  4. Два выхода: левый — шаг, если условие выполнено (на карточке подписан «Если выполнено»), правый — шаг, если нет («Иначе»). Под номером шага видно его название.

На карточке ноды те же поля подписаны «Правило», «Если выполнено» и «Иначе».

Карточка условия
Рис. 2. Карточка условия на холсте

Когда условие проверяется. Условия на ответ клиента («Ответ равен», «Ответ содержит» и другие «Ответ…») смотрят на последнее сообщение клиента — ставьте их сразу после сообщения с «Ожиданием ответа» или в выход «Ответ на сообщение». Остальные условия (тег, переменная, время) проверяются в момент, когда клиент доходит до ноды.

Если у нужной ветки нет выхода, клиент остановится на условии. При сохранении конструктор предупредит: «не выбран выход «Да»» или «… «Нет»».

Как выбрать оператор

  1. Нажмите на список под «Условие:». Откроется окно с поиском и группами: «Ответ клиента», «Данные клиента», «Ответ оператора», «Теги и группы», «Переменные», «Время», «Роботы и каналы», «Оплата и сделка».

    Выбор условия
    Рис. 3. Список операторов

  2. Начните вводить слово — например, «чек»: останутся «Тип сообщения», «Чек подтверждён», «Сумма чека не меньше».

    Поиск условия
    Рис. 4. Поиск оператора по слову «чек»

  3. Выберите оператор, заполните значение и выходы, нажмите «Сохранить».

Готово: на холсте у условия две стрелки — к шагу «выполнено» и к шагу «иначе».

Некоторых операторов нет в списке для вашего аккаунта: «Состоит в сообществе» есть только у VK, «Состоит в тг-канале» — только у Telegram; через Umnico недоступны подписки, пол и линии.

Операторы: ответ клиента

Оператор Значение Когда выполнено
«Ответ равен» Текст; несколько вариантов через «;» Ответ совпадает с любым вариантом — без учёта регистра и пробелов по краям. «Оплачу сразу; беру; оплачу»
«Ответ содержит» Текст или /регулярное выражение/ Ответ содержит слово (без учёта регистра). В слэшах — регулярное выражение: /рассроч|частями|долями/
«Ответ начинается с» Начало ответа; несколько — через «;» Ответ начинается с одного из вариантов
«Ответ не содержит» Слово или /регулярное выражение/ Слова в ответе нет
«Ответ пустой» — В сообщении нет текста (например, прислали только фото)
«Ответ — число» — Целое или дробное число: 12, 3,5
«Ответ — телефон» — От 10 до 15 цифр; можно +, пробелы, скобки, дефисы
«Ответ — email» — Адрес вида name@example.com
«Ответ — дата» — Дата ДД.ММ.ГГГГ или ГГГГ-ММ-ДД, которая есть в календаре
«Тип сообщения» Флажки: «Текст», «Фото», «Документ», «Голосовое», «Видео», «Стикер» Входящее — один из выбранных типов. Фото или документ часто означают чек

Ответ равен
Рис. 5. «Ответ равен» с тремя вариантами через «;»

Ответ содержит
Рис. 6. «Ответ содержит» с регулярным выражением и подсказкой

Подсказка под полем: обычный текст ищется как подстрока; для регулярного выражения оберните шаблон в слэши: /шаблон/ или /шаблон/флаги (флаги i s m x u). Пример: /\d{3}-\d{2}/.

Ответ начинается с
Рис. 7. «Ответ начинается с»

Ответ — телефон
Рис. 8. «Ответ — телефон» — без поля значения

Тип сообщения
Рис. 9. «Тип сообщения» с выбранным «Фото»

Операторы: данные клиента

Оператор Значение Когда выполнено
«Имя равно» / «Имя не равно» Текст Имя из профиля мессенджера совпадает (не совпадает) без учёта регистра
«Имя содержит» / «Имя не содержит» Текст или /регулярное выражение/ Имя содержит (не содержит) текст
«Пол равен» / «Пол не равен» «Женский» / «Мужской» Пол из профиля совпадает (не совпадает)
«Находится в линии» / «Не находится в линии» Линия из списка проекта Диалог клиента сейчас на выбранной линии (не на ней)

Пол равен
Рис. 10. «Пол равен» → «Женский»

Находится в линии
Рис. 11. «Находится в линии» → «Линия 2»

Операторы: ответ оператора

Срабатывают на сообщение менеджера в диалоге (не клиента). Удобно, чтобы робот продолжил, когда менеджер ответил клиенту вручную.

Оператор Значение Когда выполнено
«Любой ответ оператора» — Менеджер написал что угодно
«Ответ оператора равен» Текст; варианты через «;» Реплика менеджера совпадает с вариантом
«Ответ оператора содержит» Текст или /регулярное выражение/ Реплика содержит текст
«Оператор ответил шаблоном» Шаблон сообщения из списка Менеджер отправил шаблон из раздела «Шаблоны». Совпадение ищется по самой длинной неизменной части шаблона (текст вне подстановок {…}), она видна в поле «Статическая часть шаблона...» и её можно поправить

Оператор ответил шаблоном
Рис. 12. «Оператор ответил шаблоном»

Пример: менеджер отправил шаблон «Реквизиты для оплаты» → робот через условие «Оператор ответил шаблоном» переходит к ожиданию чека.

Операторы: теги и группы

Оператор Значение Когда выполнено
«Есть тэг» / «Нет тэга» Тег из списка («Найти тэг...», можно «Создать новый тэг») У клиента есть (нет) этот тег. Уровень тега не важен — условие ищет тег везде
«Состоит в группе подписчиков» / «Не состоит в группе подписчиков» Группа подписчиков CRM Клиент состоит (не состоит) в группе; учитывается активное членство, без отписки

Есть тэг
Рис. 13. «Есть тэг» → «vip»

Группа подписчиков
Рис. 14. «Состоит в группе подписчиков» → «Были на вебинаре 20.10»

Операторы: переменные

У всех — тип («Пользовательская» / «Глобальная»), уровень («Робот», «Канал», у глобальной ещё «Проект») и выбор переменной (или «Инициализировать переменную»). Подробно об уровнях — в Переменные и функции.

Оператор Значение Когда выполнено
«Переменная равна» Значение Числа сравниваются как числа («3» = 3 = 3,0), текст — без учёта регистра. Пустая переменная не равна ничему
«Переменная не равна» Значение Обратное к «равна» (пустая переменная — «не равна»)
«Переменная меньше» / «Переменная больше» Число Обе стороны — числа и значение меньше (больше). Если в переменной не число — не выполнено
«Переменная имеет значение» — Переменная заполнена
«Переменная не имеет значения» — Переменная пустая или её нет
«Массив содержит значение» / «Массив не содержит значение» Значение В переменной-списке есть (нет) такой элемент; «2» находит и число 2

Переменная больше
Рис. 15. «Переменная больше»

Массив содержит
Рис. 16. «Массив содержит значение»

Операторы: время и даты

Всё время считается в часовом поясе проекта (настройки проекта; по умолчанию — Москва).

Оператор Значение Когда выполнено
«Время последнего контакта» «Все боты» или «Конкретный бот» (префикс), «Более» / «Менее», число, «Часы» / «Дни» / «Недели» / «Месяцы» / «Годы» С последнего контакта клиента прошло больше (меньше) указанного. Если контакта не было — «Более» выполнено
«Текущее время больше» / «равно» / «меньше» Время ЧЧ:ММ Сейчас позже, ровно (с точностью до минуты) или раньше указанного
«Текущее время между» С … до … Сейчас в окне; окно через полночь (22:00–06:00) тоже работает
«Рабочие часы» С … до … и рабочие дни Сейчас рабочий день и рабочее время
«День недели» Дни Пн … Вс Сегодня один из выбранных дней
«Дата равна» / «Дата раньше» / «Дата позже» Дата Сегодня эта дата / сегодня раньше / позже неё
«Дата в диапазоне» С … по … Сегодня между датами включительно
«День до/после дня рождения» «Через N дней», число (0 — сегодня, 1 — завтра, −1 — вчера) До дня рождения ровно столько дней. Дата рождения — из профиля или переменной клиента birthdate (15.06.1990 или 1990-06-15). В Telegram сначала берётся переменная

Время последнего контакта
Рис. 17. «Время последнего контакта»: более 12 часов по всем ботам

Текущее время больше
Рис. 18. «Текущее время больше» 21:00

Рабочие часы
Рис. 19. «Рабочие часы» 10:00–19:00, Пн–Пт

Текущее время между
Рис. 20. «Текущее время между»

День недели
Рис. 21. «День недели»: будни

Дата равна
Рис. 22. «Дата равна»

Дата в диапазоне
Рис. 23. «Дата в диапазоне» 20.10–26.10 — цена вебинара действует неделю

День рождения
Рис. 24. «День до/после дня рождения»

Операторы: роботы и каналы

Оператор Значение Когда выполнено
«Находится в боте с префиксом» Префикс робота Клиент сейчас или раньше находится в этом роботе (если его оттуда не удалили)
«Не находится в боте с префиксом» Префикс Обратное
«Находится в каком-либо боте кроме» Префикс Клиент есть хотя бы в одном другом роботе
«Не находится ни в одном боте кроме» Префикс Клиент есть только в этом роботе
«Состоит в сообществе» / «Не состоит в сообществе» (VK) Сообщество VK Клиент подписан (не подписан) на сообщество
«Состоит в тг-канале» / «Не состоит в тг-канале» (Telegram) Канал из подписных страниц проекта Клиент состоит (не состоит) в Telegram-канале прямо сейчас
«Канал клиента» / «Канал клиента не» «Telegram-бот», «Личный Telegram», «VK» Клиент пишет (не пишет) через выбранный канал

В боте с префиксом
Рис. 25. «Находится в боте с префиксом» → ZR («Реактивация «молчунов»»)

Состоит в тг-канале
Рис. 26. «Состоит в тг-канале»

Канал клиента
Рис. 27. «Канал клиента»

Операторы: оплата и сделка

Оператор Значение Когда выполнено
«Чек подтверждён» — Последняя «Проверка чека» клиента нашла подтверждённую оплату
«Сумма чека не меньше» Сумма Чек подтверждён и сумма в нём не меньше указанной (неподтверждённый чек не проходит)
«Этап сделки равен» Этап из цикла сделки Текущий этап клиента — этот
«Этап сделки дальше чем» / «Этап сделки раньше чем» Этап Клиент дальше (раньше) этого этапа по порядку цикла сделки

Этапы берутся из раздела «Цикл сделки» в настройках ИИ проекта. Если этапы не настроены, в списке будет «Этапы цикла сделки не настроены».

Чек подтверждён
Рис. 28. «Чек подтверждён»

Сумма чека
Рис. 29. «Сумма чека не меньше» 8300 — проверка первого платежа рассрочки

Этап сделки
Рис. 30. «Этап сделки равен» → «Выставлен счёт»

Нода «Группа условий»

Группа проверяет строки сверху вниз и ведёт клиента по выходу первой подходящей строки. Если ни одна не подошла — по выходу «Иначе (Else)». Это как «если… иначе если… иначе».

Окно группы условий
Рис. 31. Группа «Разбор ответа на оффер»

Поля:

  1. «Название шага:» — «Разбор ответа на оффер».
  2. Строки «Условие 1», «Условие 2»… — у каждой: оператор, значение, «+ Добавить проверку (И / ИЛИ)», «Выход (True)» и корзина удаления строки.
  3. «+ Добавить условие» — новая строка; в группе не больше 10 строк.
  4. «Иначе (Else)» — шаг, если ни одна строка не подошла.

Добавить условие и Иначе
Рис. 32. Кнопка «Добавить условие» и выход «Иначе (Else)»

Карточка группы
Рис. 33. Группа условий на холсте

Как сделать проверку «И» / «ИЛИ» в одной строке

Пример: VIP-клиентов в рабочее время ведём на A/B-тест скидки, а всех остальных — дальше по группе.

  1. В строке «Условие 3» выберите «Есть тэг» → «vip».
  2. Нажмите «+ Добавить проверку (И / ИЛИ)».
  3. В новой проверке выберите «Рабочие часы», 10:00–19:00, Пн–Пт.
  4. В списке «Выполнены» выберите «все проверки (И)» — нужно, чтобы выполнялось всё. «любая проверка (ИЛИ)» — достаточно одной.
  5. «Выход (True)» → ZP13 «Тест: скидка или бонус».

Проверка И / ИЛИ
Рис. 34. Строка «Есть тэг vip» И «Рабочие часы»

Готово: строка выполнится только у VIP в рабочее время.

В дополнительную проверку можно поставить операторы с простым значением: теги, ответ клиента («равен», «содержит», «начинается с», «не содержит», «пустой», «число», «телефон», «email», «дата»), канал и тип сообщения, день недели, диапазон дат, рабочие часы, «Текущее время между», группы подписчиков, чек и этап сделки. Сложные операторы (шаблон оператора, последний контакт, подписка VK/TG, переменные) — только основной проверкой строки.

Порядок строк важен: ставьте узкие условия выше общих. Сработает первое подходящее, а не самое точное. Нужно больше 10 вариантов — объедините проверки в строке или поставьте вторую группу в «Иначе».

Практический сценарий: разобрать ответ на оффер курса

Клиент получил оффер «Курс 24 900 ₽, можно в рассрочку» с кнопками в клавиатуре.

  1. Создайте «Группу условий» «Разбор ответа на оффер» и свяжите с выходом «Ответ на сообщение» оффера.
  2. Строка 1: «Ответ равен» «Оплачу сразу; беру; оплачу» → ZP9 «Ссылка на оплату».
  3. Строка 2: «Ответ содержит» /рассроч|частями/ → ZP10 «Условия рассрочки».
  4. Строка 3: «Есть тэг» vip И «Рабочие часы» → ZP13 «Тест: скидка или бонус».
  5. «Иначе (Else)» → ZP12 «Что мешает купить?» — ИИ-классификатор разберёт свободный ответ.
  6. Сохраните и проверьте на себе все четыре варианта.

Готово: нажал «Оплачу сразу» — получил ссылку, написал «а можно частями?» — получил условия рассрочки, написал что-то другое — ответ разбирает ИИ.

На телефоне

Окно условия открывается на весь экран; список операторов — поверх окна с поиском. Строки группы условий идут одна под другой. Собирать большие группы удобнее на компьютере.

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

Условие всегда уходит в «Иначе». Для «больше / меньше» в переменной должно быть число, а не текст вроде «5 шт». Для ответов проверьте, что условие стоит после сообщения с ожиданием ответа. Для времени — часовой пояс проекта.

Сработала не та строка группы. Выбирается первая подходящая сверху. Поднимите более точную строку выше.

Клиент застрял на условии. Не задан выход для одной из веток. У группы обязательно заполните «Иначе (Else)» — иначе клиент встанет на паузу.

«Ответ равен» не срабатывает на кнопку. Текст кнопки в клавиатуре должен совпасть с вариантом. Регистр и пробелы по краям не важны, а эмодзи и знаки внутри — важны.

Связанные разделы