diff --git a/proto/extensions/extension.proto b/proto/extensions/extension.proto
index f82ac21cdab520cc7ede94b85f888ac3b267af45..59a43250bc7461959b08b25b0892547a803b0347 100644
--- a/proto/extensions/extension.proto
+++ b/proto/extensions/extension.proto
@@ -141,6 +141,18 @@ message ActionRequest {
   content.references.Reference params = 11020;
 }
 
+// Target - определяет как открывать результат выполнения действия в пользовательском интерфейсе
+enum Target {
+  DEFAULT = 0; // По умолчанию (если нет других условий, то MODAL)
+  MODAL = 1; // Открывать в модальном окне
+  WIDE = 2;  // Открывать в широком модальном окне
+  MAIN = 4;  // Открывать в главной рабочей области (часть без меню)
+  DRAWER = 5; // Открывать в боковой панели
+  NOTIFICATION = 6; // Открывать виде всплывающего уведомлении
+  BLANK = 7; // Открывать в новой вкладке
+  NONE = 100; // Не отображать результат
+}
+
 message ActionResponse {
   enum State {
     DONE = 0; // Запрос завершен
@@ -150,33 +162,22 @@ message ActionResponse {
     PARAMETERS_REQUIRED = 4; // Требуются дополнительные данные для выполнения запроса
   }
 
-  State state = 10000;  // Состояние расширение
+  enum Format {
+    PLAIN = 0;
+    HTML = 1;
+    MARKDOWN = 2;
+  }
 
+  State state = 10000;  // Состояние расширение
+  Target target = 10010; // Как открывать результат выполнения действия в пользовательском интерфейсе (переопределяет значение в Action)
+	Format format = 10050; // Формат полей msg  и error
   string msg = 10100; // Сообщение о выполнении действия
   string title = 10110; // Текст для отображения в интерфейсе
-  string html = 10120; // HTML для отображения в интерфейсе (альтернатива msg)
-  string md = 10130; // Markdown для отображения в интерфейсе (альтернатива msg)
   string image = 10140; // Изображение для отображения в интерфейсе (шапке окна)
-  string error = 10200; // Сообщение в случае ошибки
-
-  enum Target {
-    MODAL = 0; // Открыть во всплывающем окне
-    WIDE_MODAL = 1; // Открыть во всплывающем широком окне (вся страница)
-    WORKSPACE = 2; // Открыть в рабочей области (без меню)
-    NOTIFICATION = 3; // Открыть в виде уведомления
-    DRAWER = 4; // Открыть в виде выдвижной панели
-    NEW_WINDOW = 100; // Открыть в новом окне
-    NONE = 1000; // Без отображения результата
-  }
-
-  // Как открывать результат выполнения действия
-  // В случае ответа в виде HTML/MD, открывать аналогично WIDE_MODAL, или брать значние из заголовка 'X-Action-Target'
-  Target target = 10210;
-
+  string error = 10200; // Сообщение в случае ошибки (дополнительно к msg)
   repeated Action next = 10300; // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя
   map<string,string>metadata = 10400; // Метаданные запроса
   repeated content.references.Reference refs = 10320; // Ссылки на записи (назначение ссылок зависит от действия и расширения)
-
 }
 
 
@@ -211,54 +212,43 @@ message Action {
     MAIN_MENU_BOTTOM = 10010; // Действие отображается в главном меню внизу (требуется передача space_id, env_id)
   }
 
-  enum ActionType {
-    REQUEST = 0; // Действие выполняет запрос на сервер
-    NAVIGATION = 1; // Действие переносит пользователя в другую часть интерфейса
-  }
-
-  ActionType action_type = 9000; // Тип действия
-
+  // DEPRECATED: Используйте `action` в формате URI
   string extension = 10000; // Расширение
-  string action = 10100; // Идентификатор действия
-
 
-  // URL для запроса действия (альтернатива `extension` и `action`). В случае если параметр
-  // `action_url` указан, то интерфейс не запрашивает расширение и действие, а выполняет запрос по указанному URL используя
-  // указанный протокол. В случае если указан `action_url` то `extension` и `action` игнорируются.
-  //
-  // Для форматов HTML/MD относительные ссылки в тексте преобразуются в абсолютные используя `action_url` в качестве
-  // базового URL.
+  // Идентификатор действия (в формате URI)
+  // Варианты использования:
+  // - пустой - никаких действий не выполняется
+  // - `action_id` - простое действие (если установлено расширение, то оно используется)
+  // - `grpc:///extension_id/action_id` - полное действие с указанием расширения
+  // - `https://host/path` - действие по HTTP(S)
+  // - `ui:///path` - действие в интерфейсе
+  // - `/path` - действие в интерфейсе
   //
   // Пример: `https://example.com/api/v1/action` - будет выполнен запрос HTTP по указанному URL.
   // Сервер может вернуть ответ в формате JSON или HTML/MD. Дальнейшие действия определяется оп заголовку ответа
   // `Content-Type`:
   // - `application/json` - ответ в формате JSON. Структура ответа соответствует `ActionResponse` и интерпретируется
   // тем же способом что и ответ от GRPC.
-  // - `text/html` - ответ в формате HTML. Интерфейс отображает ответ в виде сообщения.
+  // - `text/html` - ответ в формате HTML. Интерфейс отображает ответ в виде сообщения в IFrame
   // - `text/markdown` - ответ в формате MD. Интерфейс отображает ответ в виде сообщения.
   //
-  // Пример: `grpc://example.com/api/v1/action` - будет выполнен запрос GRPC по указанному URL.
-  // Сервер может вернуть ответ в `ActionResponse`.
-  //
-  // action_type == "NAVIGATION" - Строка шаблон для перехода в интерфейсе
-  // При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера
-  // Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения
-  //
-  // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`)
+  // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе
   // Перечень переменных для подстановки:
   // - :spaceId
   // - :envId
   // - :colId
   // - :itemId
   //
-  string action_url = 10110;
-
+  // Пример: `ui:///spaces/:spaceId/envs/:envId/cols/:colId` - будет выполнено действие в интерфейсе.
+  string action = 10100;
+  Target target = 10110; // как должен отображаться результат действия
+  string parent = 10120; // Идентификатор родительского действия (для отображения в меню)
   string name = 10200; // Название действия для отображения в интерфейсе (пункт меню, кнопка).
   string description = 10210; // Описание действия для отображения в интерфейсе
   string icon = 10220; // Название иконки для отображения действия в интерфейсе
   content.references.Reference image = 10230; // Изображение для отображения в действия в интерфейсе
   repeated string groups = 10240; // Группы отображения действия в интерфейсе
-  Kind kind = 10300; // Указывает на что направлено действие
+  Kind kind = 10300; // Указывает область действия (где отображается действие)
   repeated string classes = 10310; // Классы данных к которым применимо действие (название коллекций или специальных групп в рамках которых данное действие применимо)
   // Для `CREATE` действуют следующие правила:
   // - Для создание записей в коллекции применимы действия которые содержат в classes название коллекции
@@ -290,13 +280,11 @@ message Action {
   // DEPRECATED: Используйте `action_type == "NAVIGATION"`
   string navigation_route = 10510;
 
-  enum Autorun {
-    NONE = 0; // Действие не выполняется автоматически
-    ONCE_PER_USER = 1; // Действие выполняется при старте приложения
-    PER_USER_SESSION = 2; // Действие выполняется при старте приложения и при каждом входе пользователя в пространство
-    ONCE_SPACE = 3; // Действие выполняется один раз для пространства
-  }
+  // Параметр указывающий что действие выполняется автоматически
+  // Если указано, то действие выполняется автоматически каждый раз при загрузке приложения
+  bool autorun = 10520;
 
-  Autorun autorun = 10520; // Параметр указывающий что действие выполняется автоматически
-  bool confirm = 10530; // Параметр указывающий что действие требует подтверждения пользователя
+  // Параметр указывающий что действие требует подтверждения пользователя
+  // Перед выполнением действия пользователю отображается информация о действии и кнопки подтверждения/отмены
+  bool confirm = 10530;
 }
\ No newline at end of file