Каждую неделю в Telegram-канале BotKraft появляется минимум один вопрос: «как самому сделать бота?». Ответ зависит от того, что вам нужно: бот-визитка с FAQ для салона - реально собрать самому за пару часов в no-code конструкторе. Бот для интернет-магазина с интеграцией CRM, платежей и AI-квалификации лидов - проще нанять разработчика на 1-2 недели, чем учиться 3 месяца. В этой статье - 5 инструментов с разной кривой обучения, пошаговые гайды на Salebot и aiogram с реальным кодом, и честный ответ когда стоит делать самому, а когда платить.

TL;DR: 5 инструментов для Telegram-бота

ИнструментТипВремя на стартПотолок сложностиЦена
Salebotno-code конструктор30-60 минутдо 80% задач МСБ2 999 ₽/мес
BotHelpno-code конструктор30-60 минутдо 70% задач + рассылки1 599 ₽/мес
n8nvisual workflow2-4 часалюбая логика + интеграции700 ₽/мес VPS
Python + aiogram 3.xкод1-2 днябез ограничений700 ₽/мес VPS
Node.js + telegrafкод1-2 днябез ограничений700 ₽/мес VPS

Шаг 0: получаем токен через BotFather

Этот шаг одинаковый для всех инструментов. Открываем в Telegram бота @BotFather, отправляем команду /newbot, придумываем имя и username (заканчивается на _bot), получаем токен вида 8730010071:AAFvVxJ9....

Важно: токен - это пароль вашего бота. Никогда не публикуйте его в открытых репозиториях, не отправляйте в чаты. Если токен утёк - сразу /revoke в BotFather и получаете новый.

Этот же токен будем использовать во всех 5 инструментах ниже.

Способ 1: Salebot за 30 минут (бот записи в стоматологию)

Salebot - наиболее универсальный no-code конструктор. Подходит для 80% задач малого и среднего бизнеса. Регистрируемся на salebot.pro, выбираем тариф «Бизнес» (есть пробный период), вставляем токен бота в настройках.

Базовый сценарий бота записи на приём:

  1. Пользователь жмёт /start → бот спрашивает «Здравствуйте! На какую процедуру записаться?»
  2. Кнопки: «Чистка», «Лечение кариеса», «Имплант», «Другое»
  3. После выбора процедуры - кнопки «На завтра», «На послезавтра», «На эту неделю»
  4. Бот предлагает свободные слоты из календаря (интеграция Google Calendar или встроенный)
  5. Пользователь выбирает слот → бот запрашивает имя и телефон
  6. Финальный шаг: оплата вперёд через CloudPayments или Prodamus (опционально)
  7. Подтверждение записи + напоминание за день и за час до приёма

В Salebot это собирается мышью: открываете «Конструктор» → создаёте «Стартовый блок» с приветствием → добавляете «Кнопочные ответы» → между блоками рисуете стрелки. Интеграция с календарём - один клик в разделе «Подключения».

Полный сценарий записи занимает 25-50 блоков. Время на сборку с нуля - 30-60 минут, если у вас есть пример соседнего бота для подсматривания.

Что не получится в Salebot из коробки:

  • Сложная LLM-интеграция (есть, но базовая - для серьёзного RAG нужен n8n или код)
  • Кастомный интерфейс с webview
  • Тяжёлая аналитика поведения пользователей

Способ 2: BotHelp за 30 минут

BotHelp ближе к маркетинговым задачам - сильнее в массовых рассылках, A/B-тестах, сегментации аудитории. Если ваша главная задача - воронка из бесплатного материала в платный курс с прогревом по 4-5 шагам, BotHelp удобнее Salebot.

Особенности:

  • Встроенный визуальный конструктор воронок с разветвлениями
  • Сильный модуль рассылок: можно делать рассылку по тегам, по поведению, с разделением A/B
  • Дешевле Salebot на простых ботах (1 599 ₽/мес против 2 999 ₽)
  • Слабее в долгосрочных диалогах - state-machine ограничен по числу состояний

Регистрация и подключение токена - те же 5 минут. Сценарий простого бота-приветствия с прогревом - те же 30-60 минут.

Способ 3: n8n - когда нужны 3+ интеграции

n8n - не классический «конструктор бота», а движок workflow с 400+ интеграциями. Telegram-бот в n8n - это workflow, который слушает Telegram-webhook, обрабатывает сообщения, дёргает другие сервисы, отвечает обратно.

Минимальный workflow «бот, принимающий заявки и кладущий в AmoCRM»:

[Telegram Trigger: новое сообщение]

[Code: парсинг текста]

[If: содержит ключевое слово "заявка"?]
   ↓ true
[AmoCRM: создать сделку]

[Telegram: "Заявка принята, менеджер свяжется"]

5 узлов, 1-2 часа на сборку. Подробный разбор архитектуры и production-конфига - в отдельной статье про n8n.

n8n идеален когда нужны:

  • 3+ внешних сервиса (CRM, платежи, эмбеддинги, БД, нотификации)
  • Сложная логика с очередями и ретраями
  • Self-hosted на своём VPS (соответствие 152-ФЗ)
  • Возможность вкладывать кастомный JS-код в любой узел

Пороги входа выше, чем у Salebot, но потолок сложности тоже выше.

Способ 4: Python с aiogram 3.x за 50 строк кода

Если вы (или ваш разработчик) умеете в Python - aiogram 3.x даёт максимальный контроль при минимальном бойлерплейте.

Минимальный echo-бот с инлайн-клавиатурой:

import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.utils.keyboard import InlineKeyboardBuilder

BOT_TOKEN = "8730010071:AAFvVxJ9..."

bot = Bot(token=BOT_TOKEN)
dp = Dispatcher()


@dp.message(Command("start"))
async def cmd_start(message: types.Message):
    builder = InlineKeyboardBuilder()
    builder.button(text="Записаться", callback_data="book")
    builder.button(text="Цены", callback_data="prices")
    builder.adjust(1)
    await message.answer(
        "Здравствуйте! Чем помочь?",
        reply_markup=builder.as_markup(),
    )


@dp.callback_query()
async def on_callback(callback: types.CallbackQuery):
    if callback.data == "book":
        await callback.message.answer("Выберите дату...")
    elif callback.data == "prices":
        await callback.message.answer("Прайс по ссылке: ...")
    await callback.answer()


@dp.message()
async def echo(message: types.Message):
    await message.answer(f"Вы написали: {message.text}")


async def main():
    await dp.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

Это полностью рабочий echo-бот с inline-клавиатурой. Ставим зависимость одной командой:

pip install aiogram==3.x

Запуск: python bot.py. На локалке работает сразу через polling. Для production - переезд на webhook через nginx и SSL.

Когда писать на aiogram, а не использовать конструктор:

  • Нужны нестандартные фичи (custom inline-режимы, веб-аппы внутри бота)
  • Бот - часть существующего Python-сервиса
  • Команда уже пишет на Python, держать ещё и no-code сложно
  • Высокие требования к latency (aiogram отвечает за 50-100ms против 200-500ms у конструкторов)

Способ 5: Node.js с telegraf

Альтернатива aiogram для JS-команд. Telegraf - самая популярная JS-обёртка над Telegram Bot API.

Минимальный пример:

const { Telegraf, Markup } = require('telegraf');
const bot = new Telegraf(process.env.BOT_TOKEN);

bot.command('start', (ctx) => {
  ctx.reply(
    'Здравствуйте! Чем помочь?',
    Markup.inlineKeyboard([
      [Markup.button.callback('Записаться', 'book')],
      [Markup.button.callback('Цены', 'prices')],
    ])
  );
});

bot.action('book', (ctx) => {
  ctx.answerCbQuery();
  ctx.reply('Выберите дату...');
});

bot.on('text', (ctx) => {
  ctx.reply(`Вы написали: ${ctx.message.text}`);
});

bot.launch();

Установка: npm install telegraf. Запуск: node bot.js.

По функционалу - полный аналог aiogram. Выбор Python vs Node.js - чисто вопрос вашей команды.

Сравнительная таблица: на чём собирать что

ЗадачаSalebotBotHelpn8nAiogramTelegraf
Бот записи на услугу✅ идеально✅ ОК⚠️ overkill⚠️ overkill⚠️ overkill
FAQ-бот с 50 ответами✅ идеально✅ ОК⚠️ можно⚠️ можно⚠️ можно
Воронка прогрева на 5-7 шагов✅ ОК✅ идеально⚠️ можно⚠️ можно⚠️ можно
Интеграция с AmoCRM/Bitrix24✅ есть⚠️ слабее✅ идеально✅ можно✅ можно
AI-квалификация лидов через GPT⚠️ базовая⚠️ базовая✅ идеально✅ идеально✅ идеально
Бот с веб-приложением (mini-app)❌ нет❌ нет⚠️ через код✅ идеально✅ идеально
Высокие требования к скорости❌ медленнее❌ медленнее⚠️ зависит✅ идеально✅ идеально
Платежи через Prodamus/CloudPayments✅ есть✅ есть✅ через API✅ можно✅ можно
Команда без программистов✅ идеально✅ идеально⚠️ нужен инженер❌ нет❌ нет

Деплой на сервер: docker и webhook через nginx

Для production-бота на Python или Node.js нужен сервер с публичным IP и SSL-сертификатом. Минимальная конфигурация на VPS Beget или Timeweb за 700 ₽/мес.

Docker-compose для aiogram-бота:

version: "3.8"
services:
  bot:
    build: .
    restart: unless-stopped
    environment:
      BOT_TOKEN: ${BOT_TOKEN}
      WEBHOOK_URL: https://bot.example.ru/webhook
    ports:
      - "127.0.0.1:8080:8080"

Nginx:

server {
    listen 443 ssl http2;
    server_name bot.example.ru;
    ssl_certificate /etc/letsencrypt/live/bot.example.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bot.example.ru/privkey.pem;
    
    location /webhook {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Сертификат через certbot: certbot --nginx -d bot.example.ru. После деплоя - регистрируем webhook в Telegram:

curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
  -d "url=https://bot.example.ru/webhook"

3 типичные ошибки новичков

1. Хранят токен в коде. Через неделю код попадает в публичный GitHub-репозиторий, через два дня кто-то находит токен и угоняет бота. Решение: всегда через env-переменные или секрет-менеджер. В git - только .env.example без значений.

2. Не делают бэкапы базы. Бот работает на Salebot или Python с PostgreSQL, всё хорошо. Через полгода диск умирает или ошибочно DROP TABLE - и потеря всех диалогов и настроек. Решение: ежедневный pg_dump с хранением минимум 30 дней в двух местах.

3. Игнорируют rate limits Telegram API. Telegram режет на 30 сообщений в секунду от одного бота. Если делаете рассылку на 5000 пользователей за раз - бот блокируется на 1-2 часа. Решение: throttle через asyncio.sleep или библиотеку aiogram-broadcaster.

Когда не пытаться сделать самому

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

  • AI-блок с базой знаний. Нужно понимание embeddings, vector search, чанкования, оценки качества ответов. Без опыта - 2-3 месяца на изучение, плюс высокий риск, что бот будет галлюцинировать.

  • Рекуррентные платежи и сложная биллинг-логика. Платежные API имеют тонкости: ретраи, обработка отказов, чарджбэки, тестовый/боевой режимы. Ошибка стоит денег и репутации.

  • Срочный запуск. Учиться 3 недели, когда запуск через 5 дней - не вариант.

  • Бот критичный для бизнес-операций. Если падение бота останавливает поток клиентов или продажи - нужен опытный исполнитель и SLA.

В остальных случаях - смело пробуйте сами. Бот для записи в свой салон или FAQ для своего магазина - лучшее обучение на собственном опыте.

FAQ

Сколько стоит держать бота?

VPS - 500-1500 ₽/мес. Salebot - от 2 999 ₽/мес за тариф «Бизнес». BotHelp - от 1 599 ₽/мес. Telegram-API бесплатный, кроме Premium-функций (Stars, Stories). LLM-токены - 0-300 долларов в зависимости от объёма.

Можно ли держать бота на бесплатном тарифе?

Salebot/BotHelp - есть пробный период, потом обязательный платный. Свой код на VPS - есть бесплатные облачные options (Render, Railway free tier), но они нестабильны и не подходят для production.

Сколько активных пользователей выдержит бот?

aiogram/telegraf на VPS за 700 ₽ - 10 000-50 000 одновременных пользователей. Конструкторы лимитируют по тарифу: Salebot Бизнес - до 5 000 активных в месяц, выше - дороже.

Что лучше для AI-бота: Python или Node.js?

Python экосистема для AI зрелее (langchain, llama-index, чёткие embeddings-обёртки). Node.js быстрее в setup и дешевле на VPS из-за меньшего потребления памяти. Для серьёзного AI-бота - Python; для быстрого старта - Node.js.

Можно ли мигрировать с Salebot на свой код?

Да, экспорт сценария - через копирование вручную или через API Salebot. Полная миграция занимает 30-50% времени от первоначальной разработки.

Как защитить бота от спама?

Rate-limit на уровне webhook (одного пользователя - не более 1 сообщения в секунду), CAPTCHA при первом контакте, фильтр по user_id черного списка. В aiogram это делается middleware за 30 строк кода.

Что делать, если бот упал?

Auto-restart через restart: unless-stopped в docker-compose. Алерты через uptime-кобота. Логирование через Sentry. На критичных ботах - dual-deploy на двух VPS с балансировщиком.

Стоит ли учить Telegram Bot API?

Если хотите делать ботов профессионально - да, базовое понимание полезно. Если делаете один-два проекта для своего бизнеса - достаточно знаний на уровне конструктора, технические детали возьмёт на себя Salebot/BotHelp.

Что дальше

Если за пару попыток у вас не получается, или задача оказалась сложнее, чем вы думали - напишите в Telegram или через форму. Часто после 30-минутного созвона становится ясно: либо вы доделываете сами по подсказкам, либо мы быстро собираем за 2-3 дня.

Связанные материалы:

Полезные ссылки на официальные документации: