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

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

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

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

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

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

Обновление n8n
Перед началом работы с n8n мы рекомендуем выполнить обновление до последней версии – инструкция представлена ниже.
- Подключитесь к вашему серверу по SSH. Текстовая и видеоинструкция о том, как это сделать, доступны в статье “Как подключиться к серверу по SSH”.
- Перейдите в директорию n8n командой:
cd /opt/beget/n8n. - Откройте файл
docker-compose.ymlв любом текстовом редакторе, например,nano:nano docker-compose.yml - Найдите строку image:
docker.n8n.io/n8nio/n8n:X.X.X(X.X.X– текущая версия ПО) и измените в ней версию n8n на нужную. Посмотреть актуальную версию и историю изменений вы можете на странице релизов n8n на Github. Пример изменений:image: docker.n8n.io/n8nio/n8n:1.93.0. - Сохраните изменения и закройте файл: в
nanoнажмите сочетание клавишCtrl+X, затем нажмитеy, чтобы сохранить изменения, иEnter, чтобы подтвердить имя файла. - Скачайте образ новой версии n8n командой
docker-compose pull. - Остановите работу текущей версии n8n командой
docker-compose down. - Запустите новую версию n8n командой
docker-compose up -d. - Подождите 2–5 минут, пока n8n выполнит миграцию на новую версию и запустится.
После обновления проверьте работу n8n на новой версии.
Если вас интересует в целом работа n8n, подробные инструкции доступны в официальной документации. Мы же рассмотрим несколько сценариев, которые могут упростить ваши рабочие процессы.
Как использовать n8n: примеры
Теперь рассмотрим несколько примеров того, как n8n может помочь в автоматизации простых операций.
WordPress – уведомления о новых заказах в Telegram
Начнем с автоматизации уведомлений о новом заказе в вашем интернет-магазине. В нашем примере мы будем использовать n8n и CMS WordPress с установленным плагином WooCommerce.
Рабочий процесс будет устроен следующим образом:
- На сайт поступает заказ.
- Триггер рабочего процесса получает информацию о заказе и запускает рабочий процесс. В нашем примере мы рассмотрим WooCommerce. Если вы используете другой плагин или CMS, вы можете настроить триггер через вебхук, если его поддержка присутствует.
- Информация доставляется на ноду Telegram и далее сообщение поступает в специальный канал, чат или бота.
Для начала создадим в панели WooCommerce API-токен, который необходим для авторизации триггера. В административной панели WordPress перейдите в раздел WooCommerce>Настройки>Дополнительно. Под панелью вкладок выберите раздел REST API и кликните “Создать ключ API”:

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

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

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

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

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

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

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

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

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

Узнать 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 телеграм-уведомление не заставит себя ждать:

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

Обработка заявок с сайта/лендинга и добавление в Google Sheets
Рассмотрим пример автоматизации добавления заявок с сайта в Google Sheets.
Для отправки заявок мы будем использовать плагин Contact Form 7 для WordPress с установленным плагином для вебхуков.
Сразу добавим все триггеры и ноды на схему:

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

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

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

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

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

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

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

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

Для подключения Google Sheets к n8n понадобится получить API-ключ по инструкции.
betutorial.ru). Изменить основной домен n8n вы можете по инструкции в соответствующем разделе.Активируйте ноду, которую мы выключили ранее. В случае успешного подключения вы увидите надпись “Account connected”:

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

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

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

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

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

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

Далее мы добавим ИИ-агент и подключим к нему ИИ-модель (в нашем случае Grok).
Если вы планируете использовать ИИ для сценариев, где потребуется запоминать контекст, добавьте также модуль памяти Simple Memory.
Однако для наших задач подобные n8n-сценарии не потребуются.

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

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

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

Итак, осталось добавить уведомление в 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 берем из триггера.

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

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

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

Рабочий процесс будет функционировать для любого чата, куда добавлен бот.
Смена домена в n8n
Многие сервисы (такие как Google OAuth) требуют для работы домен второго уровня (вида betutorial.ru). Сменить домен для n8n можно следующим образом:
- Подключитесь к вашему серверу по SSH. Текстовая и видеоинструкция о том, как это сделать, приведены в статье “Как подключиться к серверу по SSH”
- Перейдите в директорию n8n, выполнив команду:
cd /opt/beget/n8n/ - Затем необходимо заменить все вхождения старого домена на новый в файлах проекта. Для этого поочередно выполните команды, представленные ниже. Вместо
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-записи нового домена.
- Далее для перевыпуска SSL-сертификата нужно переименовать файл:
mv /opt/beget/n8n/traefik_data/acme.json /opt/beget/n8n/traefik_data/acme.json_old - После этого перезагрузите проект:
docker-compose down && docker-compose up -d
На этом всё, надеемся, наша статья и n8n-шаблоны были для вас полезны.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью, интеграции n8n, облачную инфраструктуру или любые другие вопросы с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.