В мире современного бизнеса автоматизация рутинных процессов становится необходимостью. n8n - это мощный инструмент с открытым исходным кодом, который позволяет автоматизировать рабочие процессы без глубоких технических знаний. В этой статье мы рассмотрим, как начать работу с n8n и настроить свой первый рабочий процесс.
Что такое n8n?
n8n (произносится как "n-eight-n") - это платформа автоматизации рабочих процессов с открытым исходным кодом. Она позволяет соединять различные сервисы и системы между собой, создавая автоматизированные рабочие процессы. В отличие от многих других инструментов, n8n можно запускать на собственном сервере, что обеспечивает полный контроль над данными и процессами.
Основные преимущества n8n:
- Открытый исходный код и возможность самостоятельного хостинга
- Широкий выбор интеграций с популярными сервисами
- Возможность создания собственных узлов и интеграций
- Простой и интуитивно понятный интерфейс
- Условная логика и обработка ошибок
Установка n8n
Существует несколько способов установки n8n. Мы рассмотрим самый простой вариант с использованием npm (менеджер пакетов Node.js).
Предварительные требования:
- Node.js (версия 16 или выше)
- npm (обычно устанавливается вместе с Node.js)
Шаги установки:
- Откройте терминал или командную строку
- Выполните команду:
npm install n8n -g - После завершения установки запустите n8n командой:
n8n - n8n будет доступен по адресу http://localhost:5678
Если вы предпочитаете использовать Docker, вы можете запустить n8n с помощью следующей команды:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
Создание первого рабочего процесса
Теперь, когда n8n установлен и запущен, давайте создадим простой рабочий процесс, который будет отправлять уведомление в Telegram каждый раз, когда публикуется новая статья в RSS-ленте.
Шаг 1: Создание нового рабочего процесса
Откройте n8n в браузере и нажмите кнопку "Создать рабочий процесс" (или "Create new workflow"). Введите имя для вашего рабочего процесса, например, "RSS в Telegram".
Шаг 2: Добавление узла RSS
Нажмите на кнопку "+" в верхней панели и найдите узел "RSS Feed Read". Настройте его следующим образом:
- URL: введите URL RSS-ленты, например,
https://blog.example.com/rss - Разобрать содержимое описания: включите эту опцию
- Максимальное количество элементов: 10 (или любое другое значение)
- Планирование: установите интервал проверки, например, каждые 15 минут
Шаг 3: Добавление узла Telegram
Теперь добавьте узел "Telegram" из меню узлов. Для этого вам потребуется создать бота в Telegram и получить API-ключ. Настройте узел следующим образом:
- Операция: Отправить сообщение
- Аутентификация: API-ключ бота, полученный от BotFather в Telegram
- Chat ID: ID вашего чата или группы в Telegram
- Текст: Здесь вы можете использовать данные из узла RSS. Например:
Новая статья: {{$node["RSS Feed Read"].json["title"]}}\n\n{{$node["RSS Feed Read"].json["description"]}}\n\nЧитать далее: {{$node["RSS Feed Read"].json["link"]}}
Шаг 4: Соединение узлов
Теперь соедините узлы, перетащив линию от выходного порта RSS узла к входному порту узла Telegram.
Шаг 5: Настройка дедупликации
Чтобы избежать отправки одних и тех же новостей несколько раз, мы можем добавить промежуточный узел "Function" между RSS и Telegram. Настройте его следующим образом:
// Проверяем, видели ли мы уже эту новость
const seenItems = $node["Function"].context.seenItems || [];
const currentItem = $input.item;
// Если мы уже видели эту новость, пропускаем ее
if (seenItems.includes(currentItem.guid)) {
return []; // Пустой массив означает, что элемент не будет передан дальше
}
// Добавляем новость в список увиденных
seenItems.push(currentItem.guid);
if (seenItems.length > 100) {
seenItems.shift(); // Удаляем самую старую запись, если список стал слишком большим
}
// Сохраняем обновленный список
$node["Function"].context.seenItems = seenItems;
// Передаем элемент дальше
return $input.item;
Шаг 6: Активация рабочего процесса
Нажмите кнопку "Сохранить" в верхнем меню, а затем "Активировать". Ваш рабочий процесс теперь будет выполняться автоматически согласно указанному расписанию.
Расширение возможностей
Этот простой рабочий процесс можно расширить различными способами:
- Добавить фильтрацию новостей по ключевым словам
- Интегрировать с другими каналами связи, такими как Slack или электронная почта
- Сохранять новости в базе данных или таблице
- Использовать OpenAI для создания резюме длинных статей перед отправкой
Заключение
n8n предлагает мощные возможности для автоматизации рабочих процессов без необходимости глубокого программирования. В этой статье мы рассмотрели только базовые возможности, но даже с их помощью можно создать полезные автоматизации для вашего бизнеса или личного использования.
В следующей статье мы рассмотрим, как интегрировать OpenAI API с n8n для создания интеллектуальных автоматизаций. Следите за обновлениями!