Перейти к содержимому

Автоматизация процессов

Автоматизации (Automations) позволяют строить событийно-ориентированные процессы, выполняемые автоматически при создании или изменении сущностей, а также при превышении порогов метрик.


1. Архитектура автоматизаций: Триггер → Условие → Действие

Заголовок раздела «1. Архитектура автоматизаций: Триггер → Условие → Действие»

Каждое правило автоматизации состоит из трех компонентов:

flowchart LR
A["Триггер события\n(Сущность создана / изменена / метрика принята)"] --> B["Оценка условий\n(например, Температура > 10°C)"]
B -->|Условие истинно| C["Выполнение действия\n(Webhook / Telegram / Push)"]
  • При создании сущности: Срабатывает сразу при создании новой сущности выбранного шаблона.
  • При изменении сущности: Срабатывает при любом изменении записи сущности.
  • При изменении атрибута: Срабатывает при изменении конкретного атрибута (например, когда Температура превышает порог или Статус меняется с Operational на Pre-Failure).

Фильтрация выполнения правил с помощью операторов:

  • Равно, Не равно
  • Больше чем, Меньше чем, Больше или равно, Меньше или равно
  • Содержит, Не содержит
  • Пусто, Не пусто
  • Канал Telegram: Отправка форматированных сообщений в чаты/группы Telegram через бота.
  • Канал Webhook: Выполнение RESTful HTTP-запросов (POST, PUT, PATCH, GET, DELETE) с динамическими путями URL, параметрами запроса, заголовками авторизации (None, Bearer Token, Basic Auth), кастомными заголовками и шаблонами JSON-нагрузки.
  • Канал Push-уведомлений: Отправка мгновенных push-уведомлений на мобильные устройства Android участников проекта через Firebase Cloud Messaging (FCM).

  1. Перейдите в Автоматизация → Поиск.
  2. Нажмите + Создать автоматизацию.
  3. Основные настройки: Введите название (например, Перегрев груза) и выберите целевой Шаблон (например, Транспортное средство).
  4. Выбор триггера: Выберите При изменении атрибута и укажите Температура.
  5. Добавление условий: Задайте правило Температура Больше чем 10.
  6. Настройка действия:
    • Выберите целевой канал уведомления (например, Omni Webhook).
    • Для Webhooks:
      • Выберите метод HTTP (PATCH).
      • Введите шаблон URL эндпоинта с плейсхолдерами динамических переменных (например, /entities/{entity.id}).
      • Опционально добавьте параметры запроса (например, automation=true).
      • Настройте шаблон JSON-нагрузки.
  7. Нажмите Сохранить и включить.

Конструктор автоматизации с настройкой триггера, условий и действия


3. Практический сценарий: Движок бизнес-правил управления логистикой

Заголовок раздела «3. Практический сценарий: Движок бизнес-правил управления логистикой»

Автоматизации превращают Omnismith в активный движок бизнес-правил. Например, в системе управления холодовой цепью поставок:

  • Шаблон: Транспортное средство
  • Атрибуты: Температура (Метрика / Число), Статус ТС (Список / Измерение: Operational, Pre-Failure, Failure)
  • Цель: Когда Температура груза превышает 10°C, автоматически отправить HTTP-запрос PATCH для изменения значения Статуса ТС на "Pre-Failure".
  • Название канала: Omni Webhook
  • Базовый URL: https://api.omnismith.io/
  • Тип авторизации: Bearer Token
  • Bearer Token: omni_0f61c1f023b24db0bb2d15ad71719b8694cc24f5
  • Метод HTTP: PATCH
  • Путь URL / Эндпоинт: /entities/{entity.id}
  • Шаблон нагрузки (JSON):
    {
    "attribute_values": [
    {
    "attribute_id": "019fb43d-f9bf-7e9c-aa6d-175ab3a35e54",
    "value": "019fb43e-de74-7149-a92d-5448f16001bc",
    "updated_at": null
    }
    ]
    }

Поддерживаемые динамические переменные: {automation.id}, {automation.name}, {entity.id}, {entity.template_id}, {values.<attribute_id>}, {previous.<attribute_id>}, {timestamp}.


На вкладке Выполнения любого правила автоматизации вы можете изучать логи вызовов в реальном времени:

  • Успех: Вебхук доставлен и принят внешним API (HTTP 200/204).
  • Ошибка: Ошибка отправки (например, HTTP 405 Method Not Allowed, отказ в соединении или неверный токен). Изучайте коды статуса и детали сообщений.
  • Частичная ошибка: Часть целевых каналов успешно получила уведомление, а часть вернула ошибку.