Автоматизация

Правила, которые действуют сами: события, условия на QQL, действия, проверка без записи, расписания и внешние вызовы.

Обновлено: 2026-08-31

Правило автоматизации отвечает на три вопроса: когда (событие), при каком состоянии (условие) и что сделать (действия). Каждое автоматическое изменение записывается в журнал с именем правила и номером ревизии: у всего, что произошло само, есть подпись.

Правило и его область

Правило принадлежит компании и называет свою область: перечень проектов или все проекты сразу. У правила есть владелец и аккаунт правила: права проверяются по этому аккаунту в момент, когда правило действует. По умолчанию это создатель; администратор компании может заменить его на сервисный аккаунт, и только на сервисный: правило, работающее от имени уволившегося, перестает работать вместе с ним, а сервисный аккаунт переживает людей.

Создавать правила может администратор хотя бы одного проекта. Редактировать правило может тот, кто администрирует каждый проект его области; правило на все проекты редактируют только администраторы компании. Видит правило тот, кому видна вся его область.

События

СобытиеКогда наступает
Задача созданаПоявилась новая задача.
Задача измененаИзменились поля задачи. Можно сузить: срабатывать только на перечисленные поля.
Задача переведенаЗадача сменила статус. Можно сузить: из каких статусов и в какие.
Комментарий добавленК задаче добавили комментарий.
По расписаниюНаступило время из расписания правила.

Событие говорит об изменении: какие поля изменились, из какого статуса в какой. Условие говорит о настоящем: каким состояние является сейчас. «Статус сменился с X» это настройка события; «статус равен Y» это условие.

Условия

Условие пишется на QQL, тем же языком, что и поиск, с теми же полями и функциями. Пустое условие означает «на каждое подходящее событие». Условие проверяется глазами аккаунта правила: задача, которую этот аккаунт не видит, никогда не подходит, поэтому правило не может тронуть то, что его аккаунту не показали бы.

Условие с ошибкой не публикуется: разбор происходит при публикации, и сообщение указывает на место в запросе.

Действия

Действия делятся на два вида, и это различие стоит понимать до того, как оно понадобится:

Выполняются внутри действия пользователя: назначить исполнителя, установить поле, добавить метку. Они входят в само изменение: если такое действие не может выполниться, отменяется и изменение, которое разбудило правило. Человек видит отказ сразу, на экране.

Выполняются после: добавить комментарий, перевести статус, уведомить человека, связать задачи, записать время, вызвать внешний адрес. Они выполняются после того, как изменение сохранено, и их сбой никогда не отменяет ничью работу: несостоявшийся комментарий это несостоявшийся комментарий, а не потерянная правка.

Значения проверяются при публикации: правило, пишущее в поле выбора несуществующий вариант, не публикуется, а не портит данные молча при первом событии. Длительность для записи времени разбирается тогда же: «полтора часа» отклоняется при публикации, 1h 30m принимается.

Черновики, публикация, ревизии

Правило рождается черновиком: выключенным и никогда не действующим. Действует только опубликованное: публикация замораживает содержимое в ревизию, и исполнение читает только ревизии. Отредактированное, но не опубликованное изменение не действует, даже у включенного правила: оно действует голосом последней публикации.

Ревизии не переписываются. Возврат к старой ревизии это новая публикация со старым содержимым: история только растет. Каждая запись в журнале называет ревизию, которой правило действовало, и это остается проверяемым всегда, даже после удаления правила: удаление мягкое, журнал и ревизии остаются читаемыми.

Проверка

Проверка это главный экран раздела: правило прогоняется по настоящим задачам, не записывая ничего. Тот же разбор условия, те же права, тот же порядок действий; вместо выполнения собирается план: какие задачи подошли, какие действия были бы выполнены, каким был бы внешний вызов, вплоть до тела запроса с замаскированным секретом. Какие задачи не подошли, тоже видно.

Проверить можно и черновик: это единственный способ увидеть, что правило будет делать, до того, как оно начнет. Проверка ограничена, потому что откатываемый прогон стоит как настоящая работа: до 50 задач за прогон, до 6 прогонов в минуту на человека, до 10 секунд на прогон.

Расписания

Правило по расписанию не ждет события: оно называет собственную выборку на QQL, время и повторение: ежедневно, еженедельно по дням недели, ежемесячно по числам.

  • Часовой пояс принадлежит правилу, а не компании. В распределенной компании «каждый понедельник в 9:00» это разное время для разных правил; пояс компании лишь подсказка при создании.
  • Пропущенное не догоняется. Если продукт был недоступен в назначенное время, правило выполнится в следующее назначенное время один раз. Проснувшись, оно не наверстывает пропущенные запуски: три пропущенных понедельника не означают три прогона во вторник.
  • Один запуск обрабатывает до 500 задач. Если выборка шире, правило обрабатывает 500 и помечает, сколько осталось; после трех подрезанных запусков подряд владельцу приходит письмо.
  • Каждая задача выборки обрабатывается в собственной транзакции: сбой на одной задаче записывается и считается, остальная выборка продолжается.
  • Пока предыдущий запуск не закончился, назначенное время пропускается с записью в журнал: правило не выполняется рядом с самим собой.

Каскады и их предел

Действие правила может разбудить другие правила: перевод статуса это событие «задача переведена». Такая цепочка ограничена:

  • Правило не встречает собственных последствий: в пределах одной цепочки каждое правило срабатывает не больше одного раза. Замкнувшаяся петля обрывается с записью в журнал.
  • Глубина каскада ограничена: по умолчанию 3. Дальше цепочка останавливается с записью в журнал.
  • Частота ограничена: по умолчанию 60 срабатываний в минуту на компанию. Сверх этого срабатывания откладываются в отказ с записью.

Вся цепочка несет один идентификатор корреляции: в журнале видно, что чем было разбужено и на какой глубине.

Внешние вызовы

Правило может отправить данные за пределы Quevell. Это устроено так, чтобы «куда» и «что» были решениями компании, а не правила:

  • Разрешенные адреса. Вызовы идут только на хосты из списка компании, который ведет администратор компании. Пустой список означает, что внешние вызовы выключены. Удаление адреса из списка не удаляет правила: их вызовы начинают отклоняться, с записью в журнал.
  • Только HTTPS. Адрес всегда собирается как https://хост/путь; вызов по открытому протоколу невыразим. Методы: POST, PUT, PATCH.
  • Уходит только перечисленное. Правило называет поля, которые покидают продукт: key, type, status, link, summary, priority и кастомные поля по имени. «Вся задача» не вариант: ничего не уходит по умолчанию.
  • Секрет авторизации хранится зашифрованным, в интерфейсе всегда показывается маской и не записывается в журнал. Заменить его можно, увидеть снова нельзя.

Тело запроса фиксированного формата, версия 1: version, event, sentAt, idempotencyKey, rule (идентификатор, имя, ревизия) и issue ровно с перечисленными полями. Ограничения: 5 секунд на вызов, 64 КБ на запрос и на читаемую часть ответа. В журнал записывается факт вызова и статус ответа; тело ответа не записывается никогда.

Автоотключение

Правило, чьи отложенные действия падают подряд, выключается само: по умолчанию после 5 сбоев подряд. Это записывается в журнал, а в списке правил такое правило помечено как выключенное продуктом, а не рукой.

Что делать: открыть журнал правила, найти причину последних сбоев, исправить и включить правило заново. Включение обнуляет счетчик сбоев.

Журнал

Журнал это одна лента: срабатывания и отказы вместе. Каждая запись называет правило, ревизию, задачу, глубину каскада и идентификатор корреляции. Отказы записываются с причиной: петля оборвана, глубина исчерпана, частота превышена, задача не видна аккаунту правила, правило выключено.

Журнал одного правила лежит внутри правила и виден каждому, кто видит само правило. Лента по всей компании это отдельное право: его выдают, по умолчанию оно есть у администраторов компании.

Ограничения

Ограничения принадлежат компании и изменяются администратором компании. Значения по умолчанию:

ОграничениеПо умолчанию
Правил в компании100
Действий в правиле10
Срабатываний в минуту на компанию60
Глубина каскада3
Автоотключение после сбоев подряд5
Задач за прогон проверки50
Прогонов проверки в минуту на человека6
Задач за один запуск по расписанию500
Время на внешний вызов5 секунд