---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
  - property: og:type
    content: article
  - property: article:section
    content: Платформа плагинов
  - property: og:title
    content: Слоты
  - property: article:tag
    content: Сборник инструкций
alternate:
  - https://yandex.ru/support/tracker/en/plugins/slots/index.md
  - https://yandex.ru/support/tracker/ru/plugins/slots/index.md
  - href: https://yandex.ru/support/tracker/ru/plugins/slots/index.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/support/tracker/ru/llms.txt?revision=r22077802
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt?revision=r22077802


# Слоты

Место, в котором будет показан плагин, а также механизм его вызова, например кнопка или часть формы, определяется слотом. Слот указывается в манифесте. Плагин можно одновременно интегрировать в несколько слотов.

## Контекст запуска плагина {#launch-context}

Контекст запуска плагина определяется слотом, в котором он находится. Контекст содержит следующую информацию:

- Текущая тема Трекера.
- Текущий язык Трекера.
- Контекст слота — это данные из окружения страницы, в которой запущен плагин. Например, в слоте `issue.action` вернется информация по открытому тикету. Формат контекста максимально приближен к типам публичного API.

Уровень контекста слота задается параметром `contextLevel` в `manifest.json`. Подробнее об уровнях контекста — в разделе [Уровни контекста слота](https://yandex.ru/support/tracker/ru/plugins/common.md#context-levels).

## Доступные точки интеграции {#slots}

{% note info "Расширение доступных точек интеграции" %}

Мы постоянно добавляем доступные точки интеграции. Вы можете оставить заявку на добавление нового слота через  обращение в саппорт .

{% endnote %}

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

Прежде чем выбирать слот, ответьте на вопрос: **В какой момент у пользователя возникает потребность в вашем плагине?**

{% cut "Блок-схема как выбрать слот для плагина" %}

![schema](../../\_assets/plugins/slots/schema.png =700x){.border-yes}

{% endcut %}

### Глобальные {#global}

| Слот                         | Описание                                               | Формат окна                                             | Контекст слота  |
| :--------------------------- | :----------------------------------------------------- | :------------------------------------------------------ | :-------------- |
| **navigation**               | Глобальная панель навигации слева, раздел **Приложения** | Плагин открывается отдельной страницей и имеет свой url | Пустой объект   |
| **attachment.viewer.action** | Галерея. Кнопка в действиях                            | Модальное окно                                          | Данные вложения |
| **dock**                     | Панель кнопок в правом нижнем углу. Кнопка плагина     | Выдвижная панель справа                                 | Путь текущей страницы |

**Плагин как самостоятельный инструмент — navigation**

Пользователь приходит в Трекер не работать с конкретным тикетом, а **использовать ваш инструмент**: импортировать данные, посмотреть отчет, провести массовую операцию. Он идет в левую панель — туда, где **Задачи**, **Проекты**, **Дашборды**.

Это ваш слот, если:

- Плагин решает задачу независимо от конкретного тикета или очереди.

- Пользователь возвращается к нему регулярно или это точка входа в отдельный рабочий процесс.

- Результат работы — список, отчет или форма, а не действие над сущностью.

**Не этот слот, если** плагин всегда нужен в контексте тикета — пользователь не будет искать его в навигации.

**Формат:** отдельная страница со своим URL. Это самый просторный формат — можно строить полноценный интерфейс.

![image.png](../../\_assets/plugins/slots/navigation.png =800x){.border-yes}

**Действие над вложением — attachment.viewer.action**

Пользователь смотрит на файл в галерее вложений и хочет **что-то с ним сделать**: отредактировать изображение, распознать текст, конвертировать. Он находится внутри просмотрщика и не хочет из него уходить.

Это ваш слот, если:

- Плагину нужен конкретный файл — его тип, содержимое, URL.

- Действие логически связано с просмотром файла, а не с тикетом в целом.

![image.png](../../_assets/plugins/slots/attach-action.png =779x){.border-yes}

**Инструмент под рукой на любой странице — dock**

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

Это ваш слот, если:

- Плагин нужен на любой странице Трекера, а не в контексте одной сущности.

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

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

**Не этот слот, если** плагин выполняет короткое действие над конкретной сущностью — для этого есть `issue.action` и другие слоты действий.

**Формат:** выдвижная панель справа на всю высоту экрана; страница под ней остаётся доступной. Подробнее — в инструкции [Как создать плагин для боковой панели](https://yandex.ru/support/tracker/ru/plugins/slots/dock.md).

### Создание задачи {#issue-creation}

Слот `issue.create.form` добавляет карточку плагина в выбор формы создания задачи. Пользователь выбирает очередь, затем открывает плагин как альтернативный способ создания задачи. Для боковой панели используется отдельный слот `drawer.issue.create.form`. Оба слота и их контекст описаны в инструкции [Добавить плагин в выбор формы создания задачи](https://yandex.ru/support/tracker/ru/plugins/slots/issue-create-form.md).

### Список задач {#issues-list}

#|
|| **Слот** | **Место встройки** | **Контекст** ||
|| `issues.view` | Переключатель представлений над результатами глобального списка задач и сохраненного фильтра | Примененные условия поиска задач ||
|#

При выборе слота интерфейс плагина занимает область результатов, а панель фильтра остается доступной. [Настройка и контракт слота](https://yandex.ru/support/tracker/ru/plugins/slots/issues-view.md).

### Страница тикета {#issue-page}

| Слот                     | Описание                                           | Формат окна                                                            | Контекст слота          |
| :----------------------- | :------------------------------------------------- | :--------------------------------------------------------------------- | :---------------------- |
| **issue.action**         | Меню **Действия** справа сверху на странице задачи. | Модальное окно                                                         | Данные открытого тикета |
| **issue.block**          | Область под описанием в тикете.                    | Плагин встраивается в область ниже связей тикета в раскрываемой секции | Данные открытого тикета |
| **issue.tab**            | Плагин в виде таба на странице тикета.             | Плагин встраивается в список табов. Имеет свой url в контексте тикета.   | Данные открытого тикета |
| **issue.comment.action** | Действия с комментарием.                           | Модальное окно                                                         | Данные комментария      |
| **issue.editor.action**  | Редактор текста. Кнопка в нижней панели редактора. | Всплывающее окно с привязкой к кнопке                                  | Данные открытого тикета |

{% note info "Слоты для боковой панели тикета" %}

Тикет может открываться не только на отдельной странице, но и в боковой панели поверх текущего экрана. В боковой панели меньше места, поэтому для нее предусмотрены отдельные слоты:

| Слот                       | Аналог на странице тикета |
| :------------------------- | :------------------------ |
| **drawer.issue.action**    | **issue.action**              |
| **drawer.issue.tab**       | **issue.tab**                 |
| **drawer.issue.block**     | **issue.block**               |

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

{% endnote %}

**Пользователь хочет совершить действие с тикетом — issue.action**

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

Это ваш слот, если:

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

- Результат действия не нужно постоянно видеть на странице.

- Сценарий линейный: запустил → получил результат → закрыл.

**Не этот слот, если** пользователь должен видеть данные плагина каждый раз, когда открывает тикет — тогда смотрите `issue.block`.

**Формат:** модальное окно, внутри один сценарий

![image.png](../../\_assets/plugins/slots/issue-action.png =800x){.border-yes}

**Данные плагина нужны при каждом открытии тикета — issue.block**

Пользователь открывает тикет и **контекст из вашего плагина помогает ему работать** — он видит статус деплоя, связанные PR, данные из внешней системы. Ему не нужно ничего запускать, данные просто есть.

Это ваш слот, если:

- Плагин показывает состояние или данные, а не выполняет действие.

- Информация актуальна всегда, когда пользователь смотрит на тикет.

- Нет явного триггера запуска — плагин полезен сам по себе.

**Не этот слот, если** данные нужны редко или плагин требует ввода параметров перед показом — тогда смотрите `issue.action` или `issue.tab`.

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

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

![image.png](../../\_assets/plugins/slots/issue-block.png =600x){.border-yes}

**Сложный инструмент внутри тикета — issue.tab**

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

Это ваш слот, если:

- Контент плагина не помещается в блок или модалку без потери удобства.

- Пользователю нужно переключаться между плагином и страницей тикета.

- Есть собственная логика внутри: фильтры, список, несколько состояний.

**Не этот слот, если** функциональность простая — таб создает ощущение, что там будет что-то большое. Пустой или почти пустой таб выглядит как ошибка.

**Формат:** встроенная область в контексте тикета.

![image.png](../../\_assets/plugins/slots/issue-tab.png =600x){.border-yes}

**Действие применяется к конкретному комментарию — issue.comment.action**

Пользователь читает комментарий и хочет **что-то с ним сделать**: создать задачу, перевести, отправить. Он потянется к «⋯» рядом с комментарием — это естественное место для действий с конкретным сообщением.

Это ваш слот, если:

- Плагину нужен текст, автор или дата конкретного комментария.

- Действие имеет смысл только для одного комментария, а не для тикета в целом.

**Формат:** модальное окно, внутри один сценарий

![image.png](../../\_assets/plugins/slots/issue-action.png =800x){.border-yes}

**Действие вставляет контент в редактор — issue.editor.action**

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

Это ваш слот, если:

- Плагин генерирует или подбирает текст, который нужно вставить в поле ввода.

- Результат работы плагина — фрагмент текста или разметки, а не отдельное действие над тикетом.

- Пользователь запускает плагин в момент написания, а не после.

**Не этот слот, если** плагин выполняет действие над тикетом целиком — тогда смотрите `issue.action`.

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

![image.png](../../\_assets/plugins/slots/issue-editor-action.png =600x){.border-yes}

### Страница очереди {#queue-page}

#|
|| **Слот** | **Описание** | **Формат окна** | **Контекст слота** ||
|| **queue.action** | Меню **Действия** справа сверху на странице очереди. | Модальное окно | Данные открытой очереди ||
|| **queue.tab** | Плагин в виде таба на странице очереди. | Плагин встраивается в список табов. Имеет свой url в контексте очереди. | Данные открытой очереди ||
|| **queue.admin.tab** | Раздел **Плагины** в боковом меню настроек очереди. | Вкладка со своим URL в настройках очереди | Данные открытой очереди ||
|#

**Пользователь хочет совершить действие с очередью — queue.action**

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

Это ваш слот, если:

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

- Результат действия не нужно постоянно видеть на странице.

- Сценарий линейный: запустил → получил результат → закрыл.

**Формат:** модальное окно, внутри один сценарий

![image.png](../../\_assets/plugins/slots/queue-action.png =750x){.border-yes}

**Сложный инструмент внутри очереди — queue.tab**

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

Это ваш слот, если:

- Контент плагина не помещается в модалку без потери удобства.

- Пользователю нужно переключаться между плагином и страницей очереди.

- Есть собственная логика внутри: фильтры, список, несколько состояний.

**Не этот слот, если** функциональность простая — таб создает ощущение, что там будет что-то большое. Пустой или почти пустой таб выглядит как ошибка.

**Формат:** встроенная область в контексте очереди.

![image.png](../../\_assets/plugins/slots/queue-tab.png =600x){.border-yes}

**Слот в настройках очереди**

Слот `queue.admin.tab` добавляет вкладку в раздел **Плагины** в настройках очереди.

При `contextLevel: "basic"` в `slotContext.entityId` передается ключ очереди, при `"full"` — данные очереди в `slotContext`.

### Автоматизации {#automation}

| Слот                      | Описание                                                                                                                           | Формат окна                                                        | Контекст слота                 |
| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------- | :----------------------------- |
| **trigger.create.action** | Страница триггера. Создание действия. UI-плагины для упрощения формы создания вебхука, не имеют дополнительной логики.             | Появляется новый тип действия, форму действия предоставляет плагин | Ключ очереди                   |
| **trigger.edit.action**   | Страница триггера. Редактирование действия. UI-плагины для упрощения формы редактирования вебхука, не имеют дополнительной логики. | Появляется новый тип действия, форму действия предоставляет плагин | Ключ очереди и данные действия |

**Новый тип действия в триггере — trigger.create.action \+ trigger.edit.action**

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

Это ваши слоты, если:

- Плагин добавляет новый тип автоматического действия, а не работает с пользователем в реальном времени.

- Нужна форма настройки: пользователь задает параметры один раз при создании триггера.

**Важно:** эти два слота почти всегда идут в паре. Если вы даете возможность создать действие, пользователь должен уметь его и отредактировать — иначе при изменении триггера он увидит пустую форму.

**Формат:** встроенная форма внутри страницы триггера. Стилистически должна выглядеть как нативная часть автоматизации, без лишних рамок и заголовков.

![image.png](../../\_assets/plugins/slots/trigger-create.png =700x){.border-yes}

![image.png](../../\_assets/plugins/slots/trigger-edit.png =700x){.border-yes}

### Проект {#project}

| Слот                      | Описание                                                           | Формат окна                                                             | Контекст слота |
| :------------------------ | :----------------------------------------------------------------- | :---------------------------------------------------------------------- | :------------- |
| **project.action**        | Страница проекта. Кнопка **Меню проекта**                            | Модальное окно                                                          | Данные проекта |
| **project.page-tab**      | Вкладка в верхней части страницы проекта.                          | Плагин встраивается в верхний список вкладок. На полной странице имеет свой URL. | Данные проекта |
| **project.tab**           | Плагин в виде таба на странице проекта.                            | Плагин встраивается в список табов. Имеет свой url в контексте проекта. | Данные проекта |
| **project.block**         | Область под описанием проекта.                                     | Плагин встраивается в область ниже связей проекта в раскрываемой секции | Данные проекта |
| **project.editor.action** | Редактор комментариев в проекте. Кнопка в нижней панели редактора. | Всплывающее окно с привязкой к кнопке                                   | Данные проекта |

{% note info "Слоты для боковой панели проекта" %}

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

| Слот                       | Аналог на странице проекта |
| :------------------------- | :-------------------------- |
| **drawer.project.action**  | **project.action**          |
| **drawer.project.page-tab** | **project.page-tab**        |
| **drawer.project.tab**     | **project.tab**             |
| **drawer.project.block**   | **project.block**           |

Слоты `project.page-tab` и `drawer.project.page-tab` получают тот же контекст, что и `project.tab`.

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

{% endnote %}

### Портфели {#portfolios}

| Слот                        | Описание                                                            | Формат окна                                                              | Контекст слота  |
| :-------------------------- | :------------------------------------------------------------------ | :----------------------------------------------------------------------- | :-------------- |
| **portfolio.action**        | Страница портфеля. Кнопка **Меню портфеля проектов**                  | Модальное окно                                                           | Данные портфеля |
| **portfolio.page-tab**      | Вкладка в верхней части страницы портфеля.                          | Плагин встраивается в верхний список вкладок. На полной странице имеет свой URL. | Данные портфеля |
| **portfolio.tab**           | Плагин в виде таба на странице портфеля.                            | Плагин встраивается в список табов. Имеет свой url в контексте портфеля. | Данные портфеля |
| **portfolio.block**         | Область под описанием портфеля.                                     | Плагин встраивается в область ниже связей портфеля в раскрываемой секции | Данные портфеля |
| **portfolio.editor.action** | Редактор комментариев в портфеле. Кнопка в нижней панели редактора. | Всплывающее окно с привязкой к кнопке                                    | Данные портфеля |

{% note info "Слоты для боковой панели портфеля" %}

Портфель может открываться не только на отдельной странице, но и в боковой панели поверх текущего экрана. В боковой панели меньше места, поэтому для нее предусмотрены отдельные слоты:

| Слот                         | Аналог на странице портфеля |
| :--------------------------- | :--------------------------- |
| **drawer.portfolio.action**  | **portfolio.action**         |
| **drawer.portfolio.page-tab** | **portfolio.page-tab**       |
| **drawer.portfolio.tab**     | **portfolio.tab**            |
| **drawer.portfolio.block**   | **portfolio.block**          |

Слоты `portfolio.page-tab` и `drawer.portfolio.page-tab` получают тот же контекст, что и `portfolio.tab`.

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

{% endnote %}

### Цели {#goals}

| Слот                   | Описание                                                        | Формат окна                                                                       | Контекст слота |
| :--------------------- | :-------------------------------------------------------------- | :-------------------------------------------------------------------------------- | :------------- |
| **goal.action**        | Страница цели. Кнопка **Меню цели**                               | Модальное окно                                                                    | Данные цели    |
| **goal.page-tab**      | Вкладка в верхней части страницы цели.                          | Плагин встраивается в верхний список вкладок. На полной странице имеет свой URL.  | Данные цели    |
| **goal.tab**           | Плагин в виде таба на странице цели.                            | Плагин встраивается в область ниже списка табов. Имеет свой url в контексте цели. | Данные цели    |
| **goal.block**         | Область под описанием цели.                                     | Плагин встраивается в область ниже связей цели в раскрываемой секции              | Данные цели    |
| **goal.editor.action** | Редактор комментариев в цели. Кнопка в нижней панели редактора. | Всплывающее окно с привязкой к кнопке                                             | Данные цели    |

{% note info "Слоты для боковой панели цели" %}

Цель может открываться не только на отдельной странице, но и в боковой панели поверх текущего экрана. В боковой панели меньше места, поэтому для нее предусмотрены отдельные слоты:

| Слот                   | Аналог на странице цели |
| :---------------------- | :------------------------ |
| **drawer.goal.action**  | **goal.action**           |
| **drawer.goal.page-tab** | **goal.page-tab**         |
| **drawer.goal.tab**     | **goal.tab**              |
| **drawer.goal.block**   | **goal.block**            |

Слоты `goal.page-tab` и `drawer.goal.page-tab` получают тот же контекст, что и `goal.tab`.

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

{% endnote %}

**project.action / portfolio.action / goal.action**

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

Выбирайте слот по тому, какие данные нужны плагину:

- Нужен ID и параметры проекта → `project.action`.

- Нужны данные портфеля → `portfolio.action`.

- Нужны данные цели → `goal.action`.

Если плагин универсальный и должен работать во всех трех контекстах — можно указать все три слота одновременно.

![image.png](../../\_assets/plugins/slots/meta-entity.png =800x){.border-yes}

**Действие вставляет контент в редактор комментариев — project.editor.action / portfolio.editor.action / goal.editor.action**

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

Это ваш слот, если:

- Плагин генерирует или подбирает текст, который нужно вставить в поле ввода.

- Результат работы плагина — фрагмент текста или разметки, а не отдельное действие над сущностью.

- Пользователь запускает плагин в момент написания комментария, а не после.

**Не этот слот, если** плагин выполняет действие над сущностью целиком — тогда смотрите `project.action`, `portfolio.action` или `goal.action`.

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

Выбирайте слот по тому, в контексте какой сущности находится редактор:

- Редактор комментариев в проекте → `project.editor.action`.

- Редактор комментариев в портфеле → `portfolio.editor.action`.

- Редактор комментариев в цели → `goal.editor.action`.

Контекст слота содержит данные соответствующей сущности — проекта, портфеля или цели.

### Доски {#boards}

{% note info %}

Слот `board.tab` доступен только на досках с вкладками.
На старых досках без вкладок плагин в этом слоте не отображается.

{% endnote %}

![](../../_assets/plugins/board-tab.png =500x){.border-yes}

| Слот          | Описание                  | Формат окна         | Контекст слота |
| :------------ | :------------------------ | :------------------ | :------------- |
| **board.tab** | Страница доски, таб доски | Контент на странице | Данные доски   |

<!-- source: ru/_assets/style/image.md -->

<!-- endsource: ru/_assets/style/image.md -->
