🟧
Блок «Условие»
Учимся разветвлять сценарий в зависимости от данных пользователя. Это просто :)
Чтобы понять, что делает блок "Условие", начнём с нескольких общедоступных примеров.
С этими ситуациями сталкивались все :)
Ситуация 1. Максимально бытовая :)
Школьник получает оценку. В голове у родителей работает условие:
Если оценка 4 или 5 - похвалить.
Если оценка 2 или 3 - провести воспитательную беседу.
Смотрим реализацию в чат-боте:

Как это работает? У нас объявлено, что условие будет выполнено, если Оценка школьника будет больше 3.
Четыре больше трёх? Да. Этот вариант подойдёт, условие будет выполнено.
Это значит, что сработает зелёный выход, и приведёт к Шагу 2, где мы хвалим ребёнка за хорошую оценку.
То же самое с оценкой 5.
Что касается "плохих" оценок, будет действовать то же правило. Посмотрим:
Три больше трёх? Нет, Три равна трём. Условие не выполнено. На "Нет" сработает красный выход, и приведёт к Шагу 3, в котором мы проводим воспитательную беседу с ребёнком.
Ситуация 2.
Заполняем на каком-либо сайте форму регистрации, или форму с заказом обратного звонка.
Поле "Телефон" оставляем пустым, нажимаем "Отправить".
За такие проделки нам высветится предупреждение: "Введите корректный номер телефона".
Если же телефон заполнен корректно, наша заявка отправится.
Эта ситуация - самая настоящая работа Условия, посмотри:
Если поле "Телефон" содержит меньше 5 цифр - выводим на экране ошибку.Если всё заполнено корректно - отправляем данные в CRM или на почту.
В условии всегда есть два варианта событий. Положительное и отрицательное. И для каждого события у нас будет припасено дальнейшее решение.
Ситуация 3.
Получение товара возможно только после оплаты.
Задаём вопрос - деньги получены?
- Да - Отдаём товар.
- Нет - Нету денег, нет конфетки.
Применить Условие можно вообще к любой ситуации в реальной жизни . Теперь мы это понимаем, и нам будет максимально легко использовать эту конструкцию в чат-ботах :)
В режиме редактирования бота нажимаем на красную кнопку с плюсом в правом нижнем углу экрана.
Если ты не знаешь, как попасть в режим редактирования бота, и о чём тут вообще говорится - посмотри начальные статьи Создаём бота | С чего начать? и Блоки в боте | Краткое описание

Открываем панель добавления блоков

Выбираем "Добавить условие"

Для редактирования блока нужно кликнуть по нему левой кнопкой мыши.

Изменяем название при необходимости. Возможность редактирования названия нужна только для удобной навигации по блокам в чат-боте.
К примеру, можно написать "Условие: проверка оплаты", и т.д.
В блоке "Условие" можно проверять одновременно несколько условий.
Например:
Условие 1 : проверяем, заполнена ли переменная "Телефон".
Условие 2 : проверяем переменную "Возраст", она должна быть больше или равна 18.
Выбор соответствия условию(-ям) можно выбрать в этом параметре.

Соответствие каждому из условий означает, что все заданные условия при проверке должны отдавать результат "Да" ( Если использовать пример выше: И переменная телефон заполнена, И возраст больше или равен 18 ).
Если хотя бы одно условие будет "Нет" - сценарий пойдет по красной ветке, условие будет считаться невыполненным.
В данном случае условие выполнится при результате "Да", хотя бы на одно из множества условий.
По примеру выше:
Телефон заполнен, проверка успешная, результат - Да
Возраст 15, условие не выполнено, т.к. число должно быть больше или равно 18. Результат - нет.
При выборе соответствия одному из условий - блок условия отправит пользователя по зелёной ветке.
Условие будет считаться выполненным, даже когда будет выполнено только одно условие из 5.

Начнём разбор параметров по порядку.
Группа - это список пользователей, объединённых по какому-то признаку. Например, группа подписчиков, которые проходили бота с викториной, или группа подписчиков, которые купили товар/курс.
Условие с параметром "Группа" проверяет, состоит ли человек, проходящий бота, в определённой группе.

Как будет работать условие на скриншоте выше? Подписчик доходит до блока "Условие". В блоке "Условие" запускается проверка, состоит ли подписчик в группе "Оплатили". В зависимости от результата, Да, или Нет, будет строиться дальнейшая автоворонка.
Как использовать эту информацию в дальнейшем, решать только тебе :)
Например, если человек не состоит в группе "Оплатили"- следующим шагом мы отправим Товар, и предложим купить.
Чтобы было понятно, как работать с условиями "Больше, Меньше" представляем, что дни недели пронумерованы. Понедельник - первый день. Воскресенье - седьмой. Из этой логики Воскресенье больше чем Понедельник. А Понедельник, меньше Вторника, Пятницы, и т.д.
Возможные значения:
- Равен - проверяет совпадение на 100%. Если указан "понедельник", то условие сработает ТОЛЬКО в понедельник.
- Не равен - проверяет, чтобы был только не понедельник (выбрать нужный день). Пятница? Воскресенье? Вторник? - условие сработает. Если понедельник, то сценарий пойдёт по красной ветке.
- Больше чем - Пример: прохождение бота рассчитано на выходные дни. Чтобы это реализовать, поставим условие, что День Больше чем Пятница. Под это условие как раз подходят Суббота и Воскресенье.
- Меньше чем - Пример: нам нужно сделать прохождение бота только в будние дни. Для этого сделаем условие День Меньше чем Суббота. Под это условие попадут дни с Понедельника по Пятницу, т.е. все будние дни.
- Больше или равен - Пример: проводим акцию только в выходные дни. Для этого используем условие День Больше или равен Субботе. Под это условие подходят Суббота и Воскресенье.
- Меньше или равен - Пример: нам нужно сделать прохождение бота только в будние дни. Для этого используем условие День Меньше или равен Пятнице. С этим условием будут выбраны все дни с ПН по ПТ, т.е. будние дни.
Время устанавливается по Москве.
Возможные значения:
- Равен - Такое условие ожидает 100% совпадения времени, вплоть до минуты. Пример: мы решили раздавать щедрый бонус, но т олько тем, кто напишет в сообщество ровно в 20:00. Для этого используем Условие с параметром Время Равен 20:00. Это разовая акция, и если человек опоздал хоть на минутку, условие не сработает, и продлить его действие никак нельзя. Сурово, но действенно.
- Не равен - Суть этого условия в том, что оно выполнится только когда время не равно, к примеру, 22:00.
- Больше чем - Это условие может пригодиться, когда мы с уважением относимся ко сну своих подписчиков)) Задача - не беспокоить новыми сообщениями с 00:00 до 09:00. В какой-то логический момент ставим блок "Условие", после которого взаимодействие будет только с утра. Реализация: параметр Время Больше чем 09:00. С этим условием, сообщения смогут приходить в период с 09:01 по 23:59.

- Мень ше чем - Пример: записаться на вебинар можно до 19:00. Для этого делаем условие Время Меньше чем 19:00. Если время меньше 19:00, то добавляем человека в группу пользователей "Записались на вебинар", и потом сделаем для этой группы рассылку. Если человек пришёл в бота ровно в 19:00, или позже - грустим о том, что он не успел.

- Больше или равен - Пример реализации такой же, как и условием Больше чем. Хотим не беспокоить человека ночью, и писать только утром. Ставим условие параметр Время Больше или равен 09:00. Результат - бот не будет беспокоить новыми сообщениями в период с 00:00 до 08:59.
- Меньше или равен - Пример: нужно прекратить отправку новых сообщений вечером, чтобы не мешать людям спать. Ставим условие параметр Время Меньше или равен 21:00. Результат: с 21:01 до 23:59 новые сообщения не будут беспокоить человека.Можно соединить последние два условия, и не беспокоить человека в период с 21:01 до 23:59 и с 00:00 до 08:59. Пример реализации на скриншоте👇

С такими условиями время получения новых сообщений будет с 09:00 до 21:00.
Остались вопросы? Не знаешь, как правильно реализовать свою идею?
Напиши нам в поддержку "Как сделать .....?" и мы подскажем :)
Для параметра "Дата" есть следующие доступные значения:
- Равен - условие выполнится только в определённый день. Например, 8го марта отправляем промокод со скидкой на косметику. Если любой другой день - условие не сработает, бонусов не будет. Реализация: параметр Дата Равен 08.03.2022
- Не равен - условие выполнится в любой из 364-365 дней в году, кроме одного дня. Для чего может понадобиться ограничение для одного дня в году, мы не придумали. Но такая возможность есть :) Реализация: параметр Дата Не равен 31.12.2021
- Больше чем - условие выполнится, если дата, указанная в условии, уже прошла. Пример: показываем условия конкурса в новом году. Для этого поставим условие Дата Больше чем 31.12.2021. Под такое условие попадает весь январь 2022 года, февраль, и все дни 2022-го года, 23-го, и т.д.
- Меньше чем - условие выполнится, когда дата, написанная в условии, ещё не наступила. Пример: акция действует до февраля 2022 года. Нужно создать условие: Дата Меньше чем 01.02.2022.
- Больше или равен - условие выполнится, если дата, написанная в условии уже прошла, или сегодня дата, которая указана в условии. Например, акция действует до февраля. Напишем условие Дата Больше или равен 31.01.2022. Под это условие подойдёт весь февраль, март и т.д., а также и 31.01.2022, которую мы указали в условии.
- Меньше или равен - Пример: акция - успей до нового года. Реализация: параметр Дата Меньше или равен 31.12.2021. Под это условие подходят все даты, что были до 31 декабря, и само 31 декабря.
Самое банальное применение условия по параметру Имя - "Содержит".

Пример: нужно провести акцию в день святого валентина, и все Валентины получат подарок-скидку-бонус. Для этого делаем условие: Имя Содержит Валентин. Под такое условие попадёт и Валентин, и Валентина.
Но будь внимательным! Под это условие может попасть также и "Валентиниан" и "Невалентин", "Валентинка" и тому подобное. Потому что в этих словах тоже содержится "Валентин".
Чтобы такого не происходило - можно поставить условие параметр Имя Равен Валентин, и параметр Имя Равен Валентина. В таком случае ошибок не будет, и точное соответствие условию гарантировано.
С помощью условия "Заполнен" - "Не заполнен" можно проверить, заполнены ли эти данные. Но, для параметров Имя и Фамилия в 99% случаев информация будет заполнена, т.к. она автоматически берется из соц.сетей и мессенджеров.
Также можно проверить Имя/Фамилию на соответствие регулярке (регулярному выражению). Регулярное выражение - это список кракозябр, например, ^(1[8-9]|[2-8][0-9]|9[0-5])$, которые посимвольно пр оверяют, подходит написанное или нет. Например, номер телефона должен начинаться с +, содержать 12 символов, первой цифрой должна быть 7, и т.д.
Если по-простому, регулярное выражение - это список требований к тексту. Имя и Фамилию также можно проверять таким методом.
Пример: нам нужны все люди, с фамилией, заканчивающейся на -ОВ. Например, Иванов, Петров, Сидоров. Делаем такое условие: параметр Фамилия Соответствует регулярке ^.+?ов$
Если хоче шь проверять Имя, или любые другие данные регуляркой - напиши нам в тех.поддержку, мы поможем составить регулярку под твою задачу.
Также, ты можешь воспользоваться готов ым списком регулярных выражений:
Переменная - это термин из программирования, но понять его не сложно. Представим, что у нас есть шкаф с ящиками. И мы знаем, что в каждом ящике что-то лежит.
Например, в этом ящике - зимняя одежда, в том - одеяло, и т.д.
Переменная - это ящик, в котором что-то лежит. Например, выше мы уже работали с переменными Имя и Фамилия. У каждого пользователя они свои. У этого человека переменная Имя - Иван. Переменная Фамилия - Сидоров.
Переменные хранят значения, информацию. У Сидорова переменная "телефон" хранит 8-800-555-35-35. А у Иванова в переменной "телефон" содержится +7918-88888888-8888888.
И, точно также, как шкаф с ящиками, у нас есть информация о каждом пользователе, проходящем чат-бота. В разделе "Подписчики" открываем "шкаф" Иванова, и там много-много ящиков: имя, фамилия, телефон, email, количество баллов, статус оплаты, и много-много всего, что узнал о нём чат-бот.
И с этой информацией мы можем работать. Дальше узнаем, как можно применять условия к переменным.
Возможные значения:
Далее все примеры будут строиться на основе переменной "Баллы". Например, у нас есть простенький чат-бот с вопросами, и если ответ правильный - плюс 1 балл в переменную. Если неправильный - минус один балл из переменной.
- Равен - Пример: по окончанию теста должно получиться максимум 12 баллов. Чтоб ы определить самых крутых, делаем условие: переменная Баллы Равен 12. И если условие выполнено - кидаем респекты и уважуху.
- Не равен - Пример: чтобы сильно не унижать людей, разделим их на чемпионов с максимальным количеством баллов, и на тех, кто ответил не на все вопросы. Сделаем условие: переменная Баллы Не равен 12. Если условие выполнено - просто пишем, что "у тебя не получилось везде дать правильный ответ".
- Больше чем - Пример: будем считать, что 10-11-12 баллов, это хороший результат. Делаем условие: переменная Баллы Больше чем 9. Под это условие подходят все участники с баллами 10-12.
- Меньше чем - Пример: если количество баллов 5-6 и ниже - будем считать это плохим результатом. Для этого делаем условие: параметр Баллы Меньше чем 7. Под такое условие подходят все числа с минусом, а также с 0 до 6 включительно.
- Больше или равен - Пример: будем считать, что 10-11-12 баллов, это хороший результат. Делаем условие: переменная Баллы Больше или равен 10. Под это условие подходят все участники с баллами 10-12.
- Меньше или равен- Пример: если количество баллов 5-6 и ниже - будем считать это плохим результатом. Для этого делаем условие: параметр Баллы Меньше или равен 6. Под такое условие подходят все числа с минусом, а также с 0 до 6 включительно.
- Соответствует регул ярке - что такое регулярка, и как она работает, мы разбирали выше, в параметрах Имя и Фамилия. Пример: для нас главное, чтобы при прохождении теста человек не ушёл в минус. Для проверки этого можно использовать регулярное выражение. Реализация: параметр Баллы Соответствует регулярке ^\d+$ .Данное регулярное выражение взято из этой статьи, и будет проверять положительное целое число. Т.е. числа с минусом не пройдут в этом условии.(В этом примере было бы логичнее использовать условие Больше -1 , но регулярным выражением проверять такие вещи тоже можно :) )
- Содержит - Пример: можно также проверить, является ли число отрицательным, и сделать условие параметр Баллы Содержит - . Если там действительно отрицательное число, то условие сработает. Можно написать, что "дружище, ты не справился".
- Не содержит - Пример: проверяем, отрицательное число, или нет. Для этого также делаем условие параметр Баллы Не содержит - . Условие выполнится, если у числа не будет минуса.
- Заполнен - с условием "заполнен" можно проверить, проходил ли человек тест. Если не проходил - переменная Баллы будет пустой, т.е. не заполненной. Реализация: параметр Баллы Заполнен. Если заполнено, и тест проходился - условие выполнится.
- Не заполнен - это условие противоположно прошлому. Если выполнится, значит переменная Баллы пустая, и тест не проходился. Реализация: параметр Баллы Не заполнен.
Если ты читаешь этот текст, значит, вся статья прочитана, и ты теперь магистр блока Условие! Мы тебя поздравляем, и напоминаем о том, что ты всегда можешь обращаться к нам в тех.поддержку за помощью и советами :)
Last modified 1mo ago