enumslab
Аналитика

События

Правила-автоматизации над данными 1С и iiko: на естественном языке задаёте «когда и что проверить» — система по расписанию собирает данные, проверяет условия и сама отправляет результат на почту или во внешний сервис (API).

Что это и зачем

«События» — это движок правил-автоматизаций (Ветка 2 «Мониторинг и события»). Одно событие — это правило, которое самостоятельно выполняется по расписанию: собирает данные из вашей системы, при необходимости проверяет условие и выполняет действие — отправляет письмо или вызывает внешний API. Вам не нужно открывать программу и нажимать кнопки: настроили один раз — дальше работает само.

Правило задаётся как задача коллеге, обычным текстом. В нём, по сути, описаны: источники данных, фильтры и период, метрики, логические условия (в том числе составные И / ИЛИ — внутри текста задания), расписание и действие (письмо или вызов API). После сохранения правило выполняется по расписанию: фоновый планировщик каждые полминуты проверяет, какие события «созрели», и запускает их.

Это кросс-системный модуль: события работают и для подключений 1С, и для облачных подключений iiko.

«События» и «Мониторинг» используют одно и то же хранилище правил, но разделены по назначению. Специализированные аналитические правила (на сегодня это мониторинг здоровья меню iiko) показываются только в «Мониторинге» и скрыты из «Событий». В «Событиях» вы создаёте универсальные автоматизации: отчёты, уведомления, интеграции по API.

Где находится и как открыть

Раздел доступен в боковом меню: группа Аналитика → События. Для работы должно быть выбрано подключение (1С или iiko) — без выбранного подключения раздел покажет подсказку выбрать подключение. Все события привязаны к конкретному подключению.

На главном экране — таблица всех ваших событий со столбцами Название, Тип, Расписание, Последний запуск, Статус, Действия. Сверху доступны фильтр по типу (Все типы / API / Почта), строка поиска по названию, а также кнопки Получатели, Секреты и + Новое событие.

Два режима исполнения: «с ИИ» и «детерминированный»

Каждое событие выполняется в одном из двух режимов — выбор происходит автоматически по тому, заполнено ли текстовое задание (prompt):

  • Режим «агент» (с ИИ). Включается, когда у события есть текстовое задание. ИИ-агент-оркестратор читает задание, запрашивает нужные данные через основного чат-агента, переформатирует их в деловой текст и выполняет действие (письмо или API). ИИ-вызов здесь происходит на каждом запуске — это нужно для понимания свободного текста и сборки человекочитаемого ответа.
  • Режим «прямой» (детерминированный, без ИИ). Включается, когда задания нет, а заданы конкретный запрос данных (вызов конкретного инструмента) и, при необходимости, структурное условие. Тогда событие выполняется чистым кодом: вызывается заданный инструмент данных, проверяется условие, шаблон письма/тела API заполняется значениями — без обращения к ИИ.

Текущая форма создания события построена вокруг текстового задания, поэтому события, созданные через интерфейс, работают в режиме «агент». Прямой (детерминированный) режим — это внутренний путь движка для конфигураций без задания, но с условием или запросом данных; именно он реализует принцип «скомпилировать один раз — дальше исполнять как код».

Принцип платформы: «максимум кода, минимум ИИ». ИИ применяется только там, где он действительно нужен — для понимания задания на естественном языке и формирования читаемого текста. Как только логика правила определена, периодические проверки, сравнения и условия выполняются детерминированным кодом.

Как создать событие (пошагово)

  1. Выберите подключение и откройте Аналитика → События, нажмите + Новое событие.
  2. Название и (необязательно) Описание — для себя, чтобы узнавать событие в списке.
  3. Тип — переключатель Email или API. Это и есть действие, которое выполнится в конце.
  4. Задание для AI-агента — главное поле. Опишите задачу обычным текстом: какие данные взять, за какой период, что посчитать, при каком условии и что написать в результате. Пишите как задачу коллеге.
  5. Заполните настройки действия:
  • Для Email: Кому (один или несколько адресов через запятую), Копия (CC) (необязательно), флажок Прикрепить Excel-выгрузку, и при желании раскройте Подсказки для агента (тема, шаблон письма) — поля Тема и Шаблон письма (агент может дополнить или изменить их на основе данных).
  • Для API: Метод (GET / POST / PUT / PATCH / DELETE), URL (только HTTPS), Заголовки (несколько пар ключ-значение), Body template и Timeout (сек) (от 1 до 30).
  1. Расписание — выберите частоту: Только вручную, Каждые 30 минут, Каждый час, Каждые 2 часа, Каждые 4 часа, Ежедневно, По будням (Пн-Пт), Раз в неделю, Раз в 2 недели, Раз в месяц. Для дневных, недельных и месячных вариантов укажите время (для времени доступны минуты 00, 15, 30, 45), день недели или число месяца.
  2. Перед сохранением проверьте работу кнопкой Тест (предпросмотр без отправки). Для email доступна также кнопка Отправить тест — реально отправит тестовое письмо на указанные адреса.
  3. Оставьте включённым флажок Включить сразу после сохранения и нажмите Создать.
Пример задания (поле «Задание для AI-агента»):

Запроси данные о поступлениях товаров за текущий месяц в разрезе контрагентов.
Сформируй краткий отчёт: таблица с суммами по каждому контрагенту + итого.
Если общая сумма превысила 5 млн — укажи это в теме письма.

Сохранить событие можно только при заполненных названии и задании. Для email дополнительно проверяется корректность адресов получателей и копии.

Что можно указать в правиле

  • Источники и фильтры данных — описываются текстом задания (какой объект, период, разрез, фильтры). Агент сам выбирает нужные инструменты системы.
  • Период и сравнение периодов — задаётся в тексте (например, «за текущий месяц», «в сравнении с прошлым»). Если период не указан — по умолчанию берётся текущий месяц.
  • Метрики — суммы, количества, топ-N и т. п., также формулируются в задании.
  • Логические условия, в т. ч. составные (И / ИЛИ) — выражаются текстом задания («если сумма больше 5 млн и количество документов больше 10 — отметь это»). В детерминированном (прямом) режиме поддерживается отдельное структурное условие по одному полю с операторами: больше, не меньше, меньше, не больше, равно, не равно, содержит, не пусто. Если условие не выполнено — событие помечается как «пропущено» и действие не выполняется.
  • Расписание — частота из списка пресетов (см. выше), запуск только вручную либо однократный запуск к заданному моменту.
  • Действие — письмо (с фирменным оформлением, при желании с Excel-вложением) или HTTP-запрос на внешний API.

Управление существующими событиями

В таблице у каждого события есть кнопки действий:

  • Изменить — открыть форму редактирования.
  • Запустить сейчас — выполнить немедленно, вне расписания. По итогу появится уведомление: успех, пропущено (условие не выполнено) или ошибка.
  • Остановить / Включить — приостановить или возобновить выполнение по расписанию. Остановленные события показываются приглушённо со статусом Остановлено (включённые — со статусом Активно).
  • История — журнал запусков: триггер (Расписание / Вручную / Чат), время, статус и детали (ответ, данные запроса, текст ошибки, время завершения). Хранятся последние 50 запусков.
  • Удалить — удалить событие (с подтверждением).

Столбец Последний запуск показывает дату/время и результат последнего выполнения (галочка — успех, крест — ошибка, тире — пропущено).

Получатели и Секреты

Получатели (одобренные адреса). Письма могут уходить только на адреса из списка одобренных получателей — это защита от рассылки на чужие адреса. Адреса добавляются автоматически при создании события (из полей «Кому» и «Копия») либо вручную через кнопку Получатели; в списке видно источник адреса (Автоматически или Вручную). Если адрес получателя не одобрен, выполнение события завершится ошибкой с подсказкой добавить адрес в разделе «События → Получатели».

Секреты (API-ключи). Через кнопку Секреты можно хранить токены и пароли для внешних API. Значения шифруются и обратно не показываются — в списке видны только названия ключей. В URL, заголовках и шаблонах используйте подстановку вида {{secret:имя_ключа}} — значение подставится автоматически в момент выполнения.

Заголовок API-запроса с секретом:

Authorization: Bearer {{secret:crm_token}}

Уведомления в Telegram

Отдельного типа действия «Telegram» в событиях нет. Уведомления в Telegram настраиваются через тип действия API: укажите HTTPS-URL метода Telegram Bot API (например, sendMessage) и сформируйте тело запроса с текстом сообщения. Токен бота удобно хранить в Секретах и подставлять через {{secret:...}}. Так событие по расписанию будет само отправлять сообщение в нужный чат.

Возможности для 1С

  • В режиме «агент» сбор данных идёт через основного ИИ-агента (тот же, что в чате-ассистенте) с полным доступом к данным 1С — он сам выбирает нужные инструменты по тексту задания.
  • Если включено Excel-вложение, агент дополнительно выгружает все строки данных (без агрегации) и формирует XLSX-файл, который прикладывается к письму.
  • Перед выполнением события для 1С проверяется, что туннельное подключение к вашей 1С активно. Если связь временно недоступна — событие пропускается, а получателям email (для событий типа Email) уходит уведомление, что отчёт не сформирован; следующая попытка будет по расписанию.

Возможности для iiko

  • События полностью работают и для облачных подключений iiko: при выборе подключения iiko раздел доступен так же, как для 1С.
  • Облачные подключения iiko не находятся в туннельном реестре — система обращается к ним через облачный адаптер (учётные данные берутся из защищённого хранилища). Поэтому предполётная проверка «туннель подключён» для iiko не применяется и не блокирует выполнение.
  • В детерминированном (прямом) режиме запрос данных автоматически идёт через облачный iiko-адаптер для подключений iiko и через туннель для 1С — логика правила одна и та же.
Специализированные iiko-сценарии аналитики (на сегодня — мониторинг здоровья меню) вынесены в отдельный раздел «Мониторинг» и в «Событиях» не отображаются. В «Событиях» для iiko создавайте универсальные автоматизации: отчёты, уведомления, интеграции по API.

Ограничения

  • Минимальный интервал расписания — 15 минут (короче выставить нельзя).
  • Частота выполнения на одно подключение — по умолчанию до 100 запусков в час; при превышении очередной запуск завершается ошибкой о лимите.
  • Число событий — по умолчанию до 50 на одно подключение.
  • Время выполнения одного запуска по расписанию ограничено (по умолчанию 120 секунд); при превышении запуск завершается ошибкой по тайм-ауту.
  • API-вызовы разрешены только по HTTPS; запросы во внутренние/частные сети блокируются (защита от SSRF); таймаут запроса — от 1 до 30 секунд, заголовков — не более 20.
  • Email уходит только на одобренные адреса; не более 50 получателей, ограничена длина темы и тела письма.
  • При сбое выполнения по расписанию движок автоматически делает одну повторную попытку; при повторной неудаче событие фиксируется как проблемное. Однократные события после выполнения автоматически отключаются.

Права доступа

Для работы с разделом нужно право events (модуль «События»). Оно даёт доступ к созданию, редактированию, запуску событий, к секретам и списку получателей. Ряд операций (список событий, добавление/изменение/удаление, включение/выключение, ручной запуск, журнал, чтение списка получателей) дополнительно доступны и при праве мониторинга iiko (iiko_monitoring) — это нужно для совместной работы с разделом «Мониторинг»; интерфейс «Событий» обычным пользователям мониторинга эти возможности не показывает.

Ручной запуск события (Запустить сейчас) на уровне учёта нагрузки относится к «тяжёлым» (ИИ) операциям.

Частые вопросы

  • Чем «Тест» отличается от «Отправить тест»? «Тест» делает предпросмотр: агент собирает данные и формирует текст, но письмо НЕ отправляется. «Отправить тест» реально отправляет тестовое письмо на указанные адреса.
  • Письмо ушло без таблицы — почему? По умолчанию агент даёт краткую сводку текстом. Таблица формируется, только если в задании явно просить «таблицу», «список», «выведи все», «детализацию», «по каждому» и т. п.
  • Можно ли отправлять отчёт во внешнюю систему (CRM, бот)? Да — выберите тип API, укажите HTTPS-URL и тело запроса; ключи доступа храните в «Секретах».
  • Что будет, если данных нет? Событие в режиме «агент» всё равно отправит уведомление о том, что данные пусты (для действия типа Email).

На этой странице