Что получится
После выполнения гайда у тебя будет Telegram-бот, который:
- Принимает любые входящие сообщения от пользователей
- Обрабатывает их через n8n-флоу (фильтрация, условия, трансформация данных)
- Отправляет текстовый ответ обратно в чат
Это базовый паттерн, на основе которого строятся боты поддержки, квалификации лидов, FAQ-боты и личные автоматизации.
Что нужно
- Работающий инстанс n8n (self-hosted или cloud)
- Аккаунт в Telegram
- 20 минут времени
n8n должен быть доступен по публичному HTTPS-адресу — Telegram требует именно HTTPS для webhook. Если у тебя локальный n8n, используй ngrok или аналог для туннелирования.
Шаг 1: Создаём бота в BotFather
- Открой Telegram и найди бота @BotFather (верифицированный, с синей галочкой).
- Напиши
/newbotи следуй инструкциям:- Введи отображаемое имя бота (например,
My AfterAI Bot) - Введи username — должен заканчиваться на
bot(например,myafterai_bot)
- Введи отображаемое имя бота (например,
- BotFather пришлёт сообщение вида:
Done! Congratulations on your new bot. You will find it at t.me/myafterai_bot.
Use this token to access the HTTP API:
7123456789:AAFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Сохрани токен — он потребуется в n8n. Никому не передавай его: владелец токена контролирует бота.
Скриншот: BotFather прислал токен, ты видишь строку вида
7123456789:AAF...— копируй её полностью.
Шаг 2: Настраиваем Webhook в n8n
- Открой n8n и создай новый workflow.
- Добавь ноду Webhook:
- Click
+→ SearchWebhook→ выбери ноду - HTTP Method:
POST - Path: задай уникальный путь, например
telegram-bot - Response Mode:
Respond to Webhook(илиLast Node)
- Click
- Активируй workflow (переключатель в правом верхнем углу).
- Скопируй Production URL вида:
code
https://your-n8n.example.com/webhook/telegram-bot
Теперь зарегистрируй этот URL как webhook Telegram. Выполни запрос в браузере или через curl:
curl "https://api.telegram.org/bot<YOUR_TOKEN>/setWebhook?url=https://your-n8n.example.com/webhook/telegram-bot"
Ожидаемый ответ:
{
"ok": true,
"result": true,
"description": "Webhook was set"
}
Проверить статус webhook можно командой:
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getWebhookInfo"
Шаг 3: Добавляем Telegram node для ответа
Теперь нужно обработать входящее сообщение и отправить ответ.
- Добавь ноду Telegram после Webhook-ноды:
- В поле Credential создай новые credentials → вставь токен бота
- Resource:
Message - Operation:
Send Message
- Заполни поля:
- Chat ID:
{{ $json.message.chat.id }}— динамически берём ID чата из входящего сообщения - Text:
Привет! Ты написал: {{ $json.message.text }}
- Chat ID:
Структура входящего JSON от Telegram выглядит так:
{
"update_id": 123456789,
"message": {
"message_id": 42,
"from": {
"id": 987654321,
"first_name": "Иван",
"username": "ivan_example"
},
"chat": {
"id": 987654321,
"type": "private"
},
"text": "Привет, бот!"
}
}
Именно из этой структуры берём $json.message.chat.id и $json.message.text.
Скриншот: в n8n видны две ноды — Webhook слева, Telegram справа. Линия соединяет их. В Telegram-ноде заполнены Chat ID и Text.
Шаг 4: Тестируем флоу
- Убедись, что workflow активирован (переключатель включён).
- Открой своего бота в Telegram:
t.me/myafterai_bot - Напиши любое сообщение, например
Привет. - Бот должен ответить:
Привет! Ты написал: Привет
Если ответа нет — проверь:
- Webhook действительно зарегистрирован (команда
getWebhookInfo) - n8n доступен по HTTPS извне
- Workflow активирован, а не просто сохранён
В n8n в разделе Executions ты увидишь лог каждого входящего сообщения — это помогает отладить проблемы с данными.
Что дальше
Базовый бот готов. Вот куда двигаться дальше:
- Условная логика: добавь IF-ноду — разные ответы на разные команды (
/start,/help, конкретные ключевые слова) - База данных: сохраняй историю сообщений в Airtable, Google Sheets или PostgreSQL
- OpenAI интеграция: передавай текст пользователя в ChatGPT и возвращай AI-ответ
- Меню с кнопками: используй
reply_markupв Telegram API для интерактивных кнопок
Для более сложных сценариев смотри гайд по контент-конвейеру на n8n с OpenAI.