Обзор возможностей
n8n предоставляет мощные инструменты для создания Telegram-ботов любой сложности. Вот что можно реализовать:
ИИ-ассистенты
Боты с GPT-5.1, Claude Opus 4.5, Gemini 3 или локальными моделями. Отвечают на вопросы, генерируют контент, помогают с задачами.
Автоматизации
Уведомления о событиях, напоминания, интеграция с CRM, отправка отчётов по расписанию.
Обработка файлов
Приём документов, изображений, аудио. OCR, анализ картинок через Vision API, транскрибация голоса.
Поддержка клиентов
Первая линия поддержки, FAQ-бот, маршрутизация обращений, сбор обратной связи.
Что понадобится
- Работающий n8n — инструкция по установке
- SSL-сертификат — Telegram требует HTTPS для webhooks
- Telegram-аккаунт — для создания бота через BotFather
- API-ключ ИИ — OpenAI, Anthropic или другой провайдер (для ИИ-бота)
Для тестирования
Если у вас нет сервера с SSL, используйте n8n.cloud (бесплатный trial) или запустите n8n локально с флагом --tunnel — это создаст временный публичный URL.
Шаг 1: Создание бота в BotFather
- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Введите имя бота (отображаемое название)
- Введите username бота (должен заканчиваться на "bot")
- Скопируйте полученный токен — он понадобится для n8n
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz123456789
Важно!
Никогда не публикуйте токен бота в открытых источниках. Если токен скомпрометирован, немедленно получите новый через /revoke в BotFather.
Шаг 2: Простой эхо-бот
Начнём с простого бота, который повторяет сообщения пользователя. Это поможет проверить, что всё настроено правильно.
Создание workflow
- Откройте n8n и создайте новый workflow
- Добавьте ноду Telegram Trigger
- В настройках выберите "Credential to connect with" → Add new credential
- Вставьте токен бота из BotFather
- В поле "Updates" выберите "Message"
Добавление ответа
- Добавьте ноду Telegram (не Trigger, а обычную)
- Соедините её с Telegram Trigger
- Выберите операцию "Send Message"
- В "Chat ID" укажите:
{{ $json.message.chat.id }} - В "Text" укажите:
Вы написали: {{ $json.message.text }}
Активация бота
- Нажмите "Save" для сохранения workflow
- Нажмите переключатель "Active" в правом верхнем углу
- Откройте вашего бота в Telegram и отправьте любое сообщение
- Бот должен ответить, повторив ваше сообщение
Шаг 3: Бот с ChatGPT/Claude
Теперь добавим интеграцию с ИИ, чтобы бот давал умные ответы.
Вариант 1: OpenAI (ChatGPT)
- Добавьте ноду OpenAI между Trigger и Telegram Send
- Создайте credential с вашим API-ключом OpenAI
- Выберите операцию "Message a Model"
- Выберите модель (gpt-4o рекомендуется)
- В "Prompt" → "User Message" укажите:
{{ $json.message.text }}
Ты — дружелюбный AI-ассистент в Telegram. Отвечай кратко и по делу.
Используй эмодзи умеренно. Если не знаешь ответа — честно скажи об этом.
Отвечай на русском языке, если пользователь пишет на русском.
Вариант 2: Anthropic Claude
- Добавьте ноду Anthropic
- Создайте credential с API-ключом Anthropic
- Выберите модель (claude-3-5-sonnet рекомендуется)
- Настройте аналогично OpenAI
Вариант 3: Ollama (локальные модели)
Если хотите использовать бесплатные локальные модели:
- Установите Ollama на сервер:
curl -fsSL https://ollama.com/install.sh | sh - Скачайте модель:
ollama pull llama3 - В n8n добавьте ноду HTTP Request
- Настройте POST запрос к Ollama API
URL: http://localhost:11434/api/generate
Method: POST
Body (JSON):
{
"model": "llama3",
"prompt": "{{ $json.message.text }}",
"stream": false
}
Обновлённая структура workflow
В ноде Telegram Send измените текст на: {{ $json.message.content }} (для OpenAI) или соответствующее поле для других провайдеров.
Шаг 4: Добавление памяти диалога
Чтобы бот помнил контекст разговора, нужно хранить историю сообщений. Рассмотрим простой вариант с Google Sheets:
Структура таблицы
| chat_id | role | content | timestamp |
|---|---|---|---|
| 123456789 | user | Привет! | 2025-01-15 10:00:00 |
| 123456789 | assistant | Привет! Чем могу помочь? | 2025-01-15 10:00:01 |
Workflow с памятью
Получаем сообщение
Получаем последние 10 сообщений для chat_id
Формируем массив messages для API
Отправляем с историей
Сохраняем user + assistant сообщения
Отправляем ответ
// Получаем историю из Google Sheets
const history = $input.all().map(item => ({
role: item.json.role,
content: item.json.content
}));
// Добавляем новое сообщение пользователя
const userMessage = $('Telegram Trigger').item.json.message.text;
history.push({
role: 'user',
content: userMessage
});
// Ограничиваем историю последними 10 сообщениями
const recentHistory = history.slice(-10);
return [{
json: {
messages: recentHistory,
chat_id: $('Telegram Trigger').item.json.message.chat.id,
user_message: userMessage
}
}];
Шаг 5: Обработка команд
Telegram-боты обычно поддерживают команды (начинаются с /). Добавим обработку команд через Switch ноду:
Популярные команды
/start— приветствие нового пользователя/help— справка по боту/clear— очистка истории диалога/settings— настройки бота
Настройка Switch
- Добавьте ноду Switch после Telegram Trigger
- В "Mode" выберите "Rules"
- Добавьте правила для каждой команды:
Rule 1: {{ $json.message.text }} starts with "/start" → Output 0
Rule 2: {{ $json.message.text }} starts with "/help" → Output 1
Rule 3: {{ $json.message.text }} starts with "/clear" → Output 2
Fallback (остальные сообщения) → Output 3
Каждый output Switch соединяйте с соответствующей нодой обработки.
Продвинутые функции
Обработка изображений
Для анализа изображений используйте GPT-5.1 или Claude Opus 4.5:
- В Telegram Trigger добавьте тип "Photo"
- Получите file_id:
{{ $json.message.photo[0].file_id }} - Используйте Telegram → Get File для получения URL
- Передайте URL в Vision API
Голосовые сообщения
Для транскрибации голоса:
- Получите voice file через Telegram API
- Используйте OpenAI Whisper для транскрибации
- Обработайте текст как обычное сообщение
Inline-кнопки
Добавьте интерактивные кнопки под сообщениями:
{
"inline_keyboard": [
[
{"text": "Да ✅", "callback_data": "confirm_yes"},
{"text": "Нет ❌", "callback_data": "confirm_no"}
],
[
{"text": "Подробнее 📖", "url": "https://aibot.direct"}
]
]
}
Ограничение доступа
Для приватного бота добавьте проверку chat_id:
Condition: {{ $json.message.chat.id }} is equal to YOUR_CHAT_ID
True → продолжить
False → отправить "Доступ запрещён"
Часто задаваемые вопросы
Да, для production нужен сервер с публичным IP и SSL-сертификатом. Telegram отправляет webhooks только на HTTPS. Для тестирования можно использовать n8n.cloud или туннель (ngrok).
Используйте базу данных (PostgreSQL, Redis) или Google Sheets для хранения истории. При каждом сообщении извлекайте последние N сообщений пользователя и передавайте их в контекст ИИ.
Да, можно подключить локальные модели через Ollama (Llama 4, Mistral) или использовать бесплатные API (Groq, Together AI с ограничениями). Ollama требует сервер с 8+ GB RAM.
n8n позволяет получать файлы из Telegram через API. Для анализа изображений используйте GPT-5.1, Claude Opus 4.5 или Google Gemini 3 — они умеют "видеть" картинки.
Проверьте: 1) Webhook установлен корректно (getWebhookInfo), 2) SSL-сертификат валидный, 3) n8n workflow активен, 4) Нет ошибок в логах. Частая причина — неправильный URL webhook.
Нужен Telegram-бот для бизнеса?
Мы создаём умных Telegram-ботов под ключ: от простых FAQ-ботов до сложных ИИ-ассистентов с интеграцией в CRM. Работаем с n8n, обеспечиваем приватность данных.