# Условия запуска и действия

> 42 условий запуска и 144 действий конструктора автоматизаций с полями и данными на выходе

Поле «Как заполняется» говорит, что увидит юрист в форме: выбор из списка, текст, дату или переключатель. «Можно взять из данных» означает, что вместо значения можно подставить поле триггера или предыдущего шага. Пометка «только чтение» у действия значит, что в тест-прогоне оно выполняется по-настоящему; действия, которые меняют данные или отправляют наружу, в тесте симулируются.

## Условия запуска

### Интерфейс

#### Форма заполнена

| Данные | Тип |
| --- | --- |
| ID интерфейса | текст |
| ID отправки | текст |
| Создатель | текст |
| Команда | текст |
| ID созданной записи реестра | текст |
| ID шаблона документа | текст |
| Канал отправки | текст |
| Время события | дата |
| Поля формы | объект |

### Реестр

#### Запись создана

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID типа реестра | текст |
| Команда | текст |
| Время события | дата |
| Поля записи | объект |
| Создатель | текст |

#### Запись обновлена

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID типа реестра | текст |
| Команда | текст |
| Время события | дата |
| Поля записи | объект |
| Изменивший | текст |

#### Запись удалена

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID типа реестра | текст |
| Команда | текст |
| Время события | дата |
| Поля записи | объект |

#### Дата наступила

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID типа реестра | текст |
| Команда | текст |
| Время события | дата |
| Поля записи | объект |
| Дней до даты | число |

### Документ

#### Документ создан

Переменные документа доступны в корне: {{ trigger.<имя_переменной> }}

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Создатель | текст |
| Команда | текст |
| Время события | дата |
| Название | текст |

#### Документ изменён

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Изменивший | текст |
| Команда | текст |
| Время события | дата |
| Изменения | объект |
| Изменённые блоки | список, список |

#### Документ удалён

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Удаливший | текст |
| Команда | текст |
| Время события | дата |

#### Документ импортирован

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Создатель | текст |
| Команда | текст |
| Время события | дата |
| Название | текст |
| Источник импорта | текст |

#### Комментарий в документе

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| ID комментария | текст |
| Текст комментария | текст |
| Автор | текст |
| Имя автора | текст |
| Дата комментария | дата |

#### Запись реестра привязана

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Привязавший | текст |
| Команда | текст |
| Время события | дата |
| ID связи | текст |
| ID записи реестра | текст |
| ID реестра | текст |

#### Связь с записью удалена

| Данные | Тип |
| --- | --- |
| Документ | текст |
| Отвязавший | текст |
| Команда | текст |
| Время события | дата |
| ID связи | текст |
| ID записи реестра | текст |
| ID реестра | текст |

### Задачи

#### Задача создана

Поля задачи доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| Название задачи | текст |
| Описание | текст |
| Статус | текст |
| Приоритет | текст |
| Срок задачи | дата |
| Исполнители | список, список |
| Метки | список, список |

#### Задача завершена

Поля задачи доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| Название задачи | текст |
| Описание | текст |
| Статус | текст |
| Приоритет | текст |
| Срок задачи | дата |
| Исполнители | список, список |
| Метки | список, список |

#### Агент сообщил итог

Поля итога доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| Название задачи | текст |
| ID агента | текст |
| Имя агента | текст |
| Кто поручил | текст |
| Итог: done — готово, question — вопрос, blocked — остановлен, delegated — подзадачи, handed_off — передал человеку, failed — не справился | текст |
| Отчёт агента | текст |

#### Задача просрочена

Поля задачи доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| Название задачи | текст |
| Описание | текст |
| Статус | текст |
| Приоритет | текст |
| Срок задачи | дата |
| Исполнители | список, список |
| Метки | список, список |

#### Задача отменена

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| Название задачи | текст |
| Отменивший | текст |
| Имя отменившего | текст |
| Дата отмены | дата |

#### Комментарий в задаче

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Команда | текст |
| Время события | дата |
| ID комментария | текст |
| Текст комментария | текст |
| Автор | текст |
| Имя автора | текст |
| Дата комментария | дата |

### Согласования

#### Этап согласования начат

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Номер этапа | число |
| Всего этапов | число |

#### Согласование одобрено

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Согласующий | текст |
| Номер этапа | число |
| Всего этапов | число |
| Комментарий | текст |
| Дата завершения | дата |

#### Согласование отклонено

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Согласующий | текст |
| Номер этапа | число |
| Всего этапов | число |
| Комментарий | текст |
| Дата завершения | дата |

#### Согласование завершено

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Согласующий | текст |
| Номер этапа | число |
| Всего этапов | число |
| Комментарий | текст |
| Дата завершения | дата |

#### Согласование отозвано

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Отозвавший | текст |
| Имя отозвавшего | текст |
| Дата отзыва | дата |
| Причина | текст |

#### Комментарий в согласовании

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| ID комментария | текст |
| Текст комментария | текст |
| Автор | текст |
| Имя автора | текст |
| Дата комментария | дата |

### Подписания

#### Подписание запрошено

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Подписанты | список, список |

#### Подписание выполнено

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Подписант | текст |
| Подписан всеми | да/нет |
| Дата завершения | дата |

#### Подписание отклонено

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Подписант | текст |
| Подписан всеми | да/нет |
| Дата завершения | дата |

#### Подписание истекло

Поля из data доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Подписант | текст |
| Подписан всеми | да/нет |
| Дата завершения | дата |

#### Подписание отозвано

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| Название документа | текст |
| Создатель | текст |
| Отозвавший | текст |
| Имя отозвавшего | текст |
| Дата отзыва | дата |
| Причина | текст |

#### Комментарий в подписании

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Документ | текст |
| Команда | текст |
| Время события | дата |
| ID комментария | текст |
| Текст комментария | текст |
| Автор | текст |
| Имя автора | текст |
| Дата комментария | дата |

### Файлы

#### Файл создан

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип файла | текст |
| Команда | текст |
| Время события | дата |
| Имя файла | текст |
| Папка | текст |
| Создатель | текст |

#### Файл изменён

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип файла | текст |
| Команда | текст |
| Время события | дата |
| Изменения | объект |

#### Файл переименован

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип файла | текст |
| Команда | текст |
| Время события | дата |
| Старое имя | текст |
| Новое имя | текст |

#### Файл перемещён

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип файла | текст |
| Команда | текст |
| Время события | дата |
| Старая папка | текст |
| Новая папка | текст |

#### Файл удалён

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип файла | текст |
| Команда | текст |
| Время события | дата |
| Папка | текст |

### Пользователи

#### Пользователь создан

| Данные | Тип |
| --- | --- |
| ID пользователя | текст |
| Email | текст |
| Команда | текст |
| Время события | дата |

#### Пользователь изменён

| Данные | Тип |
| --- | --- |
| ID пользователя | текст |
| Email | текст |
| Команда | текст |
| Изменения | объект |
| Время события | дата |

#### Пользователь удалён

| Данные | Тип |
| --- | --- |
| ID пользователя | текст |
| Email | текст |
| Команда | текст |
| Время события | дата |

### Входящая почта

#### Письмо получено

| Данные | Тип |
| --- | --- |
| ID письма | текст |
| ID записи лога | текст |
| Пользователь | текст |
| Команда | текст |
| Отправитель | текст |
| Получатели | список, список |
| Тема | текст |
| Текст письма (если есть тело) | текст |
| HTML письма (если есть тело) | текст |
| Есть текстовая часть | да/нет |
| Есть HTML-часть | да/нет |
| Вложения | список, список |
| Получено | дата |
| Время события | дата |

### По расписанию

#### По расписанию

| Данные | Тип |
| --- | --- |
| Время срабатывания | дата |
| Количество записей | число |
| Сводка по записям | текст |
| Записи | список, список |

### Внешний запрос (webhook)

#### Внешний запрос (webhook)

Поля body (POST) или query (GET) доступны и в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| HTTP-метод | текст |
| Заголовки (без секретных) | объект |
| Query-параметры | объект |
| Тело запроса (POST) | объект |

### Запуск вручную

#### Запуск вручную

Поля triggerData ручного запуска доступны в корне: {{ trigger.<ключ> }}

| Данные | Тип |
| --- | --- |
| Кто запустил | текст |

## Действия

### Документ

Создать, изменить или выгрузить документ

Тип шага `documents`, версия настроек 1.

#### Создать документ из шаблона

`documents.create` · меняет данные

Копирует шаблон и заполняет его переменные

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Шаблон документа | выбор из списка «Шаблон документа» | да | можно взять из данных |
| Название документа | текст | нет | можно взять из данных |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |
| Переменные шаблона | поля по ключам источника | нет |  |
| Заполнить из данных | пары «ключ — значение» | нет | Переменные шаблона с такими же именами, как поля в этих данных, заполнятся автоматически; можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | нет | Документ будет привязан к этой записи; можно взять из данных; в блоке «Дополнительно» |
| Заменяемый документ | выбор из списка «Документ» | нет | можно взять из данных; в блоке «Дополнительно» |
| Связанные шаблоны | выбор из списка «Шаблон документа», несколько | нет | Из каждого шаблона создаётся дочерний документ с теми же переменными; в блоке «Дополнительно» |
| Сдвиг значений переменных | список записей | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Ссылка на документ | текст |
| Переменные документа | объект |

#### Создать документ по записи реестра

`documents.from_record` · меняет данные

Заполняет шаблон данными записи и возвращает связанный документ без повторного создания

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Шаблон документа | выбор из списка «Шаблон документа» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Ссылка на документ | текст |
| Переменные документа | объект |

#### Получить документ

`documents.get` · только чтение

Возвращает документ и значения его переменных

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Статус | текст |
| Папка | текст |
| Ссылка на документ | текст |
| Создан | текст |
| Обновлён | текст |
| Переменные документа | объект |

#### Обновить документ

`documents.update` · меняет данные

Меняет название, статус или папку документа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Название | текст | нет | можно взять из данных |
| Статус | текст | нет | можно взять из данных |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Статус | текст |
| Папка | текст |
| Обновлён | текст |

#### Выгрузить файл

`documents.export` · меняет данные

Выгружает документ в PDF или DOCX и сохраняет файл для следующих шагов

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Формат | выбор: PDF, DOCX | нет | по умолчанию: PDF |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Файл | текст |
| Имя файла | текст |
| Размер (байт) | число |

#### Найти документы

`documents.find` · только чтение

Список документов с фильтром по папке

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные документы | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Привязать к записи реестра

`documents.link_record` · меняет данные

Создаёт связь документа с записью реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID связи | текст |
| ID документа | текст |
| ID реестра | текст |
| ID записи реестра | текст |
| Создана | текст |

#### Сохранить версию

`documents.create_version` · меняет данные

Сохраняет текущее состояние документа как версию

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Комментарий | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID версии | текст |
| ID документа | текст |
| Автор версии | текст |
| Комментарий | текст |
| Создана | текст |

#### Удалить документ

`documents.delete` · меняет данные

Удаляет документ

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Документ удалён | да/нет |

#### Переместить документ

`documents.move` · меняет данные · расширенное действие

Перемещает документ в другую папку

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Папка | текст |

#### Копировать документ

`documents.copy` · меняет данные · расширенное действие

Создаёт копию документа без заполнения переменных

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Название | текст | нет | можно взять из данных |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | нет | можно взять из данных |
| Заменяемый документ | выбор из списка «Документ» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Ссылка на документ | текст |

#### Документы по записи реестра

`documents.find_by_record` · только чтение · расширенное действие

Список документов, привязанных к записи реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Зависимые документы | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Документ по записи реестра

`documents.get_by_record` · только чтение · расширенное действие

Возвращает документ, привязанный к записи реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найден | да/нет |
| ID документа | текст |
| Название документа | текст |

#### Получить связи документа

`documents.get_links` · только чтение · расширенное действие

Список связей документа с записями реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Связи документа | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Отвязать от записи реестра

`documents.unlink_record` · меняет данные · расширенное действие

Удаляет связь документа с записью реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Связь | выбор из списка «Связь документа с записью» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| ID связи | текст |
| Связь удалена | да/нет |

#### Связать дочерний документ

`documents.link_documents` · меняет данные · расширенное действие

Связывает дочерний документ с родительским

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Родительский документ | выбор из списка «Документ» | да | можно взять из данных |
| Дочерний документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Родительский документ | текст |
| Дочерний документ | текст |
| Связь создана | да/нет |

#### Отвязать дочерний документ

`documents.unlink_documents` · меняет данные · расширенное действие

Удаляет связь дочернего документа с родительским

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Родительский документ | выбор из списка «Документ» | да | можно взять из данных |
| Дочерний документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Родительский документ | текст |
| Дочерний документ | текст |
| Связь удалена | да/нет |

#### Импорт из файла

`documents.import_file` · меняет данные · расширенное действие

Импортирует документ из файла DOCX или PDF

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | вложения | да |  |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |
| Имя файла | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задания | текст |
| ID документа | текст |
| Статус | текст |
| Прогресс % | число |
| Ошибка | текст |

#### Статус импорта

`documents.import_status` · только чтение · расширенное действие

Возвращает статус задания импорта

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задание импорта | выбор из списка «Задание импорта» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задания | текст |
| ID документа | текст |
| Статус | текст |
| Прогресс % | число |
| Ошибка | текст |

#### Импорт из HTML

`documents.import_html` · меняет данные · расширенное действие

Создаёт документ из HTML-разметки

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| HTML-разметка | текст | да | можно взять из данных |
| Папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |

#### Снимок документа

`documents.get_snapshot` · только чтение · расширенное действие

Каноничный снимок документа и его SHA-256 хэш

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Снимок (каноничный JSON) | текст |
| SHA-256 хэш снимка | текст |

#### Список версий

`documents.find_versions` · только чтение · расширенное действие

Возвращает версии документа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Версии документа | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Восстановить версию

`documents.restore_version` · меняет данные · расширенное действие

Восстанавливает документ из сохранённой версии

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Версия | выбор из списка «Версия документа» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| Название документа | текст |
| Статус | текст |
| Обновлён | текст |

#### Создать папку

`documents.create_folder` · меняет данные · расширенное действие

Создаёт папку документов

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Имя | текст | да | можно взять из данных |
| Родительская папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Название папки | текст |
| Родительская папка | текст |
| Кол-во документов | число |
| Кол-во вложенных папок | число |
| Создана | текст |
| Обновлена | текст |

#### Список папок

`documents.find_folders` · только чтение · расширенное действие

Возвращает все папки документов

**Поля**

Полей нет.

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Папки | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Получить папку

`documents.get_folder` · только чтение · расширенное действие

Возвращает папку по ID

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка документов» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Название папки | текст |
| Родительская папка | текст |
| Кол-во документов | число |
| Кол-во вложенных папок | число |
| Создана | текст |
| Обновлена | текст |

#### Обновить папку

`documents.update_folder` · меняет данные · расширенное действие

Обновляет название или родителя папки

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка документов» | да | можно взять из данных |
| Имя | текст | нет | можно взять из данных |
| Родительская папка | выбор из списка «Папка документов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Название папки | текст |
| Родительская папка | текст |
| Кол-во документов | число |
| Кол-во вложенных папок | число |
| Создана | текст |
| Обновлена | текст |

#### Удалить папку

`documents.delete_folder` · меняет данные · расширенное действие

Удаляет папку по ID

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка документов» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Папка удалена | да/нет |

#### Добавить блок

`documents.create_block` · меняет данные · расширенное действие

Создаёт блок в документе

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Тип блока | выбор из списка «Тип блока» | да | можно взять из данных |
| Метка | текст | да | можно взять из данных |
| Порядок | число | да |  |
| Глубина | число | нет | по умолчанию: 0 |
| Шаблон | текст | нет | можно взять из данных |
| Переменные блока | пары «ключ — значение» | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID блока | текст |
| ID документа | текст |
| Тип блока | текст |
| Метка | текст |
| Порядок | число |
| Глубина | число |
| Шаблон | текст |
| Переменные блока | объект |

#### Обновить блок

`documents.update_block` · меняет данные · расширенное действие

Обновляет блок документа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Блок | выбор из списка «Блок документа» | да | можно взять из данных |
| Метка | текст | нет | можно взять из данных |
| Порядок | число | нет |  |
| Глубина | число | нет |  |
| Шаблон | текст | нет | можно взять из данных |
| Переменные блока | пары «ключ — значение» | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID блока | текст |
| ID документа | текст |
| Тип блока | текст |
| Метка | текст |
| Порядок | число |
| Глубина | число |
| Шаблон | текст |
| Переменные блока | объект |

#### Удалить блок

`documents.delete_block` · меняет данные · расширенное действие

Удаляет блок документа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Блок | выбор из списка «Блок документа» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID документа | текст |
| ID блока | текст |
| Блок удалён | да/нет |

### Реестр

Найти, создать или изменить запись

Тип шага `registries`, версия настроек 1.

#### Создать запись

`registries.create` · меняет данные

Создаёт запись в реестре

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Поля записи | поля по ключам источника | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID реестра | текст |
| Закреплена | да/нет |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Поля записи | объект |

#### Получить запись

`registries.get` · только чтение

Возвращает запись реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID реестра | текст |
| Закреплена | да/нет |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Поля записи | объект |

#### Обновить запись

`registries.update` · меняет данные

Меняет поля записи реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |
| Поля записи | поля по ключам источника | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID реестра | текст |
| Закреплена | да/нет |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Поля записи | объект |

#### Найти записи

`registries.find` · только чтение

Ищет записи реестра постранично

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Что найти | текст | нет | можно взять из данных |
| Не более | число | нет | по умолчанию: 50 |
| Сортировать по полю | текст | нет | в блоке «Дополнительно» |
| Направление сортировки | выбор: По возрастанию, По убыванию | нет | по умолчанию: По возрастанию; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные записи | список, список |
| Всего записей | число |
| Найдено ли что-то | да/нет |
| Курсор следующей страницы; null — записи кончились | текст |

#### Найти или создать запись

`registries.find_or_create` · меняет данные

Ищет запись по тексту, при отсутствии создаёт

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Что найти | текст | да | можно взять из данных |
| Поля записи | поля по ключам источника | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| ID реестра | текст |
| Закреплена | да/нет |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Поля записи | объект |
| Запись была создана | да/нет |
| Сколько записей совпало | число |

#### Удалить запись

`registries.delete` · меняет данные

Удаляет запись реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID записи | текст |
| Запись удалена | да/нет |

#### Запустить источник импорта

`registries.sync_source` · меняет данные

Запускает синхронизацию источника записей реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Источник | выбор из списка «Источник записей» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Успешно | да/нет |
| Результат синхронизации | объект |

#### Экспорт в XLSX

`registries.export_xlsx` · меняет данные

Выгружает записи реестра в файл XLSX и сохраняет его для следующих шагов

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Файл | текст |
| Имя файла | текст |
| Размер файла (байт) | число |

#### Получить значение поля

`registries.get_field` · только чтение · расширенное действие

Возвращает значение одного поля записи по пути

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Запись реестра | выбор из списка «Запись реестра» | да | можно взять из данных |
| Путь к полю | текст | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Значение поля | любое |
| Метаданные поля | объект |

#### Пакетная синхронизация

`registries.sync_records` · меняет данные · расширенное действие

Массово добавляет и обновляет записи по ключу строки источника

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Записи для синхронизации | список (текст) | да | можно взять из данных |
| Поле ключа строки | текст | нет | в блоке «Дополнительно» |
| Поле хеша строки | текст | нет | в блоке «Дополнительно» |
| Добавлять новые | да/нет | нет | по умолчанию: true |
| Обновлять существующие | да/нет | нет | по умолчанию: true |
| Удалять отсутствующие | да/нет | нет | по умолчанию: false |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Создано | число |
| Обновлено | число |
| Удалено | число |
| Без изменений | число |

#### Создать реестр

`registries.create_type` · меняет данные · расширенное действие

Создаёт новый реестр

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название реестра | текст | да | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Иконка | текст | нет | в блоке «Дополнительно» |
| Колонки реестра | список записей | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID реестра | текст |
| Команда | текст |
| Название | текст |
| Описание | текст |
| Иконка | текст |
| Кол-во записей | число |
| Папка | текст |
| Создан | текст |
| Обновлён | текст |
| Кем создан | текст |

#### Обновить реестр

`registries.update_type` · меняет данные · расширенное действие

Обновляет настройки реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |
| Название реестра | текст | нет | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Иконка | текст | нет | в блоке «Дополнительно» |
| Колонки реестра | список записей | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID реестра | текст |
| Команда | текст |
| Название | текст |
| Описание | текст |
| Иконка | текст |
| Кол-во записей | число |
| Папка | текст |
| Создан | текст |
| Обновлён | текст |
| Кем создан | текст |

#### Удалить реестр

`registries.delete_type` · меняет данные · расширенное действие

Удаляет реестр со всеми записями

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID реестра | текст |
| Реестр удалён | да/нет |

#### Получить реестр

`registries.get_type` · только чтение · расширенное действие

Возвращает настройки реестра

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Реестр | выбор из списка «Реестр» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID реестра | текст |
| Команда | текст |
| Название | текст |
| Описание | текст |
| Иконка | текст |
| Кол-во записей | число |
| Папка | текст |
| Создан | текст |
| Обновлён | текст |
| Кем создан | текст |

#### Список реестров

`registries.find_types` · только чтение · расширенное действие

Возвращает реестры команды, при необходимости по папке

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка реестров» | нет | можно взять из данных |
| С количеством записей | да/нет | нет | Учитывается только без фильтра по папке; по умолчанию: false; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Реестры | список, список |
| Кол-во реестров | число |
| Найдено ли что-то | да/нет |

### Форма

Собрать данные через форму

Тип шага `interfaces`, версия настроек 1.

#### Отправить ссылку на форму

`interfaces.send_link` · отправляет наружу

Отправляет получателю ссылку на форму с предзаполненными полями

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Как отправить | выбор: Telegram, Письмо | нет | по умолчанию: Telegram |
| Получатель | выбор из списка «Пользователь» | нет | можно взять из данных |
| Адреса | получатели | нет | можно взять из данных; показывается, когда «channel» = email |
| Тема письма | текст | нет | можно взять из данных; показывается, когда «channel» = email |
| Предзаполнение полей | поля по ключам источника | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Ссылка на форму | текст |
| Канал отправки | выбор |
| Кому отправлено | список, список |
| Предзаполненные поля | объект |

#### Ссылка на форму без отправки

`interfaces.prefill_link` · только чтение · расширенное действие

Формирует ссылку на форму с предзаполненными полями

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Предзаполнение полей | поля по ключам источника | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Ссылка на форму | текст |
| Предзаполненные поля | объект |

#### Создать форму

`interfaces.create` · меняет данные · расширенное действие

Создаёт форму

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Поля | список записей | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Название | текст |
| Описание | текст |
| Опубликована | да/нет |
| Публичная ссылка | текст |
| Создана | текст |
| Обновлена | текст |
| Команда | текст |
| Создана (true) или найдена (false) | да/нет |

#### Найти или создать форму

`interfaces.find_or_create` · меняет данные · расширенное действие

Ищет форму по названию, при отсутствии создаёт

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Поля | список записей | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Название | текст |
| Описание | текст |
| Опубликована | да/нет |
| Публичная ссылка | текст |
| Создана | текст |
| Обновлена | текст |
| Команда | текст |
| Создана (true) или найдена (false) | да/нет |

#### Найти формы

`interfaces.find` · только чтение · расширенное действие

Ищет формы по тексту или возвращает все

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Поиск | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные формы | список, список |
| Всего найдено | число |
| Есть результаты | да/нет |

#### Получить форму

`interfaces.get` · только чтение · расширенное действие

Возвращает форму и её поля

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Название | текст |
| Описание | текст |
| Опубликована | да/нет |
| Публичная ссылка | текст |
| Создана | текст |
| Обновлена | текст |
| Команда | текст |
| Поля формы | список, список |
| Найдена | да/нет |

#### Обновить форму

`interfaces.update` · меняет данные · расширенное действие

Меняет название, описание или поля формы

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Название | текст | нет | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Поля | список записей | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Название | текст |
| Описание | текст |
| Опубликована | да/нет |
| Публичная ссылка | текст |
| Создана | текст |
| Обновлена | текст |
| Команда | текст |

#### Удалить форму

`interfaces.delete` · меняет данные · расширенное действие

Удаляет форму

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Удалена | да/нет |

#### Опубликовать в канал

`interfaces.publish` · меняет данные · расширенное действие

Публикует форму в указанный канал

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Канал | выбор: Веб-страница, Встроенный, Telegram, API | нет | по умолчанию: Веб-страница |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Успех | да/нет |
| Публичный токен канала | текст |
| Публичная ссылка | текст |

#### Снять с публикации

`interfaces.unpublish` · меняет данные · расширенное действие

Снимает форму с публикации в указанном канале

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Канал | выбор: Веб-страница, Встроенный, Telegram, API | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID формы | текст |
| Канал | текст |
| Снята с публикации | да/нет |

#### Найти отправки

`interfaces.find_submissions` · только чтение · расширенное действие

Возвращает отправки формы

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные отправки | список, список |
| Всего найдено | число |
| Есть результаты | да/нет |

#### Получить отправку

`interfaces.get_submission` · только чтение · расширенное действие

Возвращает отправку формы

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма | выбор из списка «Форма» | да | можно взять из данных |
| Отправка | выбор из списка «Отправка формы» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID отправки | текст |
| ID формы | текст |
| Поля формы | объект |
| Время отправки | текст |
| Источник | текст |
| Найдена | да/нет |

### Согласование

Отправить на согласование

Тип шага `approval`, версия настроек 1.

#### Запросить согласование

`approval.create` · меняет данные

Создаёт согласование и ждёт решения участников

Выходы: Согласовано, Отклонено, Срок истёк.

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название согласования | текст | да | можно взять из данных |
| Участники | выбор из списка «Пользователь», несколько | да |  |
| Порядок согласования | выбор: Все одновременно, По очереди | нет | по умолчанию: Все одновременно |
| Документ | выбор из списка «Документ» | нет | можно взять из данных |
| Пояснение для участников | текст | нет | можно взять из данных |
| Срок согласования, дней | число | нет | Срок видят участники. Если решения нет к этому дню, сценарий пойдёт по выходу «Срок истёк»; по умолчанию: 30 |
| Напоминания участникам | выбор: За рабочий день до срока, Каждый рабочий день, Не напоминать | нет | по умолчанию: За рабочий день до срока; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Название | текст |
| Статус | выбор |
| Этапы (JSON) | текст |
| ID инициатора | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| ID документа | текст |
| Исход ожидания | выбор |
| Решение | выбор |
| Комментарий к решению | текст |
| ID принявшего решение | текст |
| Имя принявшего решение | текст |
| Когда принято решение | текст |

#### Отозвать согласование

`approval.revoke` · меняет данные

Отзывает согласование

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |
| Причина отзыва | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Название | текст |
| Статус | выбор |
| Этапы (JSON) | текст |
| ID инициатора | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Данные (JSON) | текст |

#### Добавить комментарий

`approval.add_comment` · меняет данные

Добавляет комментарий к согласованию

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |
| Текст комментария | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID комментария | текст |
| ID согласования | текст |
| ID автора | текст |
| Имя автора | текст |
| Текст | текст |
| Создано | текст |

#### Найти согласования

`approval.find` · только чтение · расширенное действие

Возвращает список согласований по фильтрам

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Статус | выбор: На согласовании, Согласовано, Отклонено, Отозвано | нет |  |
| Создатель | выбор из списка «Пользователь» | нет | можно взять из данных |
| Участник | выбор из списка «Пользователь» | нет | можно взять из данных |
| Не более | число | нет | по умолчанию: 50 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Всего | число |
| Согласования | список, список |

#### Получить согласование

`approval.get` · только чтение · расширенное действие

Возвращает согласование по ID

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено | да/нет |
| ID согласования | текст |
| Название | текст |
| Статус | выбор |
| Этапы (JSON) | текст |
| ID инициатора | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Данные (JSON) | текст |

#### Изменить решение участника

`approval.update_participant` · меняет данные · расширенное действие

Устанавливает решение участника на этапе согласования

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |
| Этап | выбор из списка «Этап согласования» | да | можно взять из данных |
| Участник | выбор из списка «Участник согласования» | да | можно взять из данных |
| Решение | выбор: Согласовано, Отклонено, Ознакомлен | да |  |
| Комментарий | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Название | текст |
| Статус | выбор |
| Этапы (JSON) | текст |
| ID инициатора | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Данные (JSON) | текст |

#### Перезапустить согласование

`approval.restart` · меняет данные · расширенное действие

Перезапускает согласование с первого этапа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Название | текст |
| Статус | выбор |
| Этапы (JSON) | текст |
| ID инициатора | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Данные (JSON) | текст |

#### Удалить согласование

`approval.delete` · меняет данные · расширенное действие

Удаляет согласование

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID согласования | текст |
| Удалено | да/нет |

#### Получить комментарии

`approval.get_comments` · только чтение · расширенное действие

Возвращает комментарии согласования

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Согласование | выбор из списка «Согласование» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Всего | число |
| Комментарии | список, список |

### Подписание

Отправить на подпись

Тип шага `signature`, версия настроек 1.

#### Отправить на подпись и дождаться

`signature.request_and_wait` · меняет данные

Создаёт запрос на подписание и ждёт решения подписантов

Выходы: Подписано, Отклонено, Срок истёк.

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Подписанты | список записей | да |  |
| Порядок подписания | выбор: По очереди, Одновременно | нет | по умолчанию: Одновременно |
| Сообщение подписантам | текст | нет | можно взять из данных |
| Срок подписания, дней | число | нет | После этого срока запрос истекает; по умолчанию: 30 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Название | текст |
| Статус | выбор |
| Подписанты (JSON) | текст |
| ID инициатора | текст |
| Имя инициатора | текст |
| Создано | текст |
| Завершено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| Документ | текст |
| Подписанный документ (PDF) | текст |
| Исход ожидания | выбор |
| Решение | выбор |
| Комментарий к решению | текст |
| ID принявшего решение | текст |
| Имя принявшего решение | текст |
| Когда принято решение | текст |

#### Отправить на подпись

`signature.create` · меняет данные

Создаёт запрос на подписание и сразу продолжает сценарий

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Подписанты | список записей | да |  |
| Порядок подписания | выбор: По очереди, Одновременно | нет | по умолчанию: Одновременно |
| Сообщение подписантам | текст | нет | можно взять из данных |
| Срок подписания, дней | число | нет | После этого срока запрос истекает; по умолчанию: 30 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Название | текст |
| Статус | выбор |
| Подписанты (JSON) | текст |
| ID инициатора | текст |
| Имя инициатора | текст |
| Создано | текст |
| Завершено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| Документ | текст |
| Подписанный документ (PDF) | текст |

#### Отозвать запрос

`signature.revoke_signature` · меняет данные

Отзывает запрос на подписание

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Подписание | выбор из списка «Подписание» | да | можно взять из данных |
| Причина | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Название | текст |
| Статус | выбор |
| Подписанты (JSON) | текст |
| ID инициатора | текст |
| Имя инициатора | текст |
| Создано | текст |
| Завершено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| Документ | текст |
| Подписанный документ (PDF) | текст |

#### Найти запросы на подписание

`signature.find` · только чтение · расширенное действие

Возвращает список запросов на подписание

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Статус | выбор: Ожидает подписи, Подписано, Завершено, Отклонено, Истекло, Отменено | нет |  |
| Не более | число | нет | по умолчанию: 50 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Запросы | список, список |
| Всего | число |
| Найдено | да/нет |

#### Получить запрос

`signature.get` · только чтение · расширенное действие

Возвращает запрос на подписание

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Подписание | выбор из списка «Подписание» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Название | текст |
| Статус | выбор |
| Подписанты (JSON) | текст |
| ID инициатора | текст |
| Имя инициатора | текст |
| Создано | текст |
| Завершено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| Документ | текст |
| Подписанный документ (PDF) | текст |

#### Удалить запрос

`signature.delete` · меняет данные · расширенное действие

Удаляет запрос на подписание

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Подписание | выбор из списка «Подписание» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Удалено | да/нет |
| ID подписания | текст |

#### Отклонить подписание

`signature.reject_signature` · меняет данные · расширенное действие

Отклоняет запрос на подписание от лица участника

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Подписание | выбор из списка «Подписание» | да | можно взять из данных |
| Причина | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подписания | текст |
| Название | текст |
| Статус | выбор |
| Подписанты (JSON) | текст |
| ID инициатора | текст |
| Имя инициатора | текст |
| Создано | текст |
| Завершено | текст |
| ID команды | текст |
| Данные (JSON) | текст |
| Документ | текст |
| Подписанный документ (PDF) | текст |

#### Получить подписи по документу

`signature.get_signings` · только чтение · расширенное действие

Возвращает подписи по документу

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Подписи | список, список |
| Всего | число |
| Найдено | да/нет |

#### Получить последний снапшот документа

`signature.get_snapshot` · только чтение · расширенное действие

Возвращает последний снапшот подписываемого документа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Снапшот (JSON) | текст |
| Хеш снапшота | текст |
| Подписано | текст |

#### Входящие на подпись

`signature.get_inbox` · только чтение · расширенное действие

Возвращает входящие запросы на подписание

**Поля**

Полей нет.

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Запросы | список, список |
| Всего | число |
| Найдено | да/нет |

#### Отправленные на подпись

`signature.get_sent` · только чтение · расширенное действие

Возвращает отправленные запросы на подписание

**Поля**

Полей нет.

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Запросы | список, список |
| Всего | число |
| Найдено | да/нет |

#### Активы подписи

`signature.get_assets` · только чтение · расширенное действие

Возвращает активы подписи (факсимиле и печати)

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Пользователь | выбор из списка «Пользователь» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Активы | список, список |
| Всего | число |
| Найдено | да/нет |

### Задача

Поставить задачу и вести её

Тип шага `tasks`, версия настроек 1.

#### Создать задачу

`tasks.create` · меняет данные

Создаёт задачу и назначает исполнителя

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название задачи | текст | да | можно взять из данных |
| Описание задачи | текст | нет | можно взять из данных |
| Исполнители | выбор из списка «Пользователь», несколько | нет |  |
| Приоритет | выбор: Низкий, Обычный, Высокий, Срочный | нет |  |
| Вид задачи | выбор: Договоры, Литигация, Консультация, Корпоративные вопросы, Сбор информации, Комплаенс, Интеллектуальная собственность, Запросы и проверки, Другое | нет |  |
| Точная дата | дата | нет | можно взять из данных |
| Или через | выбор: Через 1 день, Через 3 дня, Через 7 дней, Через 14 дней, Через 30 дней | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Название задачи | текст |
| Описание задачи | текст |
| Статус | выбор |
| Приоритет | выбор |
| Исполнитель | текст |
| Срок | текст |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Тип задачи | текст |
| Исполнители | список, список |
| Создана (true) или найдена (false) | да/нет |

#### Найти или создать задачу

`tasks.find_or_create` · меняет данные · расширенное действие

Ищет задачу по названию, при отсутствии — создаёт

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название задачи | текст | да | можно взять из данных |
| Описание задачи | текст | нет | можно взять из данных |
| Исполнители | выбор из списка «Пользователь», несколько | нет |  |
| Приоритет | выбор: Низкий, Обычный, Высокий, Срочный | нет |  |
| Вид задачи | выбор: Договоры, Литигация, Консультация, Корпоративные вопросы, Сбор информации, Комплаенс, Интеллектуальная собственность, Запросы и проверки, Другое | нет |  |
| Точная дата | дата | нет | можно взять из данных |
| Или через | выбор: Через 1 день, Через 3 дня, Через 7 дней, Через 14 дней, Через 30 дней | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Название задачи | текст |
| Описание задачи | текст |
| Статус | выбор |
| Приоритет | выбор |
| Исполнитель | текст |
| Срок | текст |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Тип задачи | текст |
| Исполнители | список, список |
| Создана (true) или найдена (false) | да/нет |

#### Найти задачи

`tasks.find` · только чтение

Ищет задачи по статусу, исполнителю и тексту

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Статус | выбор: Запрос, В очереди, В работе, Согласование, Завершено | нет |  |
| Исполнитель | выбор из списка «Пользователь» | нет | можно взять из данных |
| Поиск | текст | нет | можно взять из данных |
| Не более | число | нет | по умолчанию: 50 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные задачи | список, список |
| Всего найдено | число |
| Есть результаты | да/нет |

#### Получить задачу

`tasks.get` · только чтение · расширенное действие

Возвращает задачу по идентификатору

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Название задачи | текст |
| Описание задачи | текст |
| Статус | выбор |
| Приоритет | выбор |
| Исполнитель | текст |
| Срок | текст |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Тип задачи | текст |
| Исполнители | список, список |
| Найдена | да/нет |

#### Обновить задачу

`tasks.update` · меняет данные

Обновляет поля задачи

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |
| Название задачи | текст | нет | можно взять из данных |
| Описание задачи | текст | нет | можно взять из данных |
| Исполнители | выбор из списка «Пользователь», несколько | нет |  |
| Срок | дата | нет | можно взять из данных |
| Или через | выбор: Через 1 день, Через 3 дня, Через 7 дней, Через 14 дней, Через 30 дней | нет |  |
| Приоритет | выбор: Низкий, Обычный, Высокий, Срочный | нет |  |
| Статус | выбор: Запрос, В очереди, В работе, Согласование, Завершено | нет |  |
| Вид задачи | выбор: Договоры, Литигация, Консультация, Корпоративные вопросы, Сбор информации, Комплаенс, Интеллектуальная собственность, Запросы и проверки, Другое | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Название задачи | текст |
| Описание задачи | текст |
| Статус | выбор |
| Приоритет | выбор |
| Исполнитель | текст |
| Срок | текст |
| Создана | текст |
| Обновлена | текст |
| Кем создана | текст |
| Тип задачи | текст |
| Исполнители | список, список |

#### Удалить задачу

`tasks.delete` · меняет данные · расширенное действие

Удаляет задачу

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID удалённой задачи | текст |
| Удалена | любое |

#### Список подзадач

`tasks.find_subtasks` · только чтение · расширенное действие

Возвращает подзадачи (чек-лист) задачи

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Подзадачи | список, список |
| Всего | число |
| Есть результаты | да/нет |

#### Добавить подзадачу

`tasks.create_subtask` · меняет данные

Добавляет пункт чек-листа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |
| Текст подзадачи | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подзадачи | текст |
| ID задачи | текст |
| Текст подзадачи | текст |
| Выполнена | да/нет |

#### Отметить подзадачу

`tasks.update_subtask` · меняет данные · расширенное действие

Меняет статус выполнения подзадачи

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | нет | можно взять из данных |
| Подзадача | выбор из списка «Подзадача» | да | можно взять из данных |
| Выполнена | да/нет | нет | по умолчанию: true |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID подзадачи | текст |
| ID задачи | текст |
| Текст подзадачи | текст |
| Выполнена | да/нет |

#### Удалить подзадачу

`tasks.delete_subtask` · меняет данные · расширенное действие

Удаляет пункт чек-листа

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | нет | можно взять из данных |
| Подзадача | выбор из списка «Подзадача» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID удалённой подзадачи | текст |
| Удалена | любое |

#### Список комментариев

`tasks.find_comments` · только чтение · расширенное действие

Возвращает комментарии задачи

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Комментарии | список, список |
| Всего | число |
| Есть результаты | да/нет |

#### Добавить комментарий

`tasks.add_comment` · меняет данные

Добавляет комментарий к задаче

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Задача | выбор из списка «Задача» | да | можно взять из данных |
| Текст комментария | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID комментария | текст |
| ID задачи | текст |
| Автор | текст |
| Текст комментария | текст |
| Создан | текст |

### Календарь

События и записи на приём

Тип шага `calendar`, версия настроек 1.

#### Создать событие

`calendar.create` · меняет данные

Создаёт событие в календаре

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название | текст | да | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Начало | дата и время | да | можно взять из данных |
| Окончание | дата и время | нет | можно взять из данных |
| Весь день | да/нет | нет | по умолчанию: false |
| Тип события | текст | нет | в блоке «Дополнительно» |
| Цвет | текст | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID события | текст |
| Название | текст |
| Описание | текст |
| Начало | текст |
| Окончание | текст |
| Весь день | да/нет |
| Тип события | текст |
| Цвет | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Создатель | текст |
| Доп. данные (JSON) | текст |

#### Добавить участника

`calendar.add_participant` · меняет данные

Добавляет участника к событию

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Событие | выбор из списка «Событие календаря» | да | можно взять из данных |
| Email приглашённого | email | да | можно взять из данных |
| Имя приглашённого | текст | нет | можно взять из данных |
| Часовой пояс | текст | нет | в блоке «Дополнительно» |
| Ответы на вопросы | пары «ключ — значение» | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID участника | текст |
| ID события | текст |

#### Получить событие

`calendar.get` · только чтение · расширенное действие

Возвращает событие по ID

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Событие | выбор из списка «Событие календаря» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID события | текст |
| Название | текст |
| Описание | текст |
| Начало | текст |
| Окончание | текст |
| Весь день | да/нет |
| Тип события | текст |
| Цвет | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Создатель | текст |
| Доп. данные (JSON) | текст |

#### Найти события за месяц

`calendar.find` · только чтение · расширенное действие

Возвращает события за указанный месяц и год

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Месяц (1–12) | число | да | можно взять из данных |
| Год | число | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| События | список, список |
| Всего | число |
| Найдено | да/нет |

#### Обновить событие

`calendar.update` · меняет данные · расширенное действие

Обновляет заданные непустые поля события

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Событие | выбор из списка «Событие календаря» | да | можно взять из данных |
| Название | текст | нет | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Начало | дата и время | нет | можно взять из данных |
| Окончание | дата и время | нет | можно взять из данных |
| Весь день | да/нет | нет |  |
| Тип события | текст | нет | в блоке «Дополнительно» |
| Цвет | текст | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID события | текст |
| Название | текст |
| Описание | текст |
| Начало | текст |
| Окончание | текст |
| Весь день | да/нет |
| Тип события | текст |
| Цвет | текст |
| Создано | текст |
| Обновлено | текст |
| ID команды | текст |
| Создатель | текст |
| Доп. данные (JSON) | текст |

#### Удалить событие

`calendar.delete` · меняет данные · расширенное действие

Удаляет событие по ID

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Событие | выбор из списка «Событие календаря» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Удалено | да/нет |
| ID события | текст |

#### Найти свободные слоты

`calendar.find_availability` · только чтение · расширенное действие

Вычисляет доступные слоты для записи на приём

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Хосты | список записей | да |  |
| С | дата и время | да | можно взять из данных |
| По | дата и время | да | можно взять из данных |
| Длительность (мин) | число | да | можно взять из данных |
| Шаг слота (мин) | число | нет | в блоке «Дополнительно» |
| Буфер до (мин) | число | нет | в блоке «Дополнительно» |
| Буфер после (мин) | число | нет | в блоке «Дополнительно» |
| Мин. упреждение (мин) | число | нет | в блоке «Дополнительно» |
| Режим | выбор: Один сотрудник, По очереди, Все одновременно | нет | по умолчанию: Один сотрудник |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Свободные слоты | список, список |
| Найдено | да/нет |

#### Записать на приём

`calendar.create_booking` · меняет данные · расширенное действие

Оформляет бронь и связанное событие

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Форма записи | выбор из списка «Форма» | нет | можно взять из данных |
| Режим | выбор: Один сотрудник, По очереди, Все одновременно | нет | по умолчанию: Один сотрудник |
| Хосты | выбор из списка «Пользователь», несколько | да |  |
| Начало | дата и время | да | можно взять из данных |
| Окончание | дата и время | да | можно взять из данных |
| Название | текст | нет | можно взять из данных |
| Имя приглашённого | текст | нет | можно взять из данных |
| Email приглашённого | email | да | можно взять из данных |
| Часовой пояс | текст | нет | в блоке «Дополнительно» |
| Место | текст | нет | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Ответы на вопросы | пары «ключ — значение» | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID брони | текст |
| Токен брони | текст |
| ID события | текст |
| ID хоста | текст |
| Начало | текст |
| Окончание | текст |

#### Перенести запись

`calendar.reschedule_booking` · меняет данные · расширенное действие

Переносит бронь на другое время по токену

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Токен брони | текст | да | можно взять из данных |
| Начало | дата и время | да | можно взять из данных |
| Окончание | дата и время | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID брони | текст |
| Начало | текст |
| Окончание | текст |

#### Отменить запись

`calendar.cancel_booking` · меняет данные · расширенное действие

Отменяет бронь по токену

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Токен брони | текст | да | можно взять из данных |
| Причина | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Отменено | да/нет |

### Генерация текста

Написать текст с помощью ИИ

Тип шага `ai`, версия настроек 1.

#### Сгенерировать текст

`ai.generate_text` · только чтение

Отправляет промт в ИИ и возвращает текстовый ответ

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Запрос к ИИ | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Ответ ИИ | текст |

#### Сгенерировать JSON

`ai.generate_json` · только чтение

Отправляет промт в ИИ и возвращает структурированный ответ по списку полей

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Запрос к ИИ | текст | да | можно взять из данных |
| Поля ответа | объявление полей | нет | ИИ вернёт ровно эти поля; они появятся в данных для следующих шагов |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Сырой ответ ИИ | текст |
| Поля ответа | объект |

### Агент

Поручить работу агенту команды

Тип шага `agent`, версия настроек 1.

#### Поручить задачу агенту

`agent.assign_task` · меняет данные

Создаёт задачу выбранному агенту; агент берёт её в работу и сообщает итог, сценарий ждёт итога и получает отчёт

Выходы: Выполнено, Не справился, Срок истёк.

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Агент | выбор из списка «Агент» | да | можно взять из данных |
| Название задачи | текст | да | можно взять из данных |
| Что нужно сделать | текст | нет | можно взять из данных |
| Цель | текст | нет | можно взять из данных |
| Критерии приёмки | текст | нет | можно взять из данных |
| Приоритет | выбор: Низкий, Обычный, Высокий, Срочный | нет |  |
| Точная дата | дата | нет | можно взять из данных |
| Или через | выбор: Через 1 день, Через 3 дня, Через 7 дней, Через 14 дней, Через 30 дней | нет |  |
| Дождаться итога агента | да/нет | нет | по умолчанию: true |
| Ждать не дольше, часов | число | нет | по умолчанию: 72 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID задачи | текст |
| Название задачи | текст |
| Статус задачи | текст |
| Срок | текст |
| ID агента | текст |
| Имя агента | текст |
| Итог агента | выбор |
| Отчёт агента: что сделано и где результат | текст |
| Исход ожидания | выбор |
| Решение | выбор |
| Комментарий к решению | текст |
| ID принявшего решение | текст |
| Имя принявшего решение | текст |
| Когда принято решение | текст |

### Telegram

Отправить сообщение в Telegram

Тип шага `telegram`, версия настроек 1.

#### Отправить сообщение

`telegram.send` · отправляет наружу

Отправляет сообщение получателям в Telegram

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Получатели | выбор из списка «Пользователь», несколько | да |  |
| Сообщение | текст | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Отправлено (кол-во) | число |

### Письмо

Отправить письмо

Тип шага `email`, версия настроек 1.

#### Отправить письмо

`email.send` · отправляет наружу

Отправляет письмо указанным получателям

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Получатели | получатели | да | можно взять из данных |
| Тема письма | текст | да | можно взять из данных |
| Текст письма | текст | да | можно взять из данных |
| Вложения | вложения | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Письмо отправлено | да/нет |
| Количество вложений | число |

### Файл

Архивы, ссылки и хранилище файлов

Тип шага `files`, версия настроек 1.

#### Собрать архив

`files.archive` · меняет данные

Собирает ZIP-архив из документов и возвращает ссылку на скачивание

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Название архива | текст | да | можно взять из данных |
| Формат файлов | выбор: PDF, DOCX | нет | по умолчанию: PDF |
| Документы | выбор из списка «Документ», несколько | нет |  |
| Записи реестра | список (текст) | нет | В архив попадёт документ, привязанный к каждой записи; можно взять из данных |
| Имя файла | текст | нет | Поля записи в фигурных скобках, например {number}_{counterparty}; в блоке «Дополнительно» |
| Раскладка по папкам | список записей | нет | в блоке «Дополнительно» |
| Нумеровать файлы в папке | да/нет | нет | по умолчанию: false; в блоке «Дополнительно» |
| Хранить архив, часов | число | нет | по умолчанию: 24; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID архива | текст |
| Название архива | текст |
| Ссылка на скачивание | текст |
| Файлов в архиве | число |
| Записей без документа | число |
| Размер архива | число |
| Когда архив будет удалён | текст |

#### Сохранить файлы

`files.save` · меняет данные

Сохраняет вложения и выгруженные файлы в хранилище команды

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файлы | вложения | да |  |
| Папка | выбор из списка «Папка файлов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Сохранённые файлы | список, список |
| Сколько сохранено | число |
| Сохранён хотя бы один | да/нет |

#### Ссылка для скачивания

`files.get_signed_url` · только чтение

Создаёт временную ссылку на файл из хранилища

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Загруженный файл» | да | можно взять из данных |
| Срок действия, секунд | число | нет | по умолчанию: 3600; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Ссылка | текст |
| Срок действия, секунд | число |

#### Создать файл

`files.create` · меняет данные · расширенное действие

Создаёт реестровую запись файла (каталог)

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Тип файла | выбор: Документ, Реестр, Условие документа, Папка, Интерфейс, База знаний, Автоматизация, Плейбук | да |  |
| Имя | текст | да | можно взять из данных |
| Ключ | текст | нет | можно взять из данных; в блоке «Дополнительно» |
| Описание | текст | нет | можно взять из данных |
| Иконка | текст | нет | в блоке «Дополнительно» |
| Папка | выбор из списка «Папка файлов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип | текст |
| Ключ | текст |
| Имя | текст |
| ID папки | текст |
| Системный | да/нет |
| Создан | текст |

#### Найти файлы

`files.find` · только чтение · расширенное действие

Список файлов реестра с фильтром по типу и папке

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Тип файла | выбор: Документ, Реестр, Условие документа, Папка, Интерфейс, База знаний, Автоматизация, Плейбук | нет |  |
| Папка | выбор из списка «Папка файлов» | нет | можно взять из данных |
| Включая корень | да/нет | нет | по умолчанию: false |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Сколько найдено | число |
| Файлы | список, список |

#### Найти или создать файл

`files.find_or_create` · меняет данные · расширенное действие

Ищет файл по типу и ключу, при отсутствии создаёт

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Тип файла | выбор: Документ, Реестр, Условие документа, Папка, Интерфейс, База знаний, Автоматизация, Плейбук | да |  |
| Имя | текст | да | можно взять из данных |
| Ключ | текст | нет | можно взять из данных; в блоке «Дополнительно» |
| Описание | текст | нет | можно взять из данных |
| Иконка | текст | нет | в блоке «Дополнительно» |
| Папка | выбор из списка «Папка файлов» | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип | текст |
| Ключ | текст |
| Имя | текст |
| ID папки | текст |
| Системный | да/нет |
| Создан новый | да/нет |

#### Получить файл

`files.get` · только чтение · расширенное действие

Возвращает реестровую запись файла

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Файл» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Тип | текст |
| Ключ | текст |
| Имя | текст |
| ID папки | текст |
| Системный | да/нет |
| Описание | текст |
| Иконка | текст |
| Создан | текст |
| Обновлён | текст |

#### Обновить файл

`files.update` · меняет данные · расширенное действие

Меняет имя, описание, иконку и шаблоны файла

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Файл» | да | можно взять из данных |
| Имя | текст | нет | можно взять из данных |
| Описание | текст | нет | можно взять из данных |
| Иконка | текст | нет | в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Имя | текст |
| Обновлён | текст |

#### Удалить файл

`files.delete` · меняет данные · расширенное действие

Удаляет реестровую запись файла

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Файл» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Удалён | да/нет |

#### Переместить файл

`files.move_file` · меняет данные · расширенное действие

Переносит файл в другую папку

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Файл» | да | можно взять из данных |
| Папка | выбор из списка «Папка файлов» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Новая папка | текст |

#### Найти папки

`files.find_folders` · только чтение · расширенное действие

Список всех папок команды

**Поля**

Полей нет.

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Сколько найдено | число |
| Папки | список, список |

#### Содержимое папки

`files.find_folder_children` · только чтение · расширенное действие

Файлы внутри указанной папки

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка файлов» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Сколько найдено | число |
| Файлы | список, список |

#### Создать папку

`files.create_folder` · меняет данные · расширенное действие

Создаёт новую папку

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Имя | текст | да | можно взять из данных |
| Родительская папка | выбор из списка «Папка файлов» | нет | можно взять из данных |
| Облако для синхронизации | выбор: Dropbox, Яндекс Диск | нет |  |
| Папка в облаке | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Имя | текст |
| Родительская папка | текст |

#### Обновить папку

`files.update_folder` · меняет данные · расширенное действие

Меняет имя или родителя папки

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка файлов» | да | можно взять из данных |
| Имя | текст | нет | можно взять из данных |
| Родительская папка | выбор из списка «Папка файлов» | нет | можно взять из данных |
| Облако для синхронизации | выбор: Dropbox, Яндекс Диск | нет |  |
| Папка в облаке | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID папки | текст |
| Имя | текст |
| Родительская папка | текст |

#### Удалить папку

`files.delete_folder` · меняет данные · расширенное действие

Удаляет папку с выбором стратегии для содержимого

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка файлов» | да | можно взять из данных |
| Что делать с содержимым | выбор: Сохранить содержимое, Удалить содержимое | нет | по умолчанию: Сохранить содержимое |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Удалено | да/нет |
| Откреплено | число |
| Удалено каскадом | число |

#### Проверить наличие папки

`files.assert_folder` · меняет данные · расширенное действие

Гарантирует существование папки

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка файлов» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Папка существует | да/нет |

#### Сведения о файле

`files.get_blob` · только чтение · расширенное действие

Возвращает сведения о файле из хранилища и ссылку на него для вложений

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Загруженный файл» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Файл | текст |
| Имя файла | текст |
| MIME-тип | текст |
| Размер (байт) | число |
| SHA-хеш содержимого | текст |
| Класс файла | текст |
| Опечатан | да/нет |
| Хранить до | текст |
| Кто загрузил | текст |
| Загружен | текст |

#### Найти файлы в хранилище

`files.find_blobs` · только чтение · расширенное действие

Список файлов хранилища с фильтром по папке и классу

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Папка | выбор из списка «Папка файлов» | нет | можно взять из данных |
| Класс файла | текст | нет |  |
| Не более | число | нет | по умолчанию: 50 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найдено хотя бы одно | да/нет |
| Сколько найдено | число |
| Файлы | список, список |

#### Опечатать файл

`files.seal_blob` · меняет данные · расширенное действие

Фиксирует неизменность файла и срок хранения

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Загруженный файл» | да | можно взять из данных |
| Хранить до | дата и время | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Опечатан | да/нет |
| Хранить до | текст |

#### Удалить файл из хранилища

`files.delete_blob` · меняет данные · расширенное действие

Удаляет файл из хранилища

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Файл | выбор из списка «Загруженный файл» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID файла | текст |
| Удалён | да/нет |

### Проверка

Проверить документ по чек-листу

Тип шага `compliance`, версия настроек 1.

#### Запустить проверку

`compliance.run_check` · меняет данные

Запускает проверку документа по плейбуку

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Чек-листы: выполняются по порядку, результат общий | выбор из списка «Плейбук», несколько | нет |  |
| Пункты чек-листов | выбор из списка «Пункт чек-листа», несколько | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID результата | текст |
| Статус | текст |

#### Получить результат

`compliance.get_result` · только чтение

Возвращает итог проверки по её результату

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Результат проверки | выбор из списка «Результат проверки» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID результата | текст |
| Статус | текст |
| Оценка | число |
| Нарушений высокого риска | число |
| Нарушений среднего риска | число |
| Нарушений низкого риска | число |
| Замечания | список, список |
| Завершено | текст |

### Интеграция

Действие во внешнем сервисе

Тип шага `integration`, версия настроек 1.

#### Проверить подключение

`integration.get_status` · только чтение

Проверяет, подключён ли провайдер к команде

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Провайдер | выбор: МойСклад, 1С, Saby, Google Диск, Dropbox, Яндекс Диск | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Подключено | да/нет |
| ID пользователя провайдера | текст |

#### Найти контрагента

`integration.find` · только чтение

Ищет контрагентов и организации в учётной системе

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Учётная система | выбор: МойСклад | нет | по умолчанию: МойСклад |
| Кого искать | выбор: Контрагент, Организация | нет | по умолчанию: Контрагент |
| Что найти | текст | да | можно взять из данных |
| Не более | число | нет | по умолчанию: 20 |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные сущности | список, список |
| Кол-во найденных | число |
| Найдено ли что-то | да/нет |

#### Получить сущность по ID

`integration.get` · только чтение · расширенное действие

Получает одну сущность учётной системы по идентификатору

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Учётная система | выбор: МойСклад | нет | по умолчанию: МойСклад |
| Тип сущности | выбор: Контрагент, Организация | нет | по умолчанию: Контрагент |
| Сущность | выбор из списка «Сущность учётной системы» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Сущность | объект |

#### Выгрузить документ в облако

`integration.export_document` · меняет данные

Выгружает документ в облачное хранилище

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Облако | выбор: Google Диск, Dropbox, Яндекс Диск | да |  |
| Документ | выбор из списка «Документ» | да | можно взять из данных |
| Формат | выбор: PDF, DOCX | нет | по умолчанию: PDF |
| Папка в облаке | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Ссылка на выгруженный файл | текст |
| ID файла в облаке | текст |
| Облако | выбор |

### База знаний

Найти ответ в базе знаний

Тип шага `knowledge`, версия настроек 1.

#### Найти в базе знаний

`knowledge.search` · только чтение

Ищет релевантные фрагменты по базам знаний и собирает из них контекст для ИИ

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Запрос | текст | да | можно взять из данных |
| Базы знаний | выбор из списка «База знаний», несколько | нет |  |
| Не более фрагментов | число | нет | по умолчанию: 10 |
| Глубина графа связей | число | нет | по умолчанию: 0; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Найденные фрагменты одним текстом | текст |
| Найденные фрагменты | список, список |
| Связанные сущности | список, список |
| Количество фрагментов | число |

#### Найти базы знаний

`knowledge.find` · только чтение · расширенное действие

Возвращает список баз знаний команды

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Поиск | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Базы знаний | список, список |
| Всего найдено | число |
| Есть результаты | да/нет |

#### Список источников базы

`knowledge.find_sources` · только чтение · расширенное действие

Возвращает источники выбранной базы знаний

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| База знаний | выбор из списка «База знаний» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Источники | список, список |
| Всего найдено | число |
| Есть результаты | да/нет |

#### Статус источника

`knowledge.get_source_status` · только чтение · расширенное действие

Возвращает статус индексации источника

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Источник | выбор из списка «Источник знаний» | да | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| ID источника | текст |
| Статус | текст |
| Число фрагментов | число |
| Ошибка | текст |
| Найден | да/нет |

### HTTP-запрос

Отправить запрос к внешнему API

Тип шага `http`, версия настроек 1.

#### HTTP-запрос

`http.request` · меняет данные

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Метод | выбор: GET, POST, PUT, PATCH, DELETE | нет | по умолчанию: GET |
| Адрес | ссылка | да | можно взять из данных |
| Параметры адреса | список записей | нет |  |
| Заголовки | список записей | нет |  |
| Формат тела | выбор: JSON, Форма, Как есть | нет | показывается, когда «method» = POST, PUT, PATCH; по умолчанию: JSON |
| Тело запроса | текст | нет | можно взять из данных; показывается, когда «method» = POST, PUT, PATCH |
| Таймаут, мс | число | нет | по умолчанию: 30000; в блоке «Дополнительно» |
| Поля ответа | объявление полей | нет | Опишите поля тела ответа, чтобы выбирать их в следующих шагах; в блоке «Дополнительно» |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| HTTP-код ответа | число |
| Заголовки ответа | объект |
| Тело ответа | любое |

### Форматирование

Преобразовать текст или данные

Тип шага `format`, версия настроек 1.

#### Шаблон строки

`format.template` · только чтение

Подставляет переменные в текстовый шаблон

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Шаблон строки | текст | да | Текст с данными из предыдущих шагов: вставьте поле через «Из данных», остальной текст останется как есть; можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Формат даты

`format.format_date` · только чтение

Приводит дату к выбранному формату

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Исходная дата | дата | да | можно взять из данных |
| Формат даты | выбор: Краткий, Полный, Дата ISO, Дата и время ISO | нет | Краткий — 14.10.2026, Полный — 14 октября 2026 г., Дата ISO — 2026-10-14, Дата и время ISO — 2026-10-14T09:00:00; по умолчанию: Полный |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Формат числа

`format.format_number` · только чтение

Записывает число с разделителями разрядов и нужным числом знаков

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Число | число | да | можно взять из данных |
| Знаков после запятой | число | нет | по умолчанию: 2 |
| Разделять разряды | да/нет | нет | по умолчанию: true |
| Единица измерения | текст | нет | можно взять из данных |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Сумма прописью

`format.amount_in_words` · только чтение

Записывает сумму словами: «одна тысяча двести рублей 50 копеек»

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Сумма | число | да | можно взять из данных |
| Валюта | выбор: Рубли, Доллары США, Евро, Без валюты | нет | по умолчанию: Рубли |
| С заглавной буквы | да/нет | нет | по умолчанию: true |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Текст

`format.transform_text` · только чтение

Преобразует регистр и пробелы текста

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Исходный текст | текст | да | можно взять из данных |
| Преобразование | выбор: Прописные буквы, Строчные буквы, Убрать пробелы по краям, С заглавной буквы | нет | по умолчанию: Прописные буквы |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Замена

`format.replace` · только чтение

Заменяет подстроку в тексте

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Исходный текст | текст | да | можно взять из данных |
| Что найти | текст | да |  |
| Чем заменить | текст | нет |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | текст |

#### Сборка объекта

`format.build_object` · только чтение · расширенное действие

Собирает объект из пар ключ-значение

**Поля**

| Поле | Как заполняется | Обязательное | Примечание |
| --- | --- | --- | --- |
| Поля | список записей | да |  |

**Данные на выходе**

| Данные | Тип |
| --- | --- |
| Результат | объект |
