В мире современного бизнеса автоматизация рутинных процессов становится необходимостью. n8n - это мощный инструмент с открытым исходным кодом, который позволяет автоматизировать рабочие процессы без глубоких технических знаний. В этой статье мы рассмотрим, как начать работу с n8n и настроить свой первый рабочий процесс.

Что такое n8n?

n8n (произносится как "n-eight-n") - это платформа автоматизации рабочих процессов с открытым исходным кодом. Она позволяет соединять различные сервисы и системы между собой, создавая автоматизированные рабочие процессы. В отличие от многих других инструментов, n8n можно запускать на собственном сервере, что обеспечивает полный контроль над данными и процессами.

Основные преимущества n8n:

  • Открытый исходный код и возможность самостоятельного хостинга
  • Широкий выбор интеграций с популярными сервисами
  • Возможность создания собственных узлов и интеграций
  • Простой и интуитивно понятный интерфейс
  • Условная логика и обработка ошибок

Установка n8n

Существует несколько способов установки n8n. Мы рассмотрим самый простой вариант с использованием npm (менеджер пакетов Node.js).

Предварительные требования:

  • Node.js (версия 16 или выше)
  • npm (обычно устанавливается вместе с Node.js)

Шаги установки:

  1. Откройте терминал или командную строку
  2. Выполните команду: npm install n8n -g
  3. После завершения установки запустите n8n командой: n8n
  4. 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 для создания интеллектуальных автоматизаций. Следите за обновлениями!