n8n – Шаблоны и сценарии применения сервиса автоматизации

В этой статье мы расскажем о готовом решении из нашего маркетплейса – виртуальном сервере с предустановленной n8n.

n8n – интеграционная платформа, которая позволяет автоматизировать ваши рабочие процессы без необходимости писать код.

Одна из главных причин популярности n8n – большое количество интеграций в приложения (более 400 на момент написания статьи), благодаря чему вы можете интегрировать в процессы автоматизации практически всё используемое в работе программное обеспечение.

Мы рассмотрим несколько сценариев, которые помогут автоматизировать ваши рутинные задачи, а также расскажем, как установить и обновить n8n или изменить домен, если у вас уже есть сервер с n8n.

Установка n8n

Прежде всего, нам необходимо развернуть сервер с n8n.

Вы можете запустить установку n8n на своем сервере со страницы готового решения, выбрав необходимую конфигурацию и нажав на кнопку “Создать VPS”. Если у вас нет аккаунта в Beget, вам будет предложено его зарегистрировать.Далее вы будете перенаправлены на страницу создания VPS/VDS. В верхней части страницы вы можете выбрать локацию, где будет расположен ваш сервер:

локация VPS/VDS
Обратите внимание!
Для зарубежных локаций минимальная конфигурация следующая: 2 ядра CPU / 2 ГБ память / 30 ГБ NVMe.

Готовое решение n8n будет выбрано по умолчанию.

Обратите внимание!
Вы можете использовать для работы технический домен, однако многие сервисы (такие как Google OAuth) требуют для работы домен второго уровня (вида betutorial.ru). Вы можете зарегистрировать новый домен в разделе “Домены и поддомены” и выбрать его при создании сервера либо выполнить изменение основного домена n8n уже после, согласно инструкции из соответствующего раздела.

По умолчанию будет сгенерирован и выбран технический домен от Beget вида betutorial.beget.app, где вместо betutorial будет сгенерировано случайное слово.

технический домен

В выпадающем списке вы можете выбрать собственный домен, который находится у вас на аккаунте:

домен в Бегет

Далее укажите логин и пароль администратора, которые будут использоваться для входа в панель n8n:

логин и пароль в панель n8n

При необходимости настройте дополнительные параметры VPS.

Когда всё будет готово, кликните на кнопку “Создать виртуальный сервер”. После создания сервера и установки ПО кликните на кнопку “Информация о n8n” в карточке виртуального сервера:

n8n в Beget

В открывшемся окне будет указана ссылка на панель и доступы к ней:

n8n в Beget

Обновление n8n

Перед началом работы с n8n мы рекомендуем выполнить обновление до последней версии – инструкция представлена ниже.

Обратите внимание!
Обновление версии n8n вы выполняете самостоятельно. Если в процессе обновления что-то пойдет не так, напишите в техническую поддержку, мы постараемся помочь. Перед обновлением рекомендуем проверить наличие актуального бэкапа в разделе “Backup” либо сделайте снапшот VPS в разделе “Снапшоты”, чтобы иметь возможность откатить изменения.
  1. Подключитесь к вашему серверу по SSH. Текстовая и видеоинструкция о том, как это сделать, доступны в статье “Как подключиться к серверу по SSH”.
  2. Перейдите в директорию n8n командой: cd /opt/beget/n8n.
  3. Откройте файл docker-compose.yml в любом текстовом редакторе, например, nano: nano docker-compose.yml
  4. Найдите строку image: docker.n8n.io/n8nio/n8n:X.X.X (X.X.X – текущая версия ПО) и измените в ней версию n8n на нужную. Посмотреть актуальную версию и историю изменений вы можете на странице релизов n8n на Github. Пример изменений: image: docker.n8n.io/n8nio/n8n:1.93.0.
  5. Сохраните изменения и закройте файл: в nano нажмите сочетание клавиш Ctrl+X, затем нажмите y, чтобы сохранить изменения, и Enter, чтобы подтвердить имя файла.
  6. Скачайте образ новой версии n8n командой docker-compose pull.
  7. Остановите работу текущей версии n8n командой docker-compose down.
  8. Запустите новую версию n8n командой docker-compose up -d.
  9. Подождите 2–5 минут, пока n8n выполнит миграцию на новую версию и запустится.

После обновления проверьте работу n8n на новой версии. 

Если вас интересует в целом работа n8n, подробные инструкции доступны в официальной документации. Мы же рассмотрим несколько сценариев, которые могут упростить ваши рабочие процессы.

Как использовать n8n: примеры

Теперь рассмотрим несколько примеров того, как n8n может помочь в автоматизации простых операций.

WordPress – уведомления о новых заказах в Telegram

Начнем с автоматизации уведомлений о новом заказе в вашем интернет-магазине. В нашем примере мы будем использовать n8n и CMS WordPress с установленным плагином WooCommerce.

Рабочий процесс будет устроен следующим образом:

  1. На сайт поступает заказ.
  2. Триггер рабочего процесса получает информацию о заказе и запускает рабочий процесс. В нашем примере мы рассмотрим WooCommerce. Если вы используете другой плагин или CMS, вы можете настроить триггер через вебхук, если его поддержка присутствует.
  3. Информация доставляется на ноду Telegram и далее сообщение поступает в специальный канал, чат или бота.

Для начала создадим в панели WooCommerce API-токен, который необходим для авторизации триггера. В административной панели WordPress перейдите в раздел WooCommerce>Настройки>Дополнительно. Под панелью вкладок выберите раздел REST API и кликните “Создать ключ API”:

n8n API

Укажите название ключа и дайте права на чтение/запись:

Ключ API n8n

Будет сгенерирована пара ключей. Обратите внимание, что ключи доступны для просмотра один раз, посмотреть их повторно в настройках REST API не получится.

API key n8n

Далее перейдем в n8n. Создайте рабочий процесс и кликните на клавишу Tab, чтобы выбрать ноду для добавления. Нас интересует WooCommerce-триггер на создание заказа:

wooCommerce

В открывшемся окне кликните на кнопку редактирования рядом с меню выбора доступов:

parameters WooCommerce

Здесь укажите Consumer Key (пользовательский ключ) и Consumer Secret (секретный код пользователя). Ниже укажите адрес вашего магазина и активируйте опцию Include Credentials in Query:

WooCommerce account

Если триггеру удалось подключиться к сайту, вы увидите сообщение Connection tested successfully. Сохраните настройки.

Проверим работу триггера. Откройте его настройки и кликните на кнопку Test step:

WooCommerce Test Step

Триггер будет запущен в тестовом режиме. Теперь нужно сделать тестовый заказ на сайте. Если триггер работает, вы увидите данные заказа в окне output:

окно output

Чтобы отправить сообщение в Telegram-бота, добавим ноду Send text message и подключим к триггеру:

n8n подключение триггера

Создадим нового бота для отправки им сообщений. Для этого в Telegram есть официальный бот для создания ботов@BotFather. Запустите его и выполните команду /newbot, укажите название бота и его username (уникальный идентификатор) – в результате вы получите API-ключ:

BotFather

Узнать Chat ID вы можете, перейдя по ссылке https://api.telegram.org/bot<Токен вашего бота>/getUpdates в браузере.

Вернемся в n8n. Дважды кликните на ноду. В ней нас интересуют следующие настройки:

  • Credential to connect with Telegram account – укажите полученный API-ключ
  • Chat ID также был получен ранее
  • Text – текст вашего сообщения. Кликните на кнопку в правом нижнем углу, чтобы открыть редактор текста на весь экран. Мы добавим следующий текст:
Новый заказ!
Клиент: {{ $json.billing.first_name }} {{ $json.billing.last_name }}
Сумма: {{ $json.total }} {{ $json.currency }}
Заказ N {{ $json.id }}

Блоки с необходимыми данными вы можете как прописывать вручную, так и переносить курсором, если выбран формат отображения данных Schema. Сохраните настройки.

Протестируем рабочий процесс. Кликните на кнопку Test workflow внизу страницы и отправьте заказ через сайт. При корректной настройке n8n телеграм-уведомление не заставит себя ждать:

n8n телеграм

Настройка рабочего процесса завершена. Теперь, чтобы активировать его для работы, переключите ползунок в положение Active в верхней панели:

n8n включение в работу

Обработка заявок с сайта/лендинга и добавление в Google Sheets

Рассмотрим пример автоматизации добавления заявок с сайта в Google Sheets.

Для отправки заявок мы будем использовать плагин Contact Form 7 для WordPress с установленным плагином для вебхуков.

Сразу добавим все триггеры и ноды на схему:

n8n триггеры и ноды
  • Триггер вебхука будет запускать рабочий процесс и через POST-запрос получать информацию о заявке
  • Нода Edit Fields будет отбирать необходимые данные для записи в таблицу
  • Нода Google Sheets будет записывать полученные данные в таблицу

Отключим пока что ноду Google Sheets, чтобы протестировать другие ноды:

n8n нода Google Sheets

Сперва настроим триггер вебхука. Вебхук в WordPress настроен следующим образом:

n8n webhook

В поле Webhook URL необходимо скопировать URL из триггера. Обратите внимание, что после тестирования триггера в WordPress необходимо будет заменить тестовый URL на Production URL.

Так как вебхук будет сразу получать информацию из формы, выберите тип запроса POST.

n8n webhook parameters

В поле Authentication укажите тип Header Auth для аутентификации через заголовок запроса.

Кликните на кнопку с карандашом для настройки доступов:

n8n Header Auth

В поле Name укажите значение Authorization, в поле Value – скопируйте значение заголовка из WordPress, вида Bearer <хэш>.

Сохраним настройки и протестируем хук:

n8n тест хука

Данные получены триггером:

n8n данные получены триггером

Теперь в ноде Edit Field выберем данные, которые хотим добавлять в таблицу, в нашем случае это будут:

  • Имя
  • Email
  • Тема
  • Сообщение

Перетащите желаемые блоки данных в поле параметров:

n8n Edit Field

При запуске теста на выход попадут нужные нам данные:

n8n запуск теста

Для подключения Google Sheets к n8n понадобится получить API-ключ по инструкции.

Обратите внимание!
Для подключения Google QAuth n8n должен работать на домене второго уровня (вида betutorial.ru). Изменить основной домен n8n вы можете по инструкции в соответствующем разделе.

Активируйте ноду, которую мы выключили ранее. В случае успешного подключения вы увидите надпись “Account connected”:

n8n google connected

Создадим Google-таблицу. Необходимые значения укажем в столбиках, при необходимости переименуйте лист (в нашем случае он будет называться “Заявки”):

Google таблица

Укажите в ноде Google Sheets необходимую таблицу. Укажите лист (в нашем случае “Заявки”), после чего добавьте колонки и перенесите в них блоки данных, полученные из предыдущей ноды.

нода Google Sheets

Протестируем работу сценария. Если всё настроено корректно, данные при отправке заявки будут записаны в таблицу:

Подключение n8n

После успешного тестирования не забудьте поменять ссылку для вебхука в настройках CMS на Production URL, а также активировать рабочий процесс:

n8n активация работы

Помощь ИИ в модерации чатов

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

В качестве триггера выступит нода Telegram, которая будет запускать сценарий n8n при отправке сообщения в чат. Информацию триггер будет получать от Telegram-бота, который предварительно должен быть создан и добавлен в желаемый чат. Необходимо дать боту доступ к сообщениям в чате. Для этого выполните команду /setprivacy в @BotFather, выберите бота и установите параметр DISABLED.

Добавим триггер в сценарий и активируем триггер на сообщения:

n8n telegram trigger

Далее добавим ноду Edit Fields. При использовании n8n мы будем передавать в AI-агент только сообщение пользователя, поэтому добавьте в соответствующее поле блок text:

n8n ai agent

Далее мы добавим ИИ-агент и подключим к нему ИИ-модель (в нашем случае Grok).

Если вы планируете использовать ИИ для сценариев, где потребуется запоминать контекст, добавьте также модуль памяти Simple Memory. 

Однако для наших задач подобные n8n-сценарии не потребуются.

n8n сценарий

Настроим ИИ-агент. В поле Source for Prompt указываем Define below, в поле Prompt (User Message) – блок сообщения, в поле Options – системное сообщение, которое будет получать ИИ-модель при каждом запросе. В нашем случае содержание будет следующее:

Ты — фильтр токсичных сообщений. Если сообщение токсичное, ответь только: true. Если нет — ответь: false.

n8n настройка ии

В параметрах ноды ИИ-модели кликните на поле Credential to connect with и добавьте API-ключ. Далее выберите необходимую модель:

n8n ai ключ

Затем добавим ноду if с условием: если ответ равен слову true, отправляется уведомление в Telegram, если false – ничего не происходит. Добавим условие string (строка) и в качестве Value 1 добавляем выходное значение ИИ-агента:

n8n добавление ноды

Итак, осталось добавить уведомление в Telegram-бота, если сообщение признано недопустимым. Добавьте ноду Telegram SendMessage и, как и в прошлых кейсах, укажите API-ключ вашего бота и Chat ID.

В поле “text” пропишите сообщение, которое будет отправлять бот:

Обнаружено недопустимое сообщение! Чат: {{ $('Telegram Trigger').item.json.message.chat.title }}
Пользователь: {{ $('Telegram Trigger').item.json.message.from.username }}
Сообщение: {{ $('Edit Fields').item.json.message.text }}

Данные title, username и text берем из триггера.

n8n настройка tg

Сохраним настройки и протестируем работу. Сперва отправим корректное сообщение:

n8n тестирование сценария

Видим, что ИИ-агент отдал значение false и сообщение в бот отправлено не было.

Теперь отправим некорректное сообщение. ИИ-агент отдал значение true:

n8n тестирование ИИ

Сообщение в бота было отправлено:

n8n сообщение от бота телеграм

Рабочий процесс будет функционировать для любого чата, куда добавлен бот.

Смена домена в n8n

Многие сервисы (такие как Google OAuth) требуют для работы домен второго уровня (вида betutorial.ru). Сменить домен для n8n можно следующим образом:

  1. Подключитесь к вашему серверу по SSH. Текстовая и видеоинструкция о том, как это сделать, приведены в статье “Как подключиться к серверу по SSH
  2. Перейдите в директорию n8n, выполнив команду: cd /opt/beget/n8n/
  3. Затем необходимо заменить все вхождения старого домена на новый в файлах проекта. Для этого поочередно выполните команды, представленные ниже. Вместо old_domain.ru и new_domain.ru укажите соответственно старый и новый домен, без указания протокола:
sed -i 's#old_domain.ru#new_domain.ru#g' .env
sed -i 's#old_domain.ru#new_domain.ru#g' docker-compose.yml
sed -i 's#old_domain.ru#new_domain.ru#g' healthcheck.js

Новый домен должен быть направлен на VPS. Для этого необходимо указать внешний IP-адрес VPS (можно посмотреть в карточке сервера) в A-записи нового домена.

  1. Далее для перевыпуска SSL-сертификата нужно переименовать файл: mv /opt/beget/n8n/traefik_data/acme.json /opt/beget/n8n/traefik_data/acme.json_old
  2. После этого перезагрузите проект: docker-compose down && docker-compose up -d

На этом всё, надеемся, наша статья и n8n-шаблоны были для вас полезны.

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью, интеграции n8n, облачную инфраструктуру или любые другие вопросы с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.

10
15124