Автоматизация записи на офлайн-мероприятия
Руководитель сообщества «Психологические консультации, игры и тренинги» проводит психологические трансформационные игры в городе Петрозаводск. Игры проходят каждый месяц, определяются две даты на выбор.
Раньше запись проходила через личку или сообщения группы в свободной форме, что отнимало много времени у ведущей. Таким образом, встала задача автоматизировать запись игроков, попутно давая ответы на частые вопросы об игре. А также была необходима возможность автоматически формировать список записавшихся на конкретные даты и их количество по запросу админа.
Схема чат-бота, про которую я расскажу дальше, по сути подойдет для любых мероприятий, проходящих с определенной периодичностью. Адаптировать ее под свой проект, думаю, не составит особого труда. Она универсальная и убирает всю рутину по замене дат.
То есть, построив подобную схему один раз вы полностью избавите себя от постоянной необходимости заходить в нее, чтобы менять какую-либо информацию (даты, блоки проверок дат и пр.). Более того, чтобы менять сами даты, не нужно даже в сам сервис залезать, все меняется меньше чем за минуту, прямо с телефона (об этом в конце😉).
Небольшое лирическое отступление, чтобы в очередной раз признаться в любви самому замечательному сервису автоматизации ❤ BotHunter ❤
Сама схема небольшая и целиком выглядит так (см. скрин👇):
Пройдемся по логике моей схемы и рассмотрим ее поближе.
Бот срабатывает на слово «играть» (см. скрин ниже👇).
Далее идет добавление в списки: в обычный список тех, кто интересовался играми (используем для последующих догревающих рассылок) и облачный список, из которого сразу в рекламный кабинет в ретаргет.
После приходит первое сообщение с кнопками, при помощи которых пользователь может узнать, в какие даты проходят игры (ближайшие известные), сразу записаться на одну из игр, если захочет, узнать подробнее об игре (для новичков), а также узнать про бизнес-версию игры.
Кнопки все многоразовые, чтобы в любой момент можно было нажать на любую из них и получить нужную информацию, даже если уже вылетел из бота.
Значения дат находятся в переменных сообщества (глобальных) и автоматически подставляются во все блоки, и в текст, и в кнопки.
Добавляем в список тех, кто смотрел даты — в дальнейшем используем его для рассылок, за минусом тех, кто в итоге записался.
Когда пользователь выбирает удобную дату, записываем его ответ в пользовательскую переменную data.
В каждом блоке сообщений стоят напоминалки через час бездействия, чтобы возвращать в диалог тех, кто отвлекся.
Далее (см. скрин ниже👇), так как многие хотят прийти с друзьями, идет вопрос о количестве игроков. Ответ фиксируем в две переменные:
{%кол_чел%} — для того, чтобы админу дать эту информацию в тексте уведомления после регистрации пользователя.
{%kol_dop1%} и {%kol_dop2%} — для того, чтобы считать общее количество игроков (для двух дат отдельно) и выдавать админу в общем отчете. Простой вывод количества пользователей в списке тут не подходит, так как в список попадает только тот пользователь, который проходит бота, а не его друзья.
Иногда случается так, что на какую-то дату записывается меньше человек, чем нужно для проведения игры (необходимо не менее 7), поэтому далее уточняем, можем ли мы в такой ситуации позвать пользователя на другую дату или ему другие даты не подходят.
После ответа пользователю приходит сообщение с подтверждением регистрации, а админам — уведомление о записи на игру, в котором содержатся все необходимые данные о пользователе. Также в сообщении есть хэштег, по которому можно быстро отфильтровать и найти все сообщения с запиcью на игру в диалоге с группой.
Затем пользователь, в зависимости от того, какую дату он выбрал, попадает в один из двух списков. Эти списки нужны для того, чтобы выводить в отчете админу список с именами и фамилиями записавшихся.
Дальше, в определенное время (у нас это за 2 дня до даты игры) необходимо прислать сообщение с просьбой подтвердить участие.
И вот тут я не пользуюсь обычными таймерами с датами, ведь мне нужно чтобы эта схема была универсальная и подходила под любые даты всегда, без внесения в нее постоянных корректировок.
Поэтому я для начала нахожу разницу в днях между двумя датами — текущей датой и датой игры, на которую записался пользователь (см. скрин1👇)
Тут есть несколько вариантов: люди могут записаться как задолго до игры, так и за 1 день или даже в день самой игры… поэтому у меня стоит несколько блоков проверки условия.
— Если количество дней больше 3х, то запускаем его на таймер и на следующий день процедура повторится, она будет повторяться до тех пор, пока количество дней не станет равным 3 (см. скрин2👇).
— Если пользователь записывается за 2 дня до игры, (т.е. как раз в тот день, когда должно прийти напоминание), то тогда он попадает на таймер до завтра (это чтобы не закидывать сообщениями) (см. скрин3👇).
— Если за день до игры — тоже таймер до завтра и далее сообщение со всеми организационными подробностями.
В день игры (да, такое тоже бывало, поэтому пришлось добавить) — через 30 сек. тоже самое сообщение, что и в предыдущем варианте.
Так мы не будем «задалбывать» людей кучей сообщений подряд, а даем информацию порционно, дав передохнУть (ударение на последний слог, если что😁)



Когда вычисляем разницу между датами, то в формате, в котором она будет выводится, у меня стоит значение а. (хотя этого нет в «доступных форматах»). Если будете выводить дни через d, то в ситуации, когда дата находится на стыке двух месяцев, бот будет считать дни в пределах одного месяца и выводить неверную цифру, поэтому для вывода реального количества календарных дней — нужно ставить a. Просто возьмите на заметку 😉
После получения подтверждения участия или отказа, сохраняем пользователей в соответствующие списки (во втором случае ещё удаляем из списков участников игр), и админу приходит уведомление (см. скрин👇)
А теперь перейдем к самому интересному…
Как же эта система управляется без вмешательства в саму схему и необходимости заходить в ТХМ?
Для этого у меня есть специально обученный «админский бот». В нем (помимо других функций) можно посмотреть, кто записался на игры в текущем месяце, поменять даты игр и очистить списки записавшихся с прошлых дат, когда будут поставлены новые даты.
На скринах ниже все подробности, как это выглядит и в ТХМ, и со стороны админа.
Все эти действия занимают буквально меньше минуты, все быстро и удобно👌








Количество пользователей в списках выводится по такой формуле: {list.НОМЕР_СПИСКА.count} (см. скрин2👆). А номер списка берется рядом с его названием (см. скрин3👆)
Вот так легко и просто организована запись на игры в нашем сообществе.
На самом деле, именно к такому виду схемы я пришла далеко не с первого раза. С этим проектом я работаю уже 4 года, за это время я перепробовала шесть различных вариантов логики, каждый из них был по-своему хорош, но были моменты, которые все же меня не устраивали. А вот текущий вариант, пожалуй, самый удобный и работает как часы уже больше полугода. Поэтому я решила поделиться им с вами 🤗
Если вы все ещё вручную меняете даты ваших мероприятий, то скорее применяйте логику из этого кейса. А если есть вопросы или нет желания самостоятельно заморачиваться с построением — го в личку, обсудим😉
