diff --git a/proto/extensions/extension.proto b/proto/extensions/extension.proto
index ba82ecd66987a97deee3281cd60961e1753c562f..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,9 +162,19 @@ message ActionResponse {
     PARAMETERS_REQUIRED = 4; // Требуются дополнительные данные для выполнения запроса
   }
 
+  enum Format {
+    PLAIN = 0;
+    HTML = 1;
+    MARKDOWN = 2;
+  }
+
   State state = 10000;  // Состояние расширение
+  Target target = 10010; // Как открывать результат выполнения действия в пользовательском интерфейсе (переопределяет значение в Action)
+	Format format = 10050; // Формат полей msg  и error
   string msg = 10100; // Сообщение о выполнении действия
-  string error = 10200; // Сообщение в случае ошибки
+  string title = 10110; // Текст для отображения в интерфейсе
+  string image = 10140; // Изображение для отображения в интерфейсе (шапке окна)
+  string error = 10200; // Сообщение в случае ошибки (дополнительно к msg)
   repeated Action next = 10300; // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя
   map<string,string>metadata = 10400; // Метаданные запроса
   repeated content.references.Reference refs = 10320; // Ссылки на записи (назначение ссылок зависит от действия и расширения)
@@ -186,16 +208,47 @@ message Action {
     ITEMS = 5; // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей.
     REVISION = 6; // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется.
     CREATE = 7; // Действие создание записи (требуется передача space_id, env_id, collection_id).
+    MAIN_MENU = 10000; // Действие отображается в главном меню (требуется передача space_id, env_id)
+    MAIN_MENU_BOTTOM = 10010; // Действие отображается в главном меню внизу (требуется передача space_id, env_id)
   }
 
+  // DEPRECATED: Используйте `action` в формате URI
   string extension = 10000; // Расширение
-  string action = 10100; // Идентификатор действия
+
+  // Идентификатор действия (в формате 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. Интерфейс отображает ответ в виде сообщения в IFrame
+  // - `text/markdown` - ответ в формате MD. Интерфейс отображает ответ в виде сообщения.
+  //
+  // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе
+  // Перечень переменных для подстановки:
+  // - :spaceId
+  // - :envId
+  // - :colId
+  // - :itemId
+  //
+  // Пример: `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 название коллекции
@@ -209,6 +262,8 @@ message Action {
   string params_collection = 10330;
 
   ActionRequest request = 10400; // Параметры запроса (используется в случае `ActionResponse.next`)
+
+  // DEPRECATED: Используйте `action_url` вместо `navigation_route`
   bool navigation_action = 10500; // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер
 
   // navigation_route - Строка шаблон для перехода в интерфейсе
@@ -222,5 +277,14 @@ message Action {
   // - :colId
   // - :itemId
   //
+  // DEPRECATED: Используйте `action_type == "NAVIGATION"`
   string navigation_route = 10510;
+
+  // Параметр указывающий что действие выполняется автоматически
+  // Если указано, то действие выполняется автоматически каждый раз при загрузке приложения
+  bool autorun = 10520;
+
+  // Параметр указывающий что действие требует подтверждения пользователя
+  // Перед выполнением действия пользователю отображается информация о действии и кнопки подтверждения/отмены
+  bool confirm = 10530;
 }
\ No newline at end of file