PuzzleBot • Механизм подписки с помощью Сценариев
В данной статье рассмотрим процесс создания механизма для управления подпиской с помощью модуля "Сценарии" в Puzzlebot.
Конструкция подписки, которую мы разберем ниже универсальная и отлично подойдет для использования в ботах по продаже различных услуг, индивидуальных консультаций или для доступа к эксклюзивному контенту.
В качестве примера мы рассмотрим платную подписку (30 дней) на индивидуальные консультации по разработке веб-сайтов.
- Раздел "Конструктор"
- Раздел "Сценарии"
- Раздел "Модерация", в котором создадим "Категории"
- Персональные числовые "Переменные"
- Обычные "Условия"
Шаг 1 • Создаем числовую персональную переменную
1.1 Переходим в раздел "Переменные":
1.2 Далее нажимаем на кнопку "Добавить переменную":
1.3 Задаем имя переменной DAYS_LEFT (1) и формат значения "Число" (2):
Переменная DAYS_LEFT будет хранить в себе остаток дней подписки.
Шаг 2 • Создаем категории пользователей в разделе "Модерация"
2.1 Переходим в раздел "Модерация":
2.1 Нажимаем на кнопку кнопку "+" (1), вводим название категории "Активная подписка" (2) и нажимаем "Создать категорию" (3)
2.3 По аналогии с предыдущим действием создаем вторую категорию "Неактивная подписка":
Категория "Активная подписка" будет присваиваться пользователям, которые оплатили/продлили подписку для получения индивидуальной консультации, и соответственно, вторая категория "Неактивная подписка" будет присваиваться тем, у кого срок подписки подошел к концу.
Шаг 3 • Создаем команды и условия в Конструкторе
3.1 Переходим во вкладку "Конструктор":
3.2 Создаем три команды "Подписка оплачена", "Напоминание за 2 дня" и "Истек срок подписки":
3.3 Также, создаем условие "Проверка DAYS_LEFT", в котором мы будем проверять нашу переменную содержащую остаток дней:
• Добавим "Правило 1" - если переменная DAYS_LEFT равна 2, то отправляем команду "Напоминание за 2 дня":
• Добавим "Правило 2" - если переменная DAYS_LEFT равна 0, то отправляем команду "Истек срок подписки":
В итоге должна получиться следующая конструкция:
Не забываем сохранить внесенные изменения во вкладке "Конструктор", нажав на кнопку сохранения (подсвечена оранжевым):
Шаг 4 • Создаем сценарий "Подписка"
4.1 Переходим во вкладку "Сценарии":
4.2 Нажимаем на кнопку "Добавить сценарий":
4.3 Видим, что появился сценарий "Название сценария 1":
4.4 Изменим название на "Счетчик дней" с помощью кнопки "Переименовать":
4.5 Откроем сценарий "Счетчик дней" и добавим пост:
4.6 В настройках поста установим тип отправки "Через" (1) один день (2), повторение поста ежедневно (3):
4.7 В действиях поста добавляем "Изменить переменную" и вычитаем "1" из переменной DAYS_LEFT с выполнением "ДО" (3), далее отправляем условие "Проверка DAYS_LEFT" (4)
Опубликуем все изменения сделанные в посте:
И установим пост в статус "Запланирован":
В настройках сценария "Счетчик дней" активируем опцию "Перезапуск при повторном вызове сценария" и нажимаем "Сохранить":
Шаг 5 • Применение сценария и категорий в Конструкторе
5.1 Вернемся во вкладку "Конструктор" и откроем команду "Подписка оплачена", добавим в ней следующие действия:
- Добавляем к переменной DAYS_LEFT (1) значение "30" (2), что означает 30 дней (1 месяц):
- Активируем сценарий "Счетчик дней" (1), который будет ежедневно вычитать 1 день из переменной DAYS_LEFT и проверять в ней текущий остаток дней:
- Добавляем пользователя в категорию "Активная подписка" (1):
По итогу в команде "Подписка оплачена" должны быть три действия как показано на изображении ниже:
5.2 Далее переходим к команде "Истек срок подписки" и добавляем следующие действия:
- Отключаем сценарий "Счетчик дней" (1):
- Добавляем пользователя в категорию "Неактивная подписка" (1):
По итогу в команде "Истек срок подписки" должны быть два действия как показано на изображении ниже:
Резюмируем:
После того, как пользователь оплачивает подписку у него запускается команда "Подписка оплачена", в которой ему присваиввется категория "Активная подписка", а также, добавляется 30 дней в переменную DAYS_LEFT и запускается сценарий "Счетчик дней", который ежедневно будет вычитать из переменной 1 день и с помощью условия проверять остаток дней.
Если осталось 2 дня до конца подписки, то пользователю отправляется команда "Напоминание за 2 дня"; если осталось 0 дней, то пользователю отправляется команда "Истек срок подписки", в которой завершается сценарий "Счетчик дней" и назначается категория "Неактивная подписка".
В зависимости от назначенной категории пользователю можно выдавать или ограничивать доступ к определенным командам в боте (в нашем примере доступ к индивидуальной консультации со специалистом), но об этом мы расскажем вам в другой статье "Как ограничить доступ пользователей с помощью категорий".