Назад к блогу
#Telegram-бот#кейс#вайбкодинг#мероприятия

Телеграм-бот для мероприятий ИИшница: мой опыт за 10 месяцев

Как я собрал Telegram-бота для записи на бизнес-завтраки: запись, оплата в узбекских сумах и рублях, наличные, рефералка, блогеры и админка. Что было, что стало и почему.

Артём Исламов13 мин чтения
Содержание

Каждую субботу в 10:00 я провожу в Ташкенте ИИшницу. Это бизнес-завтрак про нейросети: в кафе собираются предприниматели и специалисты, я разбираю одну тему, и мы тут же пробуем её на своих задачах. Кто не может прийти, подключается в Zoom.

Вся запись идёт через Telegram-бота @iishnicabot. Он показывает тему ближайшего завтрака, принимает оплату в узбекских сумах и рублях, напоминает о встрече, присылает ссылку на Zoom, после завтрака собирает отзывы, а мне показывает, кто оплатил, кто пришёл и сколько завтрак заработал.

Недавно я хотел рассказать знакомому, как устроен этот бот, и понял, что рассказать нечем. Ни обзора, ни статьи. Поэтому собрал всё здесь: с чего начинал в январе, что ломалось, что я переделывал и почему выбрал именно такие решения. Все скриншоты сняты с копии бота на моём компьютере, имена и телефоны участников на них выдуманные.

Короткий ответ: что умеет бот сегодня

  • Запись на завтрак в кафе или в Zoom в пару нажатий, без анкет на входе.
  • Оплата через Click, картой Uzcard и Humo, российской картой в рублях или наличными на входе.
  • Скидка постоянным гостям, «С другом дешевле», реферальная ссылка с бонусом.
  • Бесплатное участие для блогеров за сторис и рилс, с модерацией.
  • Напоминания за день и утром, ссылка на Zoom только оплатившим, запись завтрака после.
  • Админка прямо в Telegram: мероприятия, цены, участники, отметка посещения, рассылки, статистика выручки.

В цифрах на 8 ноября 2026 года: 16 завтраков в базе, 838 человек запускали бота, 133 из них хоть раз платили, в истории проекта 458 правок. Бот я делаю сам, с помощью Claude Code. В первые месяцы часть правок делал через ChatGPT.

Как выглядит запись глазами гостя

Человек нажимает «Старт» и сразу видит главное меню. Никаких «введите имя и телефон» до того, как он вообще понял, куда попал.

Главное меню бота: запись на завтрак, мои записи, как всё устроено, приглашение друга, связь с организатором и вход для блогеров.

По кнопке «Записаться на завтрак» бот показывает тему, дату, спикера, сколько осталось мест в кафе и цену. Если человек уже был у нас в кафе, он видит свою скидку постоянного гостя прямо на кнопке.

Карточка ближайшего завтрака. Цена на кнопке уже со скидкой постоянного гостя.

Имя и телефон бот спрашивает только в момент первой записи, и только если их ещё нет. Дальше экран оплаты: все способы на одном экране, у каждого своя цена.

Экран оплаты: Click, карта Uzcard или Humo, российская карта в рублях, наличные, бесплатное участие для блогеров и цена за двоих.

Январь: первая версия за неделю

Задача в январе была простая. Я запускал завтраки, и люди записывались через личку: человек пишет, я отвечаю, скидываю реквизиты, жду скриншот оплаты, вношу в табличку, накануне пишу каждому напоминание. На пяти гостях это терпимо. На двадцати я уже путался, кто оплатил, а кто только спросил цену.

Я выбрал Telegram-бота, а не сайт с формой, потому что все мои гости и так сидят в Telegram. Там же им удобно получить напоминание, ссылку на Zoom и чек. А Telegram Payments позволяет принять оплату прямо в чате, без своего сайта и без договора с банком на эквайринг.

10 января я поднял бота из своего шаблона на aiogram 3 с PostgreSQL и Redis в Docker. К 16 января он уже умел:

  • записывать на завтрак в кафе или онлайн, с выбором еды и напитков;
  • принимать оплату через Click в узбекских сумах и через ЮKassa в рублях;
  • напоминать за день до завтрака и утром;
  • просить отзыв после завтрака: текстом, голосом или видео;
  • напоминать тем, кто начал запись и бросил на оплате.

Дальше за пару недель добавились наличные на входе, ссылка на Zoom только для оплативших онлайн, отметка «пришёл», баннер завтрака, правка цен и описания из админки и первая реферальная программа.

Тогда завтраки шли в ресторане по четвергам и воскресеньям, место в кафе стоило 250 000 узбекских сумов, онлайн 100 000. С 22 января по 22 февраля прошло пять завтраков, на них оплатили 10, 11, 4, 11 и 1 место. Последняя цифра всё объясняет: в конце февраля я завтраки остановил.

Курьёз из той эпохи. 26 января я убрал из текстов бота «каждый четверг», потому что завтраки переехали на другие дни. А в описании бота, которое человек видит до нажатия «Старт», фраза «каждый четверг в ресторане» провисела до октября. Заметил это, только когда настраивал рекламу в Telegram Ads.

Пауза: полгода без завтраков

С марта по июль завтраков не было, и бота почти никто не открывал: от одного до двенадцати новых людей в месяц. В конце апреля я попробовал зайти с другой стороны и за несколько дней собрал прототип веб-приложения для завтраков на Next.js и Supabase, со входом по ссылке на почту и своим ботом поверх той же базы. Дальше прототипа дело не пошло, и в августе я вернулся к старому боту.

Август: перезапуск и первые грабли

18 августа я начал с того, что не видно гостям. Настроил выкладку через GitHub Actions: перед каждым обновлением бот сам делает копию базы. Если что-то сломается, откат занимает минуту, а оплаты не потеряются.

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

22 августа прошёл первый завтрак после паузы, на новом месте, уже в Founders Cafe, и сразу 27 оплаченных мест. Под этот запуск я поменял три правила.

  • Место в кафе закрепляется только оплатой в боте. Бронь «заплачу наличными» место не занимает, иначе зал заполняется людьми, которые потом не приходят. Таким гостям бот мягко предлагает доплатить картой.
  • Реферальный бонус начисляется только после того, как приглашённый друг реально пришёл и его отметили на входе. Раньше бонус капал за оплату, а оплату можно отменить.
  • Запись завтрака уходит защищённым видео и только тем, кто был на завтраке.

Тогда же появился нетворкинг: после оплаты человек может заполнить профиль «о себе», а по команде /networking посмотреть карточки других участников завтрака. Карточки видят только оплатившие.

Оплата в Узбекистане: Click, ATMOS, рубли и наличные

Платежи заняли больше всего времени, и это главная часть кейса для тех, кто будет делать похожего бота в Узбекистане.

Сначала Click работал через Telegram Payments на мне как на самозанятом. Люди очень не доверяют, что надо вводить номер карты и срок в окошке Telegram. Поэтому таких оплат было минимум, в основном люди платили наличными на входе. В августе я перевёл приём денег на компанию и добавил кнопку-ссылку на оплату в Click: человек платит в привычном приложении, а бот узнаёт об оплате сам. Для этого у бота впервые появился свой веб-сервер, который принимает уведомления от Click.

24 августа подключил ATMOS, чтобы принимать любые карты Uzcard и Humo на одной платёжной странице. И на следующий день поймал главный сюрприз проекта. По документации деньги списываются, только когда бот подтвердит платёж. На деле я выключил подтверждение целиком, а тестовая тысяча узбекских сумов всё равно списалась.

Поэтому теперь бот не ждёт уведомления, а сам раз в несколько секунд сверяет выставленные счета с ATMOS. Уведомление осталось как быстрый путь, а сверка стала главным. Ожидание подтверждения после этого сократилось примерно с 90 до 20 секунд.

Следом пришли возвраты. Раньше отмена записи в админке только меняла статус, а деньги человеку я возвращал руками, и про это легко было забыть. Теперь при отмене есть кнопка «Отменить и вернуть деньги» для Click и ЮKassa. У каждой платёжки свой подвох: у Click ключ для возврата оказался не тем полем, которое логично ожидать, это выяснилось только на живом платеже. У ЮKassa для возвратов нужны отдельные ключи магазина, токен из Telegram не подходит. А платежи ATMOS через их платёжную страницу программно не возвращаются вовсе, только вручную в кабинете.

За всё время больше всего записей прошло бесплатно через ИИ-сообщество (155), дальше наличные (81), кнопка Click (35), ATMOS (25), ЮKassa в рублях (16) и старый счёт Click в Telegram (11).

Как гости зовут друзей

Первая реферальная программа появилась ещё в январе: другу скидка, пригласившему бонус на баланс, потом вывод по заявке. В августе я открыл её для всех и снизил бонус до 15 000 узбекских сумов. Люди ею пользуются, но в октябре я признался себе, что схема запутанная. Хотелось сказать проще: если идёте один, место стоит 150 000 узбекских сумов, а вдвоём 260 000 за двоих.

Реферальная ссылка: другу скидка 15 000 узбекских сумов, вам столько же на баланс после того, как он придёт на завтрак.

Так 17 октября появилось «С другом дешевле». Человек оплачивает сразу два места, бот присылает ему билет, он пересылает билет другу, друг нажимает кнопку, вводит имя и телефон, и место за ним. Я отдельно просил сделать так, чтобы это понял даже тот, кто в Telegram плохо разбирается.

Экран «Вдвоём дешевле». У постоянного гостя своё место и так со скидкой, поэтому бот прямо пишет, что пара ему не выгоднее и можно оплатить только своё место.

Скидка постоянным гостям работает с конца сентября: кто уже был у нас в кафе, платит меньше. Скидки не складываются, применяется большая. А 23 октября все скидки и цену за двоих я перенёс прямо в создание завтрака: раньше после каждого создания приходилось лезть в админку и вбивать их руками.

Реклама, метки и блогеры

Чтобы понимать, откуда приходят люди, у каждой рекламы своя ссылка на бота с меткой. Бот запоминает метку при первом запуске, а если человек потом пришёл по другой ссылке, засчитывается последняя. Закуп рекламы в каналах я веду через своего бота-закупщика, и ИИшница сообщает ему о каждой брони. Так видно, сколько стоил один гость с конкретного канала.

Цифры получились наглядные. Первое размещение в канале релокантов дало 44 перехода и 12 оплат. Другое сообщество дало 15 переходов и ни одной оплаты. А в октябре я попробовал официальную рекламу Telegram: потратил около 2500 рублей, получил три запуска бота и ни одной записи. Люди открывали профиль бота и уходили, не нажав «Старт». После этого на экране до старта появилось анимированное видео о завтраке.

Главный вывод из разбора базы в конце октября: число гостей сильнее всего зависит от свежей рекламы, а не от темы. В недели с закупом приходило 76-87 новых людей, без закупа от 2 до 19.

В октябре я стал приглашать блогеров по бартеру: бесплатный завтрак за публикацию. Блогер подаёт заявку кнопкой «Я блогер», я одобряю вручную, он выкладывает сторис и присылает скриншот, бот засчитывает запись. Мест для блогеров на каждый завтрак ограниченное число, их задаю в админке.

Через месяц выяснилось, что сторис выкладывают, а про рилс после завтрака забывают. Поэтому 8 ноября перед заявкой появился экран условий с кнопкой «Принимаю условия»: сторис до завтрака и рилс после, одной сторис мало.

Условия бесплатного участия для блогера: сторис до завтрака, рилс после, со сроками и аккаунтами для отметки.
Раздел «Блогеры» в админке: заявки на модерации, скриншоты сторис, вся воронка от запуска бота до прихода и окупаемость в узбекских сумах.

Сообщество, клуб и курсы

После одного из августовских завтраков гости спросили, можно ли учиться у меня дальше. Так в боте появились офферы: участникам завтрака курс по нейромонтажу со скидкой, оплата через Click или ATMOS, после оплаты бот сразу выдаёт одноразовую ссылку в закрытый канал с уроками.

С конца сентября участники моего ИИ-сообщества подключаются к завтракам онлайн бесплатно: бот сам проверяет, состоит ли человек в чате сообщества. Кафе для всех платное. В октябре в бота добавилась подписка на клуб ИИнкубатор, она даёт бесплатное место и в кафе. Бесплатных онлайн-записей стало по 10-15 в день, и 7 ноября я выключил себе уведомления о них: выручки они не приносят, а телефон пищал постоянно.

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

Октябрь: разбор того, что мешает гостям

К концу октября функций стало много, и гости начали путаться. Я сел и прошёл бота глазами нового человека, плюс посмотрел базу. Нашлись три системные проблемы.

  1. Передумать было нельзя. Кнопка «Отменить» писала «Регистрация отменена», а бронь оставалась в базе. За всё время накопилось 76 неоплаченных записей.
  2. Бот не отвечал на простой вопрос «я иду или нет?». Раздела с моими записями в меню не было, и человек ходил по кругу через экран оплаты.
  3. Скрытые режимы ввода съедали сообщения. Например, человек оплатил и написал что-то в чат, а бот записал это в его профиль «о себе».

28 октября всё это переделал. У бота теперь одно главное меню, раздел «Мои записи», честная отмена неоплаченной брони, смена формата «лучше в Zoom» или «лучше в кафе» с понятной ценой и ответ на любой свободный текст. Заодно договорился с собой о словаре: «запись», а не «регистрация» и не «бронь».

Отмена неоплаченной записи: бот прямо пишет, что человек ничего не должен, и возвращает в главное меню.
Раздел «Мои записи»: прошедшие и будущие завтраки, формат и статус оплаты.

Админка в Telegram

Отдельной веб-админки у бота нет, всё управление тоже в Telegram, по команде /admin. Мне так проще: телефон всегда в руке, а завтрак я веду не за компьютером.

2 ноября в Telegram появились сообщения ботов с таблицами, заголовками и сворачиваемыми блоками. Я сразу перевёл на них админку. Первая попытка выглядела так: с компьютера симпатично, а с телефона просто капец. Пришлось подбирать, что нормально читается на айфоне: без больших заголовков, таблицы только там, где столбцов немного. Пользовательские экраны я оставил обычными сообщениями.

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

Отметку посещения на входе ведёт моя жена. Приходят люди с одинаковыми именами, и раньше мы их путали. Теперь на отдельном экране офлайн-гости идут по алфавиту, рядом последние цифры телефона и сумма, если человек платит наличными на входе.

Участники завтрака: в кафе списком с источником, откуда человек пришёл, бесплатный онлайн одним числом.
Отметка посещения: таблица гостей в кафе с последними цифрами телефона и суммой наличных. Отметить гостя можно кнопкой с тем же номером.

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

Статистика по завтракам: выручка в узбекских сумах, рубли отдельно и итог после расходов.

Что я понял за 10 месяцев

  • Сначала запись, оплата и напоминания. Всё остальное я добавлял, когда упирался в конкретную боль, и почти каждая функция в этой статье появилась после фразы «меня это бесит» или «я опять делаю это руками».
  • Платёжным системам нельзя верить на слово. Каждый способ оплаты я проверял живым платежом на маленькую сумму, и почти каждый раз находилось расхождение с документацией.
  • Место в зале должно закрепляться деньгами. Бесплатная бронь собирает людей, которые не приходят.
  • Метка на каждой ссылке окупается с первого же размещения: сразу видно, какой канал приводит гостей, а какой только переходы.
  • Раз в пару месяцев полезно пройти бота глазами нового человека. Я сам привыкаю к своим экранам и перестаю видеть, где путаются гости.
  • Копия базы перед каждым обновлением и выкладка одной кнопкой. Без этого я бы боялся трогать бота накануне завтрака.

Как сделать такого бота для своих мероприятий

Если вы проводите встречи, мастер-классы или курсы и пока принимаете записи в личке, начните с малого. Опишите путь гостя словами: где он узнаёт о встрече, что видит после «Старт», как платит, что получает после оплаты и за день до встречи. Это и есть техническое задание.

Первую версию с записью, оплатой через Telegram Payments и напоминаниями реально собрать за неделю, даже без опыта программирования. Я собираю такие вещи в Claude Code, как это начать, разбираю в статье про установку Claude Code, а сам подход описан в статье что такое вайбкодинг.

Не делайте сразу админку, рефералку и блогеров. Проведите три встречи на простой версии, посмотрите, где вы до сих пор что-то делаете руками, и автоматизируйте именно это. А если хотите посмотреть на бота вживую, приходите на ближайшую ИИшницу.

Частые вопросы

Первая версия с записью, оплатой и напоминаниями заработала за неделю, с 10 по 16 января 2026 года. Нынешний бот вырос за 10 месяцев работы по вечерам и выходным, в его истории 458 правок.

На Python и библиотеке aiogram 3, данные в PostgreSQL, состояния диалогов в Redis, напоминания по расписанию через APScheduler. Всё работает в Docker на одном сервере и обновляется через GitHub Actions.

Быстрее всего подключить Click через Telegram Payments, но вводить номер карты в окошке Telegram люди не любят. Лучше сразу сделать кнопку оплаты в приложении Click с уведомлениями на свой сервер и ATMOS для карт Uzcard и Humo. Рубли удобно принимать через ЮKassa в Telegram Payments, а наличные на входе тоже стоит учитывать в боте.

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

Гости и так сидят в Telegram. Там им удобно получить напоминание, ссылку на Zoom и материалы после встречи, а оплата проходит прямо в чате. Весной я пробовал сделать веб-приложение для завтраков, но вернулся к боту.