Закрытый клуб с подпиской GC + SaleBot
Всех приветствую! В этом кейсе я расскажу как мы реализовали закрытый клуб по подписке в проекте Steamate
Мой клиент - это YouTube блоггер, который рассказывает о заработке на играх в Steam.
В начале 2023 года он написал мне с идеей о запуске клуба. Мы созвонились и обсудили как в его случае всё сделать максимально круто, но при этом просто, так как это MVP.
1. Прототипирование
Изначально мы начали с проектирования структуры бота в Miro. Важно было на этапе прототипа продумать все сценарии и UserFlow, чтоб сделать его максимально удобным для клиента и не возникло несостыковок или тупиковых сценариев.
В процессе прототипирования несколько раз созванивались, уточняли детали и переделывали. На данном этапе это делается в разы проще, чем в процессе разработки.
Во время создания прототипа мы окончательно решили какие сервисы будут использоваться и как они будут между собой взаимодействовать. Хотели изначально прикрутить Prodamus прямо в бота, но решили всё таки создавать заказ в GetCourse по API и отправлять ссылку в бота.
2. Разработка
После согласования прототипа мы начали разработку. Сначала базовая настройка GetCourse: домен, почта, платежка, продукты/предложения, а потом самое интересное - Telegram бот.
Человек заходил на Tilda страницу, выбирал тариф, в виджете заполнял почту и переход в TG-бота.
На этом этапе происходило связывание GetCourse профиля и TG-бота. Так же на этом этапе сохранялись UTM метки.
Вот такая получилась реализация бота.
В боте ему приходило сообщение с выбранным на сайте тарифом и возможностью оплатить банковской картой, криптой или TF2-ключами. Крипта и TF2-ключи вели на менеджера, а кнопка "Оплата картой" генерировала заказ на GetCourse и присылала в бот ссылку:
Страницу оплаты мы тоже немного задизайнили)
После оплаты в бота приходит сообщение с успешной оплатой и ссылками на канал и чат.
Если это была не оплата, а продление, то приходит другое сообщение - "Доступ в Портал успешно продлён"
Далее следует череда напоминаний об оплате: за 3 дня, за сутки, за 2 часа. И если человек не продлил доступ - то удаление
На этапе прототипирования мы так же продумали дожимы об оплате и возможные ошибки: например, если GetCourse API на время повиснет и SaleBot затупит или просто забудут оплатить сервис.
3. Ошибки
Возможным ошибкам было уделено отдельное внимание, поэтому я даже вынесу это в отдельный раздел.
Любой процесс, который отправлял данные в SaleBot мы делали не просто 1 блок - отправка WebHook. Мы делали в 3 попытки, получая статус каждый раз.
Мы делали CallBack и проверяли дошёл ли он в бота. Eсли возвращалась ошибка, то пробовали ещё раз через 10 минут. Если снова не вышло - то уведомляем сотрудника и пробуем ещё раз через час.
Мы сделали отдельного бот для ошибок и системных сообщений
Прикрутили его напрямую к GetCourse, для получения ошибок с процессов, а системные сообщения и ошибки с SaleBot отправляли по API, не привязывая его в проект.
4. Аналитика
Как такового запрос на глубокую аналитику или оцифровку воронки не было. Мы внедрили базовое сохранение UTM-меток в карточке клиента, чтоб понимать откуда он пришел.
Так же мы сделали логгер, который выгружал действия с чата и канала: добавления, удаления, ошибки и т.д.
Сейчас им конечно же не пользуются, но на начальном этапе клиент хотел чётко видеть что происходит и что делает бот.
На данный момент бот уже несколько раз переделался, клуб сейчас является частью основного продукта, а не отдельным, как изначально.
На GetCourse было реализовано огромное количество нестандартных функций, например, динамические виджеты, о которых я рассказывал в этом видео на YouTube-канале, PreLoader, оформление, кастомизация панелей пользователя и много чего другого.
О всех самых интересных фишках я рассказываю в своих Telegram и YouTube каналах. Подписывайтесь.
Отзыв заказчика
Бесплатная консультация по техническим настройкам 👇
https://t.me/ma_andrey
Telegram-канал 👇
https://t.me/tech_cases
YouTube-канал 👇 https://www.youtube.com/@andrey-tech