Как настроить внутренний баланс в Telegram-боте: начисление за активность, списание и ручное пополнение

В Telegram-ботах часто нужно не просто отправлять сообщения, а выстраивать механику, которая будет мотивировать пользователей действовать: подписываться, выполнять задания, возвращаться. Один из самых удобных способов — вести внутренний баланс, начисляя его за активность и предлагая тратить на полезные продукты: гайд, урок или другой формат.

Такую механику можно добавлять в разные боты: для квизов, марафонов, подписных воронок, онлайн-школ, экспертных проектов и других форматов. В этой статье поделюсь, как настроить:

  • автоматическое начисление баланса за действия (например, за подписку и анкету);
  • отображение баланса в личном кабинете;
  • кнопку для получения награды, которая скрыта, если баланса недостаточно;
  • списание с баланса при получении продукта;
  • ручное пополнение баланса админом.
Как настроить внутренний баланс в Telegram-боте: начисление за активность, списание и ручное пополнение

Привет! Меня зовут Светлана. Больше года я создаю чат-ботов и веду Telegram-канал «Чат-боты для экспертов и бизнеса», где делюсь опытом, полезными механиками и кейсами с реальных запусков.

Механика бота

Для наглядности разберём механику на примере готового чат-бота — тестировать в Telegram.

Бот запускается с команды /start, после чего отправляется приветствие и по кнопке открывается личный кабинет пользователя. В нём отображается:

  • текущий баланс;
  • список действий, за которые можно получить внутренние единицы (ye);
  • доступные продукты (если хватает баланса);
  • информация о том, как ещё можно заработать;

Пользователь получает единицы (ye) за подписку и анкету по одному разу. После накопления нужной суммы он может обменять её на продукт — гайд и/или урок. При этом:

  • баланс списывается;
  • присваивается категория (например, «получил(а) гайд»);
  • кнопка меняется, повторная покупка исключена.

У админа есть дополнительная кнопка для ручного начисления баланса пользователю.

Отображение кнопок и доступов построено на кнопках-условиях с категориями и переменными. Теперь рассмотрим, как реализовать такую механику в PuzzleBot — от переменных до команд и условий.

Настройка: шаг за шагом

Настройка будет проводиться в боте, разработанном на платформе PuzzleBot.

Чтобы создать бота и зарегистрироваться на платформе, воспользуйтесь инструкцией.
Выполните 1 и 2 этапы, после приступайте к выполнению шагов по этой инструкции.

Создание переменных

Для работы понадобится две переменные:

  • balans - персональная переменная для внутреннего баланса пользователя
  • balans_gl - глобальная переменная для ручного начисления баланса

Настройка персональной переменной

  1. Откройте раздел Переменные и нажмите + Добавить переменную.
  2. Заполните поля:

    ▪ Тип переменной - персональная
    ▪ Название переменной — например, balans (латиницей, без пробелов)

    ▪ Тип значения — обычная
    ▪ Формат значения — число

    ▪ Значение по умолчанию — 0
    ▪ Описание — комментарий для удобства

  3. Сохраните настройку.

Настройка персональной переменной
Настройка персональной переменной

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

Настройка глобальной переменной

  1. Откройте раздел Переменные и нажмите +Добавить переменную.
  2. Заполните поля:

    ▪ Тип переменной - глобальная
    ▪ Название переменной — например, balans_gl (латиницей, без пробелов)

    ▪ Тип значения — обычная
    ▪ Формат значения — число

    ▪ Значение по умолчанию — 0
    ▪ Описание — комментарий для удобства

  3. Сохраните настройку.

Настройка глобальной переменной
Настройка глобальной переменной

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

Создание категорий

Категории в PuzzleBot помогают сегментировать пользователей, а также могут использоваться в логике: для доступа к группе команд, отдельных сценариев или отображения/скрытия кнопок.

Для настройки системы с внутренним балансом создадим следующие категории:

  • Получил(а) баланс за подписку
  • Получил(а) баланс за анкету
  • Получил(а) доступ к гайду
  • Получил(а) доступ к уроку
  • Права для начисления ye — отдельная категория для админа, которая даст доступ к ручному начислению баланса пользователю
Категории
Категории

Как создать категорию

  1. Откройте раздел Модерация и нажмите +
  2. В появившемся поле введите название категории и нажмите Создать категорию
Создание категории
Создание категории

Настройка команд

Настроим команды для логики начисления, списания и выдачи продукта.

Сценарий: начисление баланса за подписку на канал или группу

Пользователь получает начисление на внутренний баланс (ye), если подписался на Telegram-канал. Чтобы реализовать механику, потребуется:

  • Кнопка-условие — отображается в личном кабинете, если пользователь ещё не получил начисление за подписку (т.е. у него нет категории «Получил(а) баланс за подписку»);
  • Условие — проверяет наличие подписки:

    ▪ если подписка есть — начисляет баланс, присваивает категорию, отправляет сообщение об успешном начислении;

    ▪ если подписки нет — отправляет команду с напоминанием подписаться;

  • Инлайн команда 1 — промежуточная, отображает условие и по кнопке направляет в нужную ветку;
  • Инлайн команда 2 — сообщение, если подписка есть (открывается через условие);
  • Инлайн команда 3 — сообщение, если подписки нет.
Настройка сценария начисление баланса за подписку на канал или группу

⚙ После успешного начисления баланс обновляется, присваивается категория, а кнопка "Получить 150 ye за подписку" исчезает из личного кабинета.

Сценарий: начисление баланса за заполнение анкеты

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

  • Кнопка-условие — отображается, если пользователь ещё не заполнил анкету и не получил за это начисление (нет категории);
  • Команда (обычная или мини-приложением) — открывает анкету для пользователя.
  • Инлайн команда — отправляется при заполнение анкеты, начисляет баланс и присваивает категорию.

Что использовать для анкеты:

  • Если вопросов немного, можно использовать обычную команду с блоком "Форма ввода".
  • Если вопросов много, лучше использовать мини-приложение — пользователю будет удобно видеть все вопросы сразу и отвечать последовательно.

Рекомендации:

  • Отметьте как обязательные те вопросы, которые действительно нужны (или все — если важно получить полную информацию).
Настройка сценария начисление баланса за анкету

Сценарий: списание баланса и получение доступа к продукту

Когда пользователь накопил достаточно ye, он может получить доступ к продукту: гайду, уроку или консультации. При получении:

  • с баланса списывается нужная сумма;
  • присваивается категория, благодаря которой:
    ▪ кнопка в личном кабинете меняется с «Получить гайд за 150 ye» на «Гайд» (аналогично для других продуктов).
    ▪ повторная покупка становится невозможна.

Что потребуется для настройки:

  • Кнопка-условие — отображается в зависимости от состояния:
    ▪ если у пользователя уже есть категория — кнопка отображается как постоянная (например, «Гайд») и ведёт на материал;
    ▪ если категории нет, но баланса хватает — отображается кнопка «Получить гайд за 150 ye», ведущая на команду со списанием и выдачей;
    ▪ если баланса недостаточно — кнопка не отображается вовсе.
  • Инлайн команда — отвечает только за выдачу продукта: отправляет нужный материал или сообщение.

 Пример настройки сценария — списание баланса и выдача продукта

⚙ Такая логика позволяет:

  • отображать пользователю только те кнопки, которые соответствуют его текущему балансу и статусу продукта;
  • автоматически обновлять интерфейс после получения продукта.

Сценарий: ручное начисление баланса админом

Иногда нужно вручную добавить пользователю ye — например, если он выполнил задание вне сценария, участвовал в активности или получил бонус. Такой функционал можно реализовать через кнопку, доступную только администратору.

Для этого используется:

  • глобальная переменная balans_gl — создана на этапе настройки переменных;
  • категория «Права для начисления ye» — создана на этапе настройки категорий, используется для ограничения доступа.
  • кнопка-условие —для отображения кнопки только у админа
  • обычная команда — содержит 3 блока:
    ▪ форма для выбора суммы и указания username или user_id пользователя;
    ▪ текстовый блок с кнопками «Да» и «Нет» для подтверждения;
  • обычная команда — отправляет выбранному пользователю инлайн-команду с начислением и уведомлением.
 Пример настройки сценария — ручное начисление баланса админом

Личный кабинет

Личный кабинет — это инлайн-команда в которой пользователь:

  • видит текущий баланс;
  • получает информацию, за что можно заработать ye;
  • видит продукты, которые может приобрести;
  • может перейти к получению наград (если доступно).

Настройка команды Личный кабинет

Сценарии начисления, списания и ручного пополнения уже готовы — осталось собрать личный кабинет и связать всё воедино.

  1. Откройте раздел Конструктор, нажмите + и добавьте Инлайн команду
  2. Выберите блок Текст и добавьте текст с информацией
  3. Добавьте инлайн клавиатуру и создайте кнопки:
    ▪ Как заработать ye — можно использовать попап или вывести отдельной командой

    ▪ Получить 150 ye за подписку — кнопка-условие

    ▪ Получить 300 ye за анкету — кнопка-условие

    ▪ Доступ к гайду — кнопка-условие
    ▪ Доступ к уроку — кнопка-условие
    ▪ Доступ к консультации — кнопка-условие
    ▪ Доступ к ручному начислению — кнопка-условие (отображение только для админов)

Пример настройки личного кабинета

Вывод

Теперь вы сможете самостоятельно настроить внутренний баланс в чат-боте на платформе PuzzleBot: начислять ye за активность, списывать при получении продукта и вручную управлять балансом через админскую панель.

📌 Чтобы посмотреть, как всё работает вживую — протестируйте механику на примере готового бота

Спасибо, что дочитали статью до конца, надеюсь она была полезной.

Если вам нужен Telegram-бот — пишите мне в Telegram, обсудим задачи и подберём оптимальное решение. А если хотите больше разборов механик и кейсов с реальных запусков — подписывайтесь на мой канал «Чат-боты для экспертов и бизнеса».

2
1
3 комментария