Telegram-бот с нейросетью за 1 день — кейс с Claude Code

Telegram-бот с нейросетью: как мы создали бота с оплатой за 1 день с Claude Code

01.04.2026 · 7 мин чтения

Коротко:

Это не теоретический гайд — это реальный кейс. Мы создали Telegram-бота для курса claude-cource.ru с помощью Claude Code, не написав ни одной строчки кода вручную. Бот принимает оплату через Telegram Stars, ведёт базу пользователей, отслеживает источники трафика и уведомляет администратора о каждой покупке.

Весь процесс — от первого промпта до рабочего бота в продакшне — занял один рабочий день. В этой статье — пошаговый разбор: что говорили Claude Code, какие решения он принял, где ошибался и как мы это исправляли.

Что мы создали: обзор бота

Бот @claudecource_bot решает три задачи:

  1. Приём оплаты — через Telegram Stars (встроенная платёжная система Telegram)
  2. Учёт пользователей — SQLite-база с трекингом источника (откуда пришёл пользователь)
  3. Уведомления — администратор получает сообщение о каждой оплате
Характеристика Значение
Язык Python 3.13
Фреймворк aiogram 3.x
База данных SQLite
Платежи Telegram Stars (XTR)
Хостинг Yandex Cloud Functions (serverless)
Время разработки ~6 часов
Строк кода ~350 (сгенерировано Claude Code)

Что умеет бот

Подготовка: что нужно до начала

Инструменты

Создание бота через BotFather

  1. Откройте @BotFather в Telegram
  2. Отправьте /newbot
  3. Придумайте имя (например, «Мой курс») и username (должен заканчиваться на bot)
  4. BotFather выдаст токен — сохраните его

Подключение платежей

Для Telegram Stars не нужен отдельный платёжный провайдер — это встроенная валюта Telegram. Достаточно отправить BotFather команду /mybots → выбрать бота → Payments → подключить Telegram Stars.

Шаг 1: Описание задачи Claude Code

Открываем терминал в папке проекта и запускаем Claude Code:

mkdir course-bot && cd course-bot
claude

Первый промпт — максимально конкретный:

Создай Telegram-бота на Python с aiogram 3.x:

1. Команда /start:
   - Приветственное сообщение с описанием курса
   - Inline-кнопка "Купить курс — 5000 Stars"
   - Deep link параметр сохраняется как источник (main, freelance, vibe, career)

2. Оплата через Telegram Stars:
   - При нажатии кнопки — отправить invoice на 5000 XTR
   - После успешной оплаты — сохранить в БД, отправить подтверждение, уведомить админа

3. База данных SQLite:
   - Таблица users: user_id, username, first_name, source, first_seen
   - Таблица payments: user_id, amount, currency, charge_id, source, paid_at

4. Команда /stats (только для админа):
   - Кол-во пользователей, оплат, разбивка по источникам

Токен бота — из переменной окружения BOT_TOKEN.
ID админа — из переменной ADMIN_ID.

Claude Code прочитал задачу, создал bot.py, requirements.txt, и предложил структуру. Весь файл — ~350 строк.

Шаг 2: Что Claude Code сделал сам

Архитектура, которую он выбрал

Claude Code самостоятельно принял несколько архитектурных решений:

Решение Что выбрал Почему
Фреймворк aiogram 3.x Асинхронный, самый популярный для Python
БД SQLite Не нужен сервер, файл рядом с ботом
Хранение секретов os.environ Безопасно, не хардкодится
Структура Один файл bot.py Для бота на 350 строк — оптимально
Логирование logging модуль Стандартный Python

Claude Code создал систему трекинга источников без дополнительных инструкций. Когда пользователь переходит по ссылке t.me/bot?start=freelance, бот парсит параметр freelance и сохраняет в БД как source. Это позволяет видеть, какой лендинг приводит больше всего покупок.

Платёжный flow

Пользователь нажимает "Купить" →
  Бот отправляет Invoice (5000 XTR) →
    Telegram показывает окно оплаты →
      Пользователь подтверждает →
        Telegram отправляет pre_checkout_query →
          Бот подтверждает (answer_pre_checkout_query) →
            Telegram отправляет successful_payment →
              Бот сохраняет в БД + уведомляет админа

Claude Code правильно реализовал весь flow, включая обработку pre_checkout_query — это обязательный шаг, который многие забывают.

Шаг 3: Итерации и исправления

Первая версия работала, но потребовала 4 итерации:

Итерация 1: Форматирование сообщений

Сообщение приветствия слишком длинное. Сократи до 3 строк +
добавь эмодзи. Кнопка должна быть яркой.

Claude Code переписал текст и добавил InlineKeyboardButton с emoji.

Итерация 2: Обработка ошибок

Что будет, если оплата не пройдёт? Добавь обработку ошибок
для pre_checkout_query и successful_payment.

Claude Code добавил try/except блоки и fallback-сообщения.

Итерация 3: Статистика для админа

Команда /stats должна показывать:
- Всего пользователей
- Оплат за сегодня / за неделю / всего
- Топ-3 источника по конверсии

Claude Code написал SQL-запросы с агрегацией и форматированием.

Итерация 4: Защита от двойной оплаты

Пользователь может нажать "Купить" дважды. Добавь проверку:
если уже оплатил — показать "Вы уже купили курс" вместо invoice.

Claude Code добавил проверку SELECT * FROM payments WHERE user_id = ? перед отправкой invoice.

Итого: 4 итерации, ~30 минут. Основная работа — в первом промпте.

Хотите создать такого бота сами?

В модуле 4 курса — полный проект: Telegram-бот с оплатой, базой данных и деплоем.

Подробнее о курсе

Шаг 4: Тестирование

Перед деплоем протестировали локально:

BOT_TOKEN=123:ABC ADMIN_ID=12345 python bot.py

Чеклист тестирования

Тест Результат
/start без параметра Приветствие + кнопка
/start с deep link (?start=freelance) Источник сохранён
Нажатие “Купить” Invoice отправлен
Повторное “Купить” после оплаты “Вы уже купили”
/stats от админа Статистика отображается
/stats от обычного пользователя Игнорируется
/myid Показывает ID

Все тесты прошли. Claude Code не допустил критических ошибок — только стилистические (форматирование, длина текстов).

Шаг 5: Деплой

Для деплоя выбрали Yandex Cloud Functions — serverless-платформу, которая не требует аренды сервера.

Почему serverless

Промпт для деплоя

Подготовь бота для деплоя на Yandex Cloud Functions:
- Создай handler.py с entry point для serverless
- Настрой webhook вместо polling
- requirements.txt с зависимостями

Claude Code создал handler.py, адаптировал бота под webhook-режим и написал инструкцию по деплою.

Результат

Бот работает в продакшне с февраля 2026 года. За это время: - Обработал 500+ уникальных пользователей - Принял оплаты из 4 разных источников трафика - Ни одного падения (serverless стабильность)

Сколько это стоило

Статья расходов Стоимость
Claude Code (Claude Pro подписка) $20/мес (~2 300 ₽)
Yandex Cloud Functions 0 ₽ (бесплатный лимит)
Telegram Bot API Бесплатно
Telegram Stars (комиссия) 0% для бота
Домен, хостинг Не нужны
Итого ~2 300 ₽ единоразово

Для сравнения: заказ аналогичного бота у фрилансера стоит от 15 000 до 50 000 ₽. Разработка самостоятельно без AI — 2-4 недели обучения + 1-2 недели написания кода.

Уроки из этого кейса

Что сработало

  1. Конкретный первый промпт — чем детальнее описали задачу, тем точнее результат. 4 пункта с подпунктами — и 80% работы сделано с первого раза
  2. Итеративный подход — не пытались предусмотреть всё заранее. Базовая версия → тестирование → доработка
  3. Claude Code выбрал правильный стек — aiogram 3.x, SQLite, serverless. Мы не указывали технологии — он сам решил

Что бы сделали иначе

  1. Сразу добавить Plan Mode — для первого промпта стоило использовать Shift+Tab, чтобы Claude Code сначала предложил план
  2. Тесты — Claude Code не написал unit-тесты автоматически. Стоило попросить: «Напиши pytest-тесты для всех обработчиков»
  3. Мониторинг — сейчас нет алертов при ошибках. Стоило подключить Sentry через MCP

Чеклист: создание Telegram-бота с Claude Code

  1. Создайте бота в BotFather — /newbot, сохраните токен
  2. Подключите Telegram Stars — /mybots → Payments → Stars
  3. Установите Claude Code — если ещё нет
  4. Создайте папку проектаmkdir my-bot && cd my-bot && claude
  5. Напишите подробный первый промпт — все команды, кнопки, БД-структура
  6. Протестируйте локальноBOT_TOKEN=... python bot.py
  7. Проведите 3-5 итераций — форматирование, ошибки, edge cases
  8. Добавьте защиту от двойной оплаты — проверка перед каждым invoice
  9. Задеплойте — Yandex Cloud Functions или Railway
  10. Проверьте в продакшне — тестовая оплата, deep links, /stats

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

Подписка Claude Code Pro — $20/мес (~2 300 ₽). Хостинг на Yandex Cloud Functions — бесплатно при малом трафике. Telegram Bot API — бесплатно. Итого: ~2 300 ₽ за первый месяц. Для сравнения: заказ у фрилансера стоит от 15 000 до 50 000 ₽.

Нет. Claude Code напишет весь код сам. Но базовое понимание поможет проверять результат и ставить точные задачи. В нашем кейсе мы не написали ни одной строчки вручную — только промпты для Claude Code.

Да. Вместо Telegram Stars можно интегрировать ЮKassa, Тинькофф или другой платёжный провайдер. Это сложнее (нужен вебхук для уведомлений), но Claude Code справится — попросите "добавь оплату через ЮKassa" и он сгенерирует код.

Для малого трафика (до 1000 пользователей) — Yandex Cloud Functions (бесплатно, serverless). Для большего — Railway ($5/мес) или VPS на TimeWeb/Selectel (от 300 ₽/мес). Claude Code поможет адаптировать бота под любую платформу.

Простой бот (приветствие + кнопки + БД) — 2-3 часа. Бот с оплатой — 4-6 часов. Бот с полноценной CRM-логикой — 1-2 дня. 80% времени — в первом промпте и тестировании, а не в итерациях.

Хочешь делать такое сам?

Курс по вайб-кодингу с Claude Code — от нуля до продукта.

Получить доступ к курсу