08. Сценарии типа Nodul
Часто сценарий типа Nodul используется для быстрого внедрения в другой, основной сценарий уже настроенного и повторяющегося действия. Сформированный сценарий типа Nodul доступен к выбору в перечне всех узлов и визуально представляет из себя кастомизированный узел.
При выполнении Production-ветки основного сценария, который использует сценарий типа Nodul важен статус сценария типа Nodul:
- Если статус сценария типа Nodul Пауза и триггером основного сценария служит узел Trigger on Webhook - при выполнении сценария возникнет ошибка, указывающая на необходимость активации сценария типа Nodul.
![](/img/notion/5e855dc2-2eb5-414b-9219-a2608e3436ad/Untitled.png)
- Если статус сценария типа Nodul Пауза и триггером основного сценария служит узел Trigger on RunOnce - при выполнении сценария ошибка не возникнет и сценарий будет выполнен.
- Если статус сценария типа Nodul Активен, то при любом триггере основного сценария ошибка не возникнет и сценарий будет выполнен.
Если выполняется Development-ветки версия сценария ошибок также не будет.
Создадим сценарий, записывающий строку в Google таблицу. Повторяющимся действием будем считать запись строки текста в Google таблицу. Специфичным действием будем считать получение строки данных из источника и ее преобразование, если это необходимо.
Таким образом, необходимо:
- Создать сценарий типа Сценарий с предварительным названием ”Строка в таблицу”, результатом выполнения которого является часто повторяющееся действие, т.е. занесение информации в Google таблицу:
![](/img/notion/dc8a31fd-1201-40aa-aed8-d3671d252ddc/Untitled.png)
- Добавить узел Trigger on Webhook для запуска сценария;
- Добавить узел Add Single Row для записи строки в Google таблицу в соответствии с настройками;
![](/img/notion/352dd76e-f194-4f85-9ff1-fa1db6c8afc3/Untitled.png)
- Добавить узел Webhook response для возврата ответа на выполнение сценария;
![](/img/notion/4105daa9-2cc5-4af2-857c-10b0412833eb/Untitled.png)
- Сохранить и активировать сценарий;
- В сценарии ”Строка в таблицу” заменить узлы Trigger on Webhook и Webhook response на узлы NodulInput и NodulOutput соответственно;
В поле Иконка (svg) можно добавить XML-код иконки, для того чтобы сценарий было легче распознать.
![](/img/notion/dd670515-7066-4409-aed8-c8456f2dd2b5/Untitled.png)
- Заменить на название “Al Tools/Action/GoogleSheetAddRow” текущее название сценария ”Строка в таблицу”.
Часть названия “Al Tools/Action” необходима для хранения сценария в качестве узла типа Действие в нужной папке Al Tools.
![](/img/notion/13be980a-99a0-428a-a6ea-0164175e8675/Untitled.png)
- Заменить тип сценария на Nodul;
![](/img/notion/961bc51e-4e43-4864-bc70-1db162f0ebbf/Untitled.png)
Рядом с названием сценария после смены типа обозначаются иконка “Nodul” (признак сценария типа Nodul) и иконка “Частный” (признак отсутствия общего доступа к сценарию).
![](/img/notion/62628385-0916-4881-a680-023ea03f65e7/Untitled.png)
5. Добавить параметр узла NodulInput, например User - текстовая строка. Добавление параметров доступно по кнопке Добавить параметр.
![](/img/notion/3d265f81-18e9-492a-830f-0d9c7c75a008/Untitled.png)
6. Скорректировать настройки узла Add Single Row так, чтобы текст добавляемой в таблицу строки был равен значению параметра User узла NodulInput.
![](/img/notion/a1685a12-eb26-4708-9287-9d094fb5e703/Untitled.png)
7. Добавить результат выполнения сценария “Строка добавлена” в поле Result узла NodulOutput;
![](/img/notion/e7dcb751-e10a-47a7-aa05-13e2e6e1fe7b/Untitled.png)
- Создать сценарий типа Сценарий с названием ”Получение и запись пользователей”, результатом выполнения которого является получение данных о пользователях, их преобразование и запись имени пользователя в Google таблицу.
![](/img/notion/4198d4d4-f652-449a-866d-1e494b9e6e32/Untitled.png)
- Добавить узел Trigger on Webhook для запуска сценария ”Получение и запись пользователей” и передачи в него JSON с данными пользователя:
{
"Surname": "Иванов",
"Name": "Иван",
"Email": "nodulemailexp@rambler.ru"
}
- Добавить узел 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
}
}
![](/img/notion/10c383a7-b29f-4106-b6bb-00185d13fd45/Untitled.png)
- Добавить узел GoogleSheetAddRow (сценарий типа Nodul) для записи полного имени пользователя, полученного в узле JavaScript в Google таблицу;
![](/img/notion/c6029768-4b3c-4685-985f-da73f41b44cb/Untitled.png)
- Добавить узел Webhook response для получение ответа узла GoogleSheetAddRow об успешном выполнении.
![](/img/notion/cdd2d7ae-6efe-4669-84e5-9ee84c05c518/Untitled.png)
- Сохранить и активировать сценарий.
Результатом выполнения сценария является запись строки в Google таблицу и ответ об успешной записи строки.
![](/img/notion/e2d6e363-fa58-4e3b-a55c-6532ff659ed4/Untitled.png)
![](/img/notion/b32ae181-1bcd-4b0d-b0f4-6e0c9cc7c860/Untitled.png)
В будущем, если информац ия о пользователе будет приходить из новых источников, или требовать другой обработки узел GoogleSheetAddRow можно будет использовать вновь, не настраивая заново логику записи строки в Google таблицу.
Подробнее об узлах NodulInput и NodulOutput см: