Представьте, что задачи в Jira самостоятельно назначают исполнителей в зависимости от статуса; тестировщик получает пинг сразу, как задача готова к тесту; еженедельный отчёт по задачам приходит в Telegram одним кликом. Мы добились этого с помощью Jira Automation и Telegram Bot API, полностью избавившись от рутинных отчётов и ускорив работу команды.

Чтобы освободить команду от рутины, я возглавил инициативу по внедрению автоматизации — о её результатах расскажу в этой статье. Стоит сказать, что до этого я был обычным пользователем Jira, без глубокого погружения в её внутренние возможности. Тем интереснее этот кейс оказался для меня!

Егор Наумов, младший менеджер проектов

В нашей команде процесс еженедельной подготовки отчета выглядел так:

  • менеджер открывает задачи Jira из текущего спринта,

  • переносит их в Telegram, так как это наш основной мессенджер для общения,

  • вписывает статус и дату релиза.

Этот процесс отнимал значительное время: можно было случайно пропустить задачу или перепутать статусы, а за несколько часов до отправки что‑то могло измениться. Также у нас было еще несколько мелких проблем, а именно каждый день в 11:00 у нас проходит дейлик, о котором постоянно нужно напоминать, так как обязательно кто‑то о нем забудет. Также тестировщики сами мониторили доску/Telegram в поисках задач, готовых к тесту, а назначение исполнителей происходило вручную. В итоге часть задач могла долго висеть готовой к тестированию просто потому, что кто‑то не увидел сообщение в телеграмме или был указан неверный исполнитель.

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

 Пример триггера, который автоматически запускается с понедельника по четверг в 10:30 и отправляет сообщение в Telegram-чат.
Пример триггера, который автоматически запускается с понедельника по четверг в 10:30 и отправляет сообщение в Telegram-чат.
 Пример веб-запроса: в URL указывается токен вашего бота, метод — POST, в теле передаются пользовательские данные. В поле chat_id указывается ссылка на чат, а в message_thread_id — идентификатор топика (если он есть). Также можно добавить ссылку на встречу и отметить необходимых участников.
Пример веб-запроса: в URL указывается токен вашего бота, метод — POST, в теле передаются пользовательские данные. В поле chat_id указывается ссылка на чат, а в message_thread_id — идентификатор топика (если он есть). Также можно добавить ссылку на встречу и отметить необходимых участников.

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

 Такое сообщение легко терялось, так как за день подобных уведомлений могло приходить несколько, и всё они попадали в общий чат, где параллельно обсуждались рабочие вопросы и прочие темы.
Такое сообщение легко терялось, так как за день подобных уведомлений могло приходить несколько, и всё они попадали в общий чат, где параллельно обсуждались рабочие вопросы и прочие темы.

Когда мы впервые настроили этот триггер, работал он достаточно просто: задача переходит в статус «К тестированию», в 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, чтобы вы могли повторить наш опыт.

Отдельная благодарность моему руководителю Павлу Шульцу за поддержку и идеи при разработке автоматизаций!

Комментарии (2)


  1. a3or
    06.10.2025 13:23

    Прям умиляют напоминалки в ТГ по расписанию))) Неужели взрослый человек не может поставить себе будильник на телефон? Это же изи решение, да ещё и гибкое донельзя, хочешь - ставь ровно в начало, хочешь - за 5 минут ДО, а хочешь - каждые 5 минут за час ДО, чтобы точно не проспать. Зачем это, простите, подтирание попок за взрослыми людьми?


    1. egor_n Автор
      06.10.2025 13:23

      Полностью согласен на счет будильника, правда мне больше нравятся пуш уведомления из календаря. Этот триггер не что-то обязательное, а скорее просто помощник для удобства. Мне важно, чтобы ссылка на дейлик всегда была под рукой и не терялась в потоке сообщений. Конечно, можно было бы просто закрепить её, но там уже висит более важная информация. А раз можно быстро и без усилий автоматизировать мелочь, почему бы не сделать себе жизнь чуть проще?)