Что такое автоматизация
Разберитесь, как автоматизации связывают события, действия, условия и внешние сервисы.
Автоматизация - это сценарий, который запускается по событию или вручную и выполняет последовательность действий. В Agnostic она редактируется визуально: через узлы, связи, условия и тестовые запуски.
Если меню Добавить шаг сообщает, что каталог узлов не загрузился, нажмите Повторить загрузку. После успешной загрузки в меню снова будут доступны все типы узлов, включая Telegram. Связи на схеме отображаются направленными стрелками к следующему узлу.
Когда использовать
- Нужно реагировать на входящий запрос или событие.
- Нужно перенести данные между таблицами и сервисами.
- Нужно отправлять уведомления, запускать API или ждать ручного решения.
Из чего состоит автоматизация
- Триггер запускает сценарий.
- Узлы выполняют действия.
- Связи задают порядок выполнения.
- Условия разделяют сценарий на ветки.
- История запусков показывает результат.
Триггер Изменение строки Data запускает опубликованную автоматизацию после добавления, обновления или удаления записи. В настройках можно выбрать:
- любое из этих событий или только один тип изменения;
- все коллекции проекта или одну конкретную коллекцию.
Событие относится к тому же окружению, в котором опубликована автоматизация. В данные запуска попадают тип изменения, коллекция, ключ записи, актуальная запись и изменённые поля, когда они доступны. Если сценарий сам меняет ту же коллекцию, добавьте условие, которое остановит повторную обработку, иначе он может запускать себя снова.
Для отметки «Обработано» используйте условие «не равно true», если нужно обрабатывать также записи с пустой отметкой. Условие «равно false» пропускает пустое значение. После записи установите отметку в true: следующее событие этой записи завершится без повторной записи.
Для уведомлений о новых крупных заявках выберите событие «Строка добавлена» и конкретную таблицу «Заявки». Добавьте условия: сумма больше или равна 100 000, статус «Новая» или «В работе». Свяжите уведомление только с веткой, в которой оба условия выполнены. Тогда обновление существующей заявки и закрытая заявка не вызовут уведомление.
Агенту можно поручить эту настройку, указав окружение, таблицу, сохранённое подключение и получателя. После подтверждения создания и публикации он проверит активную привязку события к выбранному окружению. Настройка правила сама по себе не означает, что сообщение уже отправлено; тестовую отправку попросите отдельно.
Как настроить запуск по расписанию
- Добавьте узел
Расписаниеи откройте его параметры. - Во вкладке
Быстровыберите готовую частоту: например, каждый час, каждый
день в 09:00 или по будням в 09:00.
- Если готовый вариант не подходит, откройте
Вручнуюи введите
Cron-выражение из пяти частей: минута, час, день месяца, месяц и день недели.
- Выберите часовой пояс через поиск. Для нового расписания используется
Europe/Moscow.
- Сохраните черновик, выполните тестовый запуск и опубликуйте автоматизацию.
Время в готовых вариантах считается по выбранному часовому поясу. Например, 0 9 * * 1-5 означает запуск по будням в 09:00.
Сохранённый черновик ещё не запускается по расписанию. Публикация включает расписание в выбранном окружении; существующая отключённая привязка остаётся отключённой. Тест выполняет реальные действия, включая отправку уведомления.
Как принимать заявку через webhook
Попросите Agent настроить приём заявки в выбранном окружении. Укажите таблицу, обязательные поля и их типы, сохранённое подключение для защиты входа и поле идентификатора события. Секрет подключения вводится через защищённый интерфейс Connections; его не нужно отправлять в чат.
Agent сначала сохраняет и публикует согласованную автоматизацию, затем отдельно предлагает открыть публичный вход. Подтверждение показывает подключение, режим ответа и поле события. Один черновик или публикация без такой привязки ещё не создают вход для заявок.
В синхронном режиме отправитель получает результат завершённого сценария, например номер созданной заявки. Проверка схемы отклоняет неверное тело до записи данных. Повтор того же события с тем же телом возвращает исходный результат; изменённое тело с прежним идентификатором отклоняется. Повтор не исправляет уже завершившийся ошибкой процесс и не запускает его заново.
Адрес настроенного маршрута и успешная доставка — разные этапы. После настройки проверьте отправку заявки, ответ и историю запусков; для внешнего доступа дождитесь применения маршрута к шлюзу. При недоступной очереди принятое событие остаётся в ожидании и продолжает тот же запуск после восстановления. Пока сценарий не завершился, синхронный запрос может получить ошибку ожидания; повтор с тем же идентификатором продолжает ожидать исходный результат.
Как выбрать записи для уведомления
В узле Найти данные выберите базу и укажите таблицу. Фильтры задаются объектом, например:
{
"status": { "in": ["new", "active"] },
"next_contact_at": { "lt": "{{payload.scheduledAt}}" }
}Используйте названия полей и значения статусов своей таблицы. В примере выбираются открытые заявки, время следующего контакта которых уже прошло. Запуск по расписанию передаёт текущее время в scheduledAt; для теста добавьте это поле с конкретной датой в данные запуска.
В Поля результата можно указать список нужных полей, например ["id", "name", "status", "next_contact_at"]. Сортировка принимает запись вида next_contact_at:asc. По умолчанию разрешено до 1 000 записей; Максимум записей можно задать от 1 до 10 000. Узел читает все страницы выборки и завершает шаг ошибкой, если лимит превышен, результат больше 1 MiB или страницы оказались несогласованными. Частичный список не выдаётся как полный результат. При обычном поведении ошибки следующий шаг уведомления не выполняется.
Поле Запрос YQL (вместо таблицы) — отдельный способ чтения. Не заполняйте его одновременно с таблицей и фильтрами.
Что можно делать
- Создать автоматизацию с нуля или из шаблона.
- Настроить узлы в окружении
Разработка. - Запустить тест с примерными данными.
- Сохранить черновик.
- Опубликовать версию в
Разработке. - Развернуть эту же версию в
Тестировании, а затем вПродакшене.
Версии в окружениях
У одной автоматизации может быть разная активная версия в каждом окружении. Под названием сценария показана цепочка Разработка → Тестирование → Продакшен и номер версии в каждом месте.
- В
Разработкедоступен визуальный редактор, черновик и тестовые запуски. - В
Тестированииоткрывается только развернутая там версия. Изменить её на месте нельзя. - В
Продакшенетакже показывается точная рабочая версия только для просмотра.
Чтобы выпустить изменение:
- Переключитесь в
Разработку, измените сценарий и сохраните черновик. - Опубликуйте новую версию в
Разработке. - Нажмите
Развернуть vN в тестированиии подтвердите действие. - Проверьте сценарий в
Тестировании. - Нажмите
Развернуть vN в продакшенеи подтвердите действие.
При продвижении новая версия не создаётся: в следующее окружение попадает уже проверенная vN. Если исходная версия успела измениться в другой вкладке, обновите страницу и повторите действие с актуальной версией.
Как добавлять и соединять узлы
Откройте Добавить шаг и начните вводить название или назначение узла в поле поиска. Узел можно добавить нажатием или перетащить из каталога прямо в нужное место на схеме.
После добавления узел остаётся на схеме без открытых настроек. Нажмите его, когда будете готовы настроить параметры. Рабочая область узла открывается как диалог поверх схемы: по краям остаётся видна часть интерфейса. Закройте её кнопкой, клавишей Escape или нажатием за пределами диалога.
Узлы с несколькими вариантами продолжения показывают отдельную подписанную точку для каждого выхода. Например, у Если / иначе видны выходы Да и Нет, а у согласования — результаты решения и таймаут. Потяните связь от нужной точки к следующему узлу, чтобы собрать отдельную ветку сценария.
У Switch набор выходов следует списку вариантов в параметрах узла. Добавьте вариант — на схеме появится новый выход; измените название — подпись обновится. Если удалить вариант, редактор также удалит связь, которая выходила из этой ветки. Отдельный выход По умолчанию используется, когда ни одно условие не выполнилось.
При открытии сценария редактор сохраняет заданные положения шагов и размещает шаги без координат отдельно от существующих карточек. Автоматическая расстановка учитывает высоту шагов с несколькими выходами, включая длинный список вариантов Switch, чтобы карточки не перекрывали друг друга.
Шаблоны с AI, которые затем сохраняют данные или отправляют действие дальше, добавляют отдельный шаг структурирования ответа. Он помогает проверить, что AI вернул ожидаемые поля, прежде чем результат попадет в Data, webhook-ответ или другой внешний шаг.
После проверки структуры поля доступны прямо в результате этого шага. Например, для поля category используйте steps.<id>.output.category. Дополнительный уровень data нужен только тогда, когда это поле есть в самой схеме ответа. Редактор проверяет такие ссылки до сохранения. Допустимые категории задайте ветками условия, а неизвестную категорию направьте на ручную проверку.
Как добавить Telegram
Перед добавлением узла сохраните подключение Telegram-бота в разделе Подключения. Токен вводится только в защищённое поле подключения. В автоматизации выбирается сохранённое подключение, а не сам токен.
Чтобы получать события из Telegram:
- Нажмите
Добавить шаги выберитеСобытие Telegram. - Выберите сохранённое подключение Telegram.
- Укажите адресное имя webhook.
- Отдельно создайте webhook-триггер автоматизации с тем же адресным именем и задайте секрет длиной 1–256 символов: латинские буквы, цифры,
_и-. Это отдельное значение, не токен бота. После сохранения платформа больше не показывает секрет, поэтому сохраните его в защищённом месте. Добавление узла на схему и публикация сценария пока не создают эту привязку автоматически. - Опубликуйте сценарий и зарегистрируйте его публичный webhook-адрес в Telegram. При вызове
setWebhookпередайте секрет webhook-привязки в параметреsecret_token. Agnostic пока не выполняет этот вызов автоматически. - Отправьте тестовое событие боту и проверьте новый запуск в истории.
Сейчас webhook передаёт в сценарий все типы Telegram Update. Добавьте условие по содержимому payload.body, если нужны только сообщения, callback-запросы или другой тип события. Telegram может повторно доставить один update_id, а автоматическое удаление дублей ещё не реализовано: действия с оплатой, записью данных и отправкой сообщений делайте идемпотентными.
Чтобы выполнить действие в Telegram:
- Добавьте узел
Telegramпосле триггера или другого шага. - Выберите сохранённое подключение Telegram.
- Выберите операцию: отправить, изменить или удалить сообщение; ответить на callback; отправить фото или документ; показать действие в чате; получить файл.
- Заполните поля выбранной операции. Данные из предыдущих шагов можно вставить через кнопку
Данные. - Выполните тестовый запуск, сохраните черновик и опубликуйте сценарий.
Тестовый запуск узла Telegram обращается к реальному Telegram Bot API и может отправить или изменить сообщение. Для проверки используйте тестовый чат и безопасные данные.
Логотип Telegram помогает отличить узлы внешнего сервиса от системных, но не меняет их права. Узел получает доступ только через выбранное подключение, а токен бота не показывается на схеме, в тестовых данных или в истории запуска.
Telegram передаёт secret_token в специальном заголовке каждого обновления. Agnostic проверяет этот заголовок по секрету webhook-привязки и сохраняет его в истории только как [redacted]. Не публикуйте этот секрет и не используйте в качестве него токен бота.
Как подставлять данные
Поля выбора таблицы, очереди, backend-сервиса или подключения могут работать в двух режимах. Откройте список, чтобы выбрать доступное значение по имени или описанию. Компактная кнопка fx справа переключает поле на выражение из входных данных или результата предыдущего узла, например {{ input.queueRef }}. Повторное нажатие возвращает фиксированное значение; редактор сохраняет последний вариант каждого режима.
Списки ресурсов загружаются из текущего проекта и выбранного окружения. В проекте используется одна база, поэтому отдельно выбирать её в узле не нужно: редактор подставляет её автоматически и показывает только выбор таблицы. Для полей триггера доступен только фиксированный выбор: до запуска у триггера ещё нет входных данных от других узлов.
Добавление нового узла создания или обновления записи пока скрыто из меню Добавить шаг. Такой узел в ранее созданном сценарии продолжает работать и редактироваться.
В настройках узла поля, которые могут использовать данные из события, предыдущих шагов или ресурсов проекта, показывают кнопку fx. Нажмите её, найдите нужный источник и выберите значение. Agnostic вставит выражение в то место, где стоит курсор в выбранном поле. На широком экране источники также доступны слева от параметров: выберите значение нажатием или перетащите его в поле.
В разделе Предыдущие шаги доступны не только данные соседнего узла. Можно выбрать результат узла из любой входящей ветки и через несколько шагов до текущего. Узлы, которые выполняются после текущего, и несвязанные ветки в список не попадают.
Рядом с доступным полем редактор показывает строку Пример со значением из последнего запуска в выбранном окружении. Для этого не нужно сначала открывать историю: данные используются только как подсказка и не меняют черновик или статусы на схеме. Если шаг ещё не выполнялся, сначала запустите тест до текущего узла — после него появятся реальные значения.
При выборе узла поверх схемы открывается отдельная рабочая область. На широком экране входные данные находятся слева, параметры узла — по центру, а вывод последнего теста — справа. Над входными данными можно выбрать один доступный источник; поиск в этом меню находит как шаги, так и их поля даже в длинном сценарии. На узком экране те же разделы доступны через вкладки Параметры, Данные и Вывод. Нажмите Escape или кнопку закрытия, чтобы вернуться к схеме.
На телефоне редактор сначала показывает упорядоченный список шагов и подписи ветвей. Нажмите шаг, чтобы открыть его настройки. Кнопка Холст открывает граф для работы со связями, а Список возвращает к ленте без потери изменений. В тестировании и продакшене этот список доступен только для просмотра: настройки и добавление шагов остаются в разработке.
У узла Webhook в параметрах показывается опубликованный Webhook URL и кнопка копирования. Если адреса ещё нет, сначала создайте webhook-привязку и опубликуйте автоматизацию.
При удалении узла редактор сначала показывает подтверждение с названием узла. Связи этого узла удаляются только после нажатия Удалить узел.
Для JSON-полей редактор вставляет выражение как безопасную строку, чтобы JSON не ломался. В полях для переменных и сохранения данных выбранный путь добавляется как пара "имя поля -> выражение": например, email из предыдущего шага станет отдельным значением, которое можно переименовать после вставки.
Источник данных можно перетащить из блока выбора в совместимое поле. Если поле не принимает такой тип данных, редактор покажет сообщение и не изменит настройку.
Если поле содержит выражение, под ним появляется короткая строка предпросмотра. Для шаблона, например Здравствуйте, {{ input.body.name }}, она показывает подставленное значение на текущих тестовых данных. Раскройте строку, чтобы изменить выражение в большом редакторе, посмотреть ссылки и ошибки или скопировать его.
Если нужные данные появятся только во время запуска, редактор показывает предупреждение вместо придуманного значения. Для проверки или обращения в поддержку можно скопировать raw expression из панели предпросмотра.
Если экран узкий, выбор данных открывается снизу, чтобы список не обрезался. Закрыть его можно клавишей Escape или нажатием вне панели.
После вставки данных сохраните черновик и запустите проверку. Если выражение ссылается на недоступный шаг, старый формат или неизвестный путь, редактор покажет проблему до публикации. Исправьте поле через Данные и опубликуйте автоматизацию только после успешной проверки.
Частые проблемы
| Проблема | Что сделать |
|---|---|
| Автоматизация не запускается | Проверьте триггер и статус публикации. |
| Запуск происходит не в то время | Проверьте выбранный часовой пояс и расписание в параметрах триггера. |
| Узел требует настройку | Откройте инспектор узла и заполните обязательные поля. |
| Данные не проходят проверку | Вставьте источник через Данные заново и сохраните черновик. |
| Telegram не присылает события | Проверьте отдельную webhook-привязку, совпадение адресного имени и регистрацию webhook в Telegram. |
| Нужны технические детали | Проверьте историю запусков и сообщения узлов. |