Представьте, что задачи в Jira самостоятельно назначают исполнителей в зависимости от статуса; тестировщик получает пинг сразу, как задача готова к тесту; еженедельный отчёт по задачам приходит в Telegram одним кликом. Мы добились этого с помощью Jira Automation и Telegram Bot API, полностью избавившись от рутинных отчётов и ускорив работу команды.
Чтобы освободить команду от рутины, я возглавил инициативу по внедрению автоматизации — о её результатах расскажу в этой статье. Стоит сказать, что до этого я был обычным пользователем Jira, без глубокого погружения в её внутренние возможности. Тем интереснее этот кейс оказался для меня!
Егор Наумов, младший менеджер проектов
В нашей команде процесс еженедельной подготовки отчета выглядел так:
менеджер открывает задачи Jira из текущего спринта,
переносит их в Telegram, так как это наш основной мессенджер для общения,
вписывает статус и дату релиза.
Этот процесс отнимал значительное время: можно было случайно пропустить задачу или перепутать статусы, а за несколько часов до отправки что‑то могло измениться. Также у нас было еще несколько мелких проблем, а именно каждый день в 11:00 у нас проходит дейлик, о котором постоянно нужно напоминать, так как обязательно кто‑то о нем забудет. Также тестировщики сами мониторили доску/Telegram в поисках задач, готовых к тесту, а назначение исполнителей происходило вручную. В итоге часть задач могла долго висеть готовой к тестированию просто потому, что кто‑то не увидел сообщение в телеграмме или был указан неверный исполнитель.
Постепенно мы начали внедрять автоматизацию: начали с того, что будем использовать каждый день — напоминание о дейли и о готовности задачи к тесту. Для начала я покажу вам триггер с напоминанием о дейлике: сам по себе он достаточно простой — запускается каждый день за полчаса до начала, тегая всех участников команды и прикладывая ссылку на встречу:


Еще один триггер — уведомление тестировщика о том, что задачу можно брать в тест. Изначально разработчик сам писал в чат, когда задача была готова к тестированию, тегал менеджера, который в свою очередь писал тестировщику. Такая цепочка достаточно длинная — взялись за оптимизацию этого процесса:

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

Это уже решило половину проблемы и избавило разработчиков от необходимости писать в чат по каждой задаче. Но осталась вторая часть — необходимость передать задачу тестировщику. В этой связи триггер был улучшен: теперь он проверяет человека, который указан в поле «Тестировщик» в карточке задачи и в зависимости от его значения уведомляет нужного человека. Если же это поле пустое, то уведомление приходит мне, как менеджеру.


В завершение моей дебютной статьи расскажу вам о самом сложном триггере, который я настраивал за последнее время.
Недавно у нас изменился формат еженедельного отчёта: теперь нужно не просто перечислить задачи со спринта, а построить структуру «родитель → дочерние», включить в отчёт и родительскую задачу, и все её дочерние, указать их текущие статусы и даты релиза. Раньше такой отчет я бы сел собирать руками и потратил несколько часов, но захотелось попробовать все это максимально автоматизировать. Для этого требовалось использовать набор smart values и вложенных условий, с которыми раньше я практически не сталкивался.
Я изучил как получать список подзадач, группировать их по родительским ключам, форматировать даты и аккуратно вкладывать данные в единое сообщение. В результате получился webhook, который отправляет отчет в Telegram одним кликом.

{
"chat_id": "<айди чата>",
"message_thread_id": <айди топика>,
"parse_mode": "html",
"text": "{{#lookupIssues}}
?<b><a href=\"https://media-life.atlassian.net/browse/{{key}}\">{{key}} - {{summary}}
</a></b>\n
{{#issuelinks.outwardIssue}}
{{#if(not(equals(project.key, "MAD")))}}
• {{key}} - {{status.name}} - {{fields.priority.name}} - {{if(dueDate.format("dd.MM.yyyy").isNotEmpty(), dueDate.format("dd.MM.yyyy"), "null")}}{{/}}
{{/}}\n
{{/}}"
}
{{#lookupIssues}} … {{/lookupIssues}} — внешний цикл, который проходит по списку задач, полученных в предыдущем шаге с помощью блока «Найти задачи».
<b><a href=»…/{{key}}»>{{key}} — {{summary}}</a></b> — формирует жирную ссылку на родительскую задачу по её ключу и краткому описанию.
{{#issuelinks.outwardIssue}} … {{/issuelinks.outwardIssue}} — для каждой родительской задачи проходит ещё один цикл по её «внешним» связям, тк родительская задача связана с дочерними связью is parent of.
Внутри этого цикла:
not(equals(project.key, «MAD»)) — пропускает связанные задачи, если они принадлежат проекту с ключом MAD (тк это доска дизайна и нам не нужна)
{{key}} — {{status.name}} — {{fields.priority.name}} — выводим ключ задачи, её статус и приоритет.
{{if(dueDate.format(»dd.MM.yyyy»).isNotEmpty(), dueDate.format(»dd.MM.yyyy»), «null»)}} — форматируем поле дедлайна в dd.MM.yyyy; если оно пустое, подставляем строку «null».
В конечном итоге получаем следующий результат:

На данный момент мы настроили более 10 автоматических триггеров, которые закрывают наши основные потребности и боли — от напоминаний о дейликах до отчётов одним кликом. Так мы сократили время на организационные задачи в пять раз, ускорили переход между этапами и сделали всю работу прозрачной. В следующей статье я подробно расскажу, как создавать и настраивать такие триггеры в Jira Automation, чтобы вы могли повторить наш опыт.
Отдельная благодарность моему руководителю Павлу Шульцу за поддержку и идеи при разработке автоматизаций!
a3or
Прям умиляют напоминалки в ТГ по расписанию))) Неужели взрослый человек не может поставить себе будильник на телефон? Это же изи решение, да ещё и гибкое донельзя, хочешь - ставь ровно в начало, хочешь - за 5 минут ДО, а хочешь - каждые 5 минут за час ДО, чтобы точно не проспать. Зачем это, простите, подтирание попок за взрослыми людьми?
egor_n Автор
Полностью согласен на счет будильника, правда мне больше нравятся пуш уведомления из календаря. Этот триггер не что-то обязательное, а скорее просто помощник для удобства. Мне важно, чтобы ссылка на дейлик всегда была под рукой и не терялась в потоке сообщений. Конечно, можно было бы просто закрепить её, но там уже висит более важная информация. А раз можно быстро и без усилий автоматизировать мелочь, почему бы не сделать себе жизнь чуть проще?)