[Документация Yandex Cloud](../../../../index.md) > [Yandex Serverless Integrations](../../../index.md) > [Пошаговые инструкции](../../index.md) > Workflows > [Конструктор шагов рабочего процесса](index.md) > Интеграционные шаги > Трекер

# Обращение к Яндекс Трекер API

{% list tabs %}

- Консоль управления {#console}

  1. В процессе [создания](../workflow/create-constructor.md) нового рабочего процесса или [изменения](../workflow/update.md) существующего в консоли управления в блоке **Создание рабочего процесса** / **Изменение рабочего процесса** выберите `Конструктор`. 
  1. Из секции **Интеграционные шаги** в левой части экрана перетащите элемент ![tracker-icon](../../../../_assets/tracker-icon.svg) **Трекер** в нужное место рабочего процесса в окне конструктора.

      Перетаскивать шаги можно в обозначенные пунктирной линией блоки на графической схеме рабочего процесса, такие как **Добавить шаг** и т.п.
  1. В окне со схемой рабочего процесса нажмите на добавленный блок **Трекер**, чтобы выбрать его.
  1. В правой части окна на вкладке **Настройки**:

      1. В поле **Имя шага** задайте имя шага рабочего процесса.
      1. (Опционально) Если API Яндекс Трекер использует нестандартный эндпоинт, в поле **Эндпоинт** измените значение, заданное по умолчанию.
      1. В секции **OAuth-токен** укажите [OAuth-токен приложения](https://yandex.ru/support/tracker/ru/concepts/access#about_OAuth) или [секрет](../../../../lockbox/concepts/secret.md) Yandex Lockbox, в котором сохранен этот токен. Выберите:

          * `Lockbox`, чтобы хранить OAuth-токен в секрете, и в блоке **Cекрет** выберите секрет, его [версию](../../../../lockbox/concepts/secret.md#version) и ключ, в которых сохранен OAuth-токен.

              Если у вас еще нет секрета Yandex Lockbox, нажмите кнопку **Создать**, чтобы создать его.
            
          * `Текст`, чтобы хранить OAuth-токен в спецификации в виде текста, и в поле **Значение** введите OAuth-токен.

              {% note warning %}

              Хранить OAuth-токен в открытом виде в тексте спецификации небезопасно.

              {% endnote %}

      1. В поле **Организация** выберите тип организации, к которой подключен Трекер: `Yandex Cloud Organization` или `Яндекс 360`, либо оставьте значение `Не указана`, чтобы не указывать организацию.

          Если вы указали тип организации, в поле **Идентификатор организации** укажите ее идентификатор.

          Подробнее об организациях в [документации Yandex Tracker](https://yandex.ru/support/tracker/ru/enable-tracker).
      1. В поле **Действие** выберите действие, которое нужно выполнить с задачами Трекер:

          {% cut "`Получить задачу`" %}

          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) – уникальный идентификатор задачи.

          {% endcut %}

          {% cut "`Создать задачу`" %}

          1. В поле **Очередь** укажите идентификатор [очереди](https://yandex.ru/support/tracker/ru/queue-intro), в которой будет создаваться задача.
          1. В поле **Название** задайте название создаваемой задачи.
          1. (Опционально) В поле **Родительская задача** укажите ключ родительской задачи.
          1. (Опционально) В поле **Описание** задайте описание создаваемой задачи.
          1. В блоке **Добавить в спринты** при необходимости укажите [спринты](https://yandex.ru/support/tracker/ru/manager/create-agile-sprint), в которые нужно добавить задачу. Выберите:

              * `Не добавлять`, чтобы не добавлять задачу в спринты.
              * `Список`, чтобы добавить спринты по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
              * `JSON`, чтобы добавить спринты в виде JSON-массива или jq-шаблона.

          1. (Опционально) В поле **Тип** укажите [тип](https://yandex.ru/support/tracker/ru/glossary#rus-t) создаваемой задачи.
          1. (Опционально) В поле **Приоритет** укажите приоритет создаваемой задачи.
          1. В блоке **Добавить наблюдателей** при необходимости укажите пользователей, которых нужно добавить в наблюдатели создаваемой задачи. Выберите:

              * `Не добавлять`, чтобы не добавлять наблюдателей.
              * `Список`, чтобы добавить наблюдателей, указав их логины или идентификаторы по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
              * `JSON`, чтобы добавить наблюдателей, указав их логины или идентификаторы в виде JSON-массива или jq-шаблона.

          1. (Опционально) В поле **Исполнитель** укажите логин или идентификатор пользователя — исполнителя создаваемой задачи.
          1. (Опционально) В поле **Автор** укажите логин или идентификатор пользователя — автора создаваемой задачи.
          1. (Опционально) В поле **Дополнительные поля** при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) задайте дополнительные поля создаваемой задачи в формате `<Название_поля>`:`<Значение_поля>`.

          {% endcut %}

          {% cut "`Обновить задачу`" %}

          {% note info %}

          Если вы не зададите новые значения для опциональных полей, они останутся прежними.

          {% endnote %}

          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) задачи, которую нужно изменить.
          1. (Опционально) В поле **Название** задайте новое название изменяемой задачи.
          1. (Опционально) В поле **Родительская задача** укажите новый ключ родительской задачи.
          1. (Опционально) В поле **Описание** задайте новое описание изменяемой задачи.
          1. В блоке **Изменить спринты** при необходимости измените спринты, в которые входит задача. Выберите:

              * `Не изменять`, чтобы не изменять спринты, в которые входит задача.

              * `Заменить спринты`, чтобы заменить все текущие спринты, в которые входит задача, на новые. В поле **Спринт** выберите:

                  * `Список`, чтобы задать новые спринты по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы задать новые спринты в виде JSON-массива или jq-шаблона.

              * `Добавить спринт`, чтобы добавить новые спринты к тем, в которые уже входит задача. В поле **Спринт** выберите:

                  * `Список`, чтобы добавить спринты по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы добавить спринты в виде JSON-массива или jq-шаблона.

              * `Удалить спринт`, чтобы удалить задачу из спринтов. В поле **Спринт** выберите:

                  * `Список`, чтобы задать спринты, из которых нужно удалить задачу, по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы задать спринты, из которых нужно удалить задачу, в виде JSON-массива или jq-шаблона.

              * `Обновить спринт`, чтобы заменить текущие спринты, в которые входит задача, на указанные. В поле **Спринт** выберите:

                  * `Словарь`, чтобы задать правила, по которым нужно обновить спринты, при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) в формате `<Исходное_значение>`:`<Новое_значение>`, где `<Исходное_значение>` — текущий спринт, в который входит задача, `<Новое_значение>` — спринт, на который нужно заменить текущий.
                  * `JSON`, чтобы задать правила, по которым нужно обновить спринты, в виде JSON-объекта или jq-шаблона.

          1. (Опционально) В поле **Тип** задайте новый тип изменяемой задачи.
          1. (Опционально) В поле **Приоритет** задайте новый приоритет изменяемой задачи.
          1. В блоке **Изменить наблюдателей** при необходимости измените наблюдателей, которые добавлены в задачу. Выберите:

              * `Не изменять`, чтобы не изменять наблюдателей задачи.
              * `Заменить наблюдателей`, чтобы заменить всех текущих наблюдателей задачи на новых. В поле **Наблюдатель** выберите

                  * `Список`, чтобы задать новых наблюдателей, указав их логины или идентификаторы по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы задать новых наблюдателей, указав их логины или идентификаторы в виде JSON-массива или jq-шаблона.

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

                  * `Список`, чтобы добавить наблюдателей, указав их логины или идентификаторы по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы добавить наблюдателей, указав их логины или идентификаторы в виде JSON-массива или jq-шаблона.

              * `Удалить наблюдателя`, чтобы удалить наблюдателей из задачи. В поле **Наблюдатель** выберите:

                  * `Список`, чтобы задать наблюдателей, которых нужно удалить из задачи, указав их логины или идентификаторы по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * Выберите `JSON`, чтобы задать наблюдателей, которых нужно удалить из задачи, указав их логины или идентификаторы в виде JSON-массива или jq-шаблона.

              * `Обновить наблюдателя`, чтобы заменить текущих наблюдателей задачи на указанных. В поле **Наблюдатель** выберите:

                  * `Словарь`, чтобы задать правила, по которым нужно обновить наблюдателей, при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) в формате `<Исходное_значение>`:`<Новое_значение>`, где `<Исходное_значение>` — логин или идентификатор текущего наблюдателя задачи, `<Новое_значение>` — логин или идентификатор наблюдателя, на которого нужно заменить текущего.
                  * `JSON`, чтобы задать правила, по которым нужно обновить наблюдателей, в виде JSON-объекта или jq-шаблона.

          1. (Опционально) В поле **Дополнительные поля** измените дополнительные поля задачи. Для этого нажмите кнопку ![plus](../../../../_assets/console-icons/plus.svg) и в появившемся блоке настроек:
          
              1. В поле **Название поля** введите название поля, значения которого нужно изменить.
              1. В блоке **Изменить поле** выберите:

                  * `Заменить значение`, чтобы заменить все текущие значения поля на новые. В поле **Значение** выберите:

                      * `Список`, чтобы задать новые значения поля по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                      * `JSON`, чтобы задать новые значения поля в виде JSON-массива или jq-шаблона.

                  * `Добавить значение`, чтобы добавить новые значения поля к уже имеющимся. В поле **Значение** выберите:

                      * `Список`, чтобы добавить значения поля по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                      * `JSON`, чтобы добавить значения поля в виде JSON-массива или jq-шаблона.

                  * `Удалить значение`, чтобы удалить значения поля. В поле **Значение** выберите:

                      * `Список`, чтобы задать значения поля, которые нужно удалить, по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                      * `JSON`, чтобы задать значения поля, которые нужно удалить, в виде JSON-массива или jq-шаблона.

                  * `Обновить значение`, чтобы заменить текущие значения поля на указанные. В поле **Значение** выберите:

                      * `Словарь`, чтобы задать правила, по которым нужно обновить значения поля, при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) в формате `<Исходное_значение>`:`<Новое_значение>`, где `<Исходное_значение>` — текущее значение поля, `<Новое_значение>` — значение поля, на которое нужно заменить текущее.
                      * `JSON`, чтобы задать правила, по которым нужно обновить значения поля, в виде JSON-объекта или jq-шаблона.

          {% endcut %}

          {% cut "`Связать задачи`" %}

          1. В поле **Ключ первой задачи** укажите ключ первой задачи, для которой нужно создать связь.
          1. В поле **Ключ второй задачи** укажите ключ второй задачи, которую нужно связать с первой.
          1. В поле **Тип связи** укажите тип связи, которую нужно установить между задачами.

          {% endcut %}

          {% cut "`Найти задачу`" %}

          1. В блоке **Параметры поиска** выберите:

              * `Очередь`, чтобы вернуть задачи из указанной очереди. В поле **Название очереди** введите [ключ очереди](https://yandex.ru/support/tracker/ru/glossary#rus-k), задачи из которой нужно вернуть.

              * `Список ключей задач`, чтобы вернуть задачи с указанными ключами. В поле **Ключи задач** выберите:

                  * `Список`, чтобы задать ключи задач по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
                  * `JSON`, чтобы задать ключи задач в виде JSON-массива или jq-шаблона.

              * `Параметры фильтрации задач`, чтобы вернуть задачи с указанными значениями полей.

                  1. В поле **Поля для фильтрации** при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) задайте поля, по которым нужно фильтровать задачи, и значения этих полей.
                  1. (Опционально) Чтобы сортировать возвращаемые задачи, в поле **Сортировка** выберите `Включена` и укажите название поля, по которому будет выполняться сортировка. При необходимости включите опцию **Сортировка по убыванию**, чтобы сортировать задачи в порядке убывания.

              * `Фильтр на языке запросов`, чтобы вернуть задачи по указанному фильтру на [языке запросов](https://yandex.ru/support/tracker/ru/user/query-filter) Яндекс Трекер.

          1. В поле **Размер страницы** задайте количество задач, которые будут помещаться на одной [странице](https://yandex.ru/support/tracker/ru/common-format#displaying-results) с результатами поиска.
          1. В поле **Номер страницы** задайте номер страницы с результатами, которую необходимо получить.

          {% endcut %}

          {% cut "`Обновить статус задачи`" %}

          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) задачи, статус которой нужно изменить.
          1. В поле **Переход** укажите идентификатор перехода задачи.
          1. (Опционально) В поле **Дополнительные поля** при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg) задайте дополнительные поля задачи и их значения, которые нужны, чтобы выполнить переход.

          {% endcut %}

          {% cut "`Добавить комментарий`" %}

          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) задачи, в которую нужно добавить комментарий.
          1. В поле **Текст** укажите текст добавляемого комментария.
          1. (Опционально) В блоке **Призвать пользователей** задайте пользователей, которых нужно призвать в задачу в добавляемом комментарии. Выберите:

              * `Не призывать`, чтобы никого не призывать.
              * `Список`, чтобы задать логины или идентификаторы призываемых в комментарии пользователей по одному при помощи кнопки ![plus](../../../../_assets/console-icons/plus.svg).
              * `JSON`, чтобы задать логины или идентификаторы призываемых пользователей в виде JSON-массива или jq-шаблона.

          {% endcut %}

          {% cut "`Обновить комментарий`" %}

          1. В поле **Идентификатор комментария** укажите идентификатор комментария, который нужно изменить.
          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) задачи, в которой находится изменяемый комментарий.
          1. В поле **Текст** укажите измененный текст комментария.

          {% endcut %}

          {% cut "`Получить комментарий`" %}

          1. В поле **Ключ задачи** укажите [ключ](https://yandex.ru/support/tracker/ru/glossary#rus-k) задачи, комментарии из которой нужно получить.
          1. (Опционально) В поле **Идентификатор комментария** укажите идентификатор комментария, начиная с которого будут возвращены комментарии из задачи. В ответе будут возвращены комментарии, созданные позднее указанного комментария, не включая сам указанный комментарий.
          1. (Опционально) В поле **Количество комментариев** задайте максимальное количество комментариев, которые могут быть возвращены в ответе.

          {% endcut %}

      1. (Опционально) В поле **Таймаут, мс** задайте максимальное время выполнения текущего шага.
      1. (Опционально) Чтобы задать для шага собственную политику повторных попыток, разверните блок **Политика повторных попыток** и нажмите кнопку ![plus](../../../../_assets/console-icons/plus.svg) **Политика повторных попыток**. В появившейся форме:
         
         1. (Опционально) В поле **Начальная задержка, мс** задайте начальное значение задержки между повторными попытками выполнения шага.
         1. (Опционально) В поле **Скорость изменения задержки** задайте коэффициент, на который будет умножаться время задержки перед каждой повторной попыткой выполнения шага.
         1. (Опционально) В поле **Максимальная задержка, мс** задайте значение максимальной задержки между повторными попытками выполнения шага.
         1. В поле **Ошибки** выберите ошибки, для которых будут (или, наоборот, не будут) сделаны повторные попытки выполнения шага.
         
             Подробная информация о возможных ошибках приведена в разделе [Возможные коды ошибок](../../../concepts/workflows/execution.md#errors).
         1. (Опционально) В поле **Количество повторных попыток** задайте максимальное количество повторных попыток выполнения шага.
         1. В поле **Режим выбора ошибок** выберите:
         
             * `INCLUDE` — чтобы делать для шага повторные попытки выполнения при возникновении ошибок, указанных в поле **Ошибки**.
             * `EXCLUDE` — чтобы делать для шага повторные попытки выполнения при возникновении любых ошибок, за исключением ошибок, указанных в поле **Ошибки**.
         
         Если вы хотите удалить политику повторных попыток, ранее созданную для шага, в строке **Политика повторных попыток** нажмите ![ellipsis](../../../../_assets/console-icons/ellipsis.svg) и выберите **Удалить**.
         
         Если для шага не настроена собственная политика повторных попыток, к нему будет применяться политика повторных попыток, [заданная для всего рабочего процесса](setup-restart-policy.md).
  1. (Опционально) Перейдите на вкладку **Вход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации [состояния рабочего процесса](../../../concepts/workflows/workflow.md#state), которое передается в шаг.
  1. (Опционально) Перейдите на вкладку **Выход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации выходных данных шага, которые добавляются в [состояние рабочего процесса](../../../concepts/workflows/workflow.md#state).
  1. (Опционально) [Добавьте](setup-catch-rule.md) для создаваемого шага [правило перехода по ошибкам](../../../concepts/workflows/yawl/index.md#catchrule), которые могут возникать во время выполнения этого шага.

{% endlist %}

## Полезные ссылки {#see-also}

* [Спецификация YaWL](../../../concepts/workflows/yawl/integration/tracker.md)
* [Создать рабочий процесс с помощью конструктора](../workflow/create-constructor.md)
* [Изменить рабочий процесс](../workflow/update.md)