Документация

Что такое Чатиум
С чего начать
Web разработка
Мобильная разработка
Общие понятия
GetCourse API
Справка
Библиотеки
Все статьи

Ограничение параллельных запусков разных воронок для того же объекта

Написано 5 месяцев назад
Просмотрен 8 раз
0

Иногда возникает задача не запускать воронку, если текущий пользователь уже проходит другую. Или запустить, но по другой ветке.

Для решения этой задачи можно использовать глобальные переменные.

Это переменные, которые присваиваются не агенту воронки, а исходному объекту (например пользователю или заказу). И к таким переменным можно обращать одновременно из разных воронок.

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

  1. При первом запуске присвоить объекту глобальную переменную
  2. На старте всех конкурентных воронок проверять, не присвоена ли переменная текущему объекту. Если присвоена, то завершить воронку или отправить в другую ветку.

Ниже подробнее о том, как это сделать.

Создание переменной

Для начала создадим переменную, которая будет отвечать за блокировку повторных запусков.

  1. Добавьте на схему блок "глобальная переменная".

  1. Создайте переменную. Например funnelStartedAt. Т.е. записывать будем время, когда запустилась воронка. Таким образом можно будет не только проверять факт запуска, но и учитывать когда это произошло.

  1. Нажмите создать. На этом всё. Переменная создана и готова к настройке.

Проверка переменной на старте воронки.

Теперь необходимо во всех конкурентных воронках на старте добавить проверку этой переменной и добавить реакции в зависимости от значения.

  1. Добавляем блок "глобальная переменная" туда, где требуется проверка.

  1. В блоке выбираем "извлечь переменную". Выбираем тип пользователя и название переменной, созданной в предыдущем блоке инструкции.

  1. Не забудьте установить чек-бокс "сохранить результат..." и указать название локальной переменной.

Т.е. в этом шаге мы "перекладываем" значение из глобальной переменной в локальную.

  1. Далее на переходах в следующие блоки нужно установить условие "значение переменных". И в тексте указать переменную, которую присвоили в пункте 3. В данном примере это переменная user.funnelStartedAt. И если хотим отсекать пользователей, для которых воронка запущена, добавляем условие "НЕ".

В приведенной в п.1. схеме если пользователь уже проходит другую воронку, ему будет отправлено сообщение "Вы уже начали другой курс..." и следующее сообщение отложено на 4 дня.

Присвоение переменной после запуска воронки.

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

Для этого:

  1. Добавляем блок "глобальная переменная" после старта воронки.

  1. Выбираем в настройках действие "задать переменную", выбираем объект и созданную вначале переменную.

В данном примере в качестве основного объекта используется пользователь. Вы можете это поменять в зависимости от вашей воронки. Например, если у вас воронка по чату (нет пользователя), то используйте тип объекта "чат". Внимание! Тип объекта при проверке на старте воронки должен совпадать с тем типом, который выбираете при установке.

  1. В качестве значения, для того, чтобы просто установить факт старта воронки, можете написать true. В текущем примере, присваивается new Date() - это специальная функция, которая возвращает текущее время (в часовом поясе UTC 0) в виде объекта даты. Если хотите превратить дату в число, можно написать Date.now(). Подробнее про числовое представление даты читайте здесь. Вариант с датой позволяет строить разное поведение, в зависимости от того, когда объект начал проходить воронку.

Готово! Теперь после успешного запуска воронки, будет записываться глобальная переменная для выбранного типа объекта. Её можно проверять из любой воронки, на любом этапе, с помощью блока "глобальная переменная".

Отключение блокировки перед завершением воронки

При таком подходе блокировки запусков, важно не забыть убрать блокировку, когда объект уже прошел воронку. Для этого, в конце воронки, используем всё тот же блок "глобальная переменная".

В настройках блока устанавливаем значение переменной null или false.

После этого объект будет успешно проходить проверку "не проходит другие воронки"

Воронки
Инструкции

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании