Как создать собственные узлы
Сценарий типа Nodul часто используется для быстрого встраивания в другой сценарий, включающий предварительно настроенные и повторяющиеся действия.
Часто сценарий типа Nodul используется для быстрого встраивания уже настроенного и повторяющегося действия в другой, основной сценарий. Созданный сценарий типа Nodul доступен для выбора в списке всех узлов и визуально представляет собой настроенный узел.
При выполнении Production-ветки сценария, использующего сценарий типа Nodul, важен статус сценария типа Nodul:
- Если статус сценария типа Nodul — Pause, а триггером основного сценария является узел Trigger on Webhook, при выполнении сценария возникнет ошибка, указывающая на необходимость активации сценария типа Nodul.

- Если статус сценария типа Nodul — Pause, а триггером основного сценария является узел Trigger on RunOnce, ошибки не возникнет, и сценарий будет выполнен.
- Если статус сценария типа Nodul — Active, ошибки не возникнет при любом триггере основного сценария, и сценарий будет выполнен.
Если выполняется Development-ветка сценария, ошибки не возникнет, и сценарий будет выполнен.
Рассмотрим алгоритм создания сценария Nodul на примере.
Создадим сценарий, который записывает строку в Google Sheet. Запись строки текста в Google Sheet будет считаться повторяющимся действием. Получение данных из источника и их преобразование при необходимости будет считаться специфичным действием.
Для этого необходимо:
- Создать Сценарий типа Scenario с предварительным названием «String to Table», результатом которого является часто повторяющееся действие — внесение информации в Google Sheet:

- Добавить узел Trigger on Webhook для запуска сценария;
- Добавить узел Add Single Row для записи строки в Google Sheet согласно вашим настройкам;

- Добавить узел Webhook Response для возврата ответа при выполнении сценария;

- Сохранить и активировать сценарий;
- В сценарии «String to Table» заменить узел Trigger on Webhook на узел NodulInput и заменить узел Webhook Response на узел NodulOutput;

💡 Вы можете добавить XML-код для иконки в поле «Icon (svg)», чтобы сценарий было легче идентифицировать.

- Изменить текущее название сценария «String to Table» на «Al Tools/Actions/GoogleSheetAddRow»;

💡 Часть названия «Al Tools/Actions» необходима для хранения сценария как узла Action в папке Al Tools.
- Изменить тип сценария на Nodul;

💡 Рядом с названием сценария после изменения типа используются иконки для обозначения «Nodul» (признак сценария типа Nodul) и «Private» (отсутствие публичного доступа к сценарию).

- Добавить параметр в узел NodulInput, например, User — текстовая строка. Параметры можно добавлять с помощью кнопки «Add Parameter».

- Настроить параметры узла Add Single Row так, чтобы текст, добавляемый в строку таблицы, был равен значению параметра User в узле NodulInput.

- Добавить результат выполнения сценария «Ok» в поле Result узла NodulOutput;

- Создать сценарий типа Scenario с названием «Get and Write Users», где результатом выполнения является получение данных пользователя, их преобразование и запись имени пользователя в Google Sheet.

- Добавить узел Trigger on Webhook для запуска сценария «Get and Write Users» и передачи в него JSON с данными пользователя:
{
"Surname": "John",
"Name": "Doe",
"Email": "[email protected]"
}- Добавить узел JavaScript для создания полного имени пользователя на основе данных, полученных в Webhook, с помощью кода:
export default async function run({execution_id, input, data}) {
const SurName = data["{{1.body.Surname}}"];
const Name = data["{{1.body.Name}}"];
const FullName = Name +' '+ SurName;
return {
FullName
}
}
- Добавить узел GoogleSheetAddRow (сценарий типа Nodul) для записи полного имени пользователя, полученного в узле JavaScript, в Google Sheet;

- Добавить узел Webhook response для получения ответа от узла GoogleSheetAddRow об успешном выполнении.

- Сохранить и активировать сценарий.
Результатом сценария является запись строки в Google Sheet и ответ об успешной записи строки.

В будущем, если информация о пользователе поступает из новых источников или требует другой обработки, узел GoogleSheetAddRow можно повторно использовать без перенастройки логики записи строк в Google Sheets.
