Содержание
n8n Telegram бот — создание бота с ИИ | Пошаговое руководство
Обзор возможностей
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 → отправить "Доступ запрещён"
Часто задаваемые вопросы
Частые вопросы
С помощью n8n и Telegram можно создать: ИИ-ассистентов на базе GPT-5, Claude или Gemini; автоматизации с уведомлениями и напоминаниями; боты для обработки файлов (OCR, анализ изображений, транскрибация аудио); первую линию поддержки клиентов с маршрутизацией обращений.
Откройте Telegram, найдите @BotFather, отправьте /newbot, введите имя и username бота (должен заканчиваться на «bot»). Скопируйте токен — он понадобится для настройки ноды Telegram Trigger в n8n.
Да. Telegram требует HTTPS для работы webhooks. Если у вас нет сервера с SSL, можно использовать n8n.cloud (бесплатный trial) или запустить n8n локально с флагом --tunnel для временного публичного URL.
В workflow между нодами Telegram Trigger и Telegram Send добавьте ноду OpenAI или Anthropic. Передайте в неё {{ $json.message.text }} как промпт, настройте API-ключ, и бот будет отвечать с помощью ИИ.
n8n умеет принимать через Telegram документы, изображения и аудио. Через ноды можно: распознавать текст на изображениях (OCR), анализировать картинки через Vision API, транскрибировать голосовые сообщения через Whisper.
После настройки workflow включите переключатель «Active» в n8n и убедитесь, что сервер с n8n работает постоянно. Настройте webhook Telegram → ваш n8n-сервер. Для надёжности используйте systemd или Docker с политикой restart: always.
Да. Согласно статистике, около 40% обращений клиентов приходит вне рабочего времени. AI-бот в Telegram через n8n принимает заявки, отвечает на FAQ и собирает контактные данные круглосуточно без участия менеджеров.
Нужна ИИ-автоматизация под ваш бизнес?
Запишитесь на бесплатную консультацию — обсудим задачу и пришлём готовое решение.
Обсудить проект →