n8n открывает широкие возможности для автоматизации взаимодействия с Telegram: от простых уведомлений до сложных ботов с голосовым управлением и интеграцией с нейросетями. В этой статье вы узнаете, как использовать все доступные инструменты, включая обработку медиа, работу с LLM и неочевидные сценарии.
Основные ноды Telegram в n8n
— Telegram Trigger (Webhook)
Для чего: Перехват сообщений, голосовых записей, файлов и действий с кнопками в реальном времени.
Как настроить:
1. Создайте бота через @BotFather.
2. Вставьте токен в ноду и укажите URL вебхука (например, https://ваш-сервер.com/webhook).
3. Активируйте триггер — бот начнет получать события.
Пример использования:
json
// Пример входящего сообщения
{
"message": {
"text": "/start",
"from": {"id": 12345},
"voice": {"file_id": "AwADBAADbQADAQZgZ..."} // Если это голосовое
}
}
— Что можно делать:
– Ловить команды (например, /help).
– Получать ID чата для дальнейшей работы.
– Запускать процессы при получении голосовых сообщений.
— Telegram: Send Message
// Пример клавиатуры
{
"inline_keyboard": [
[{"text": "Подтвердить", "callback_data": "confirm"}]
]
}
Совет: Используйте динамические выражения в тексте, например, подставляйте имя пользователя:
Привет, {{$json.message.from.first_name}}!
— Telegram: Send Media
Для чего: Отправка фото, видео, PDF и аудио.
Как работает:
1. Загрузите файл через ноду HTTP Request или Read Binary File.
2. Передайте содержимое в поле «Media File» ноды.
3. Укажите тип медиа (photo, audio, document).
Пример: Автоматическая отправка ежедневного отчета в PDF:
Google Sheets (данные) → Generate PDF (нода-скрипт) → Send Media
— Telegram: Answer Callback Query
Для чего: Реакция на нажатие inline-кнопок.
Сценарий:
1. Пользователь нажимает кнопку «Показать детали».
2. Бот отвечает всплывающим уведомлением: «Ищем информацию…».
3. Обновляет интерфейс новыми кнопками.
Настройка:
– В поле Callback Query ID укажите {{$json.callback_query.id}}.
– Используйте Show Alert: true, чтобы уведомление осталось на экране.
— Telegram: Delete Message
Для чего: Удаление сообщений по ID (например, после проверки модерации).
Пример (последовательность нод):
Telegram Trigger → IF (сообщение содержит запрещенное слово) → Delete Message
Где взять ID сообщения: {{$json.message.message_id}}.
— Telegram: Edit Message
Для чего: Изменение текста или кнопок в уже отправленном сообщении.
Идеи для применения:
– Обновление статуса заказа: «✅ Ваш заказ собран».
– Динамические опросы: изменение процентов голосов в реальном времени.
Голосовые сообщения: от приема до интеграции с ИИ
— Как получить голосовое сообщение
1. Добавьте ноду Telegram Trigger.
2. В фильтре событий выберите voice.
3. Для скачивания файла используйте ноду Download File, указав file_id: {{$json.message.voice.file_id}}.
— Преобразование голоса в текст
Варианты интеграции:
– OpenAI Whisper (последовательность нод):
Download File → OpenAI (модель whisper-1) → Текст
– Hugging Face Speech Recognition:
Используйте модель facebook/wav2vec2-base-960h через ноду Hugging Face.
— Как отправить голосовой ответ
1. Сгенерируйте текст через LLM (например, GPT-4).
2. Конвертируйте текст в аудио через Google Text-to-Speech или Amazon Polly.
3. Отправьте файл через Send Media с типом audio.
Пример запроса в Google Cloud TTS:
{
"input": {"text": "Добрый день! Как я могу помочь?"},
"voice": {"languageCode": "ru-RU", "name": "ru-RU-Wavenet-C"},
"audioConfig": {"audioEncoding": "MP3"}
}
Связь Telegram-бота с LLM: сценарии
— Чат-бот с искусственным интеллектом
Как настроить:
1. Перехватите сообщение через Telegram Trigger.
2. Извлеките текст: {{$json.message.text}}.
3. Передайте запрос в LLM (Anthropic, OpenAI, локальная модель через Custom API).
4. Отправьте ответ через Send Message.
Пример запроса к Claude 3:
{
"model": "claude-3-opus-20240229",
"messages": [{"role": "user", "content": "{{$json.message.text}}"}]
}
— Голосовой ассистент для анализа данных
Цепочка действий:
Голосовая команда → Конвертация в текст → Запрос к LLM → Анализ данных в Google Sheets → Голосовой ответ
Детали:
– Пользователь говорит: «Какая выручка за март?».
– LLM определяет intent и параметры (месяц: март, метрика: выручка).
– n8n запрашивает данные из таблицы и формирует ответ: «В марте выручка составила 1,2 млн рублей».
Примеры рабочих процессов
— Умные напоминания
Telegram Trigger (текст: /напомни) → Extract Keywords (дата и задача) → Google Calendar (создать событие) → Telegram: Send Message («Напоминание установлено на {{дата}}»)
— Опросник с сохранением в БД
Send Message (кнопки: Да/Нет) → Answer Callback Query → PostgreSQL (запись ответа) → Send Message («Спасибо за участие!»)
— Бот-аналитик для трейдинга
Пользователь: «Цена BTC?» → Binance API (курс) → GPT-4 (анализ тренда) → Send Message («Сейчас $61,230. Рост 2% за час.»)
Рекомендации по оптимизации
— Кэширование данных
Если бот часто обращается к API или LLM, используйте Redis для временного хранения результатов. Например:
Запрос погоды → Redis (проверка кэша) → IF (нет в кэше) → OpenWeatherMap API → Redis сохранить на 10 мин)
— Обработка ошибок
Добавьте ноду Catch после ключевых операций. Пример уведомления об ошибке:
Try (отправка сообщения) → Catch → Send Message («Ой, произошла ошибка! Мы уже работаем над этим.»)