VK WorkSpace On-Premise logo
Помощь
Обновлена 20 октября 2026 г. в 14:33

Подключение организационной структуры

Назначение документа

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

В данном документе описано подключение структуры организации в случаях, когда:

Документ предназначен для использования администраторами организации.

Дополнительная документация

Управление организационной структурой в Панели администратора VK WorkSpace — в документе описано управление организационной структурой в Панели администратора VK WorkSpace.

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

Архитектура и описание системы — в документе представлено описание сервисов, обеспечивающих работу функциональности оргструктуры. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.

Подключение структуры организации при наличии интеграции с Почтой VK WorkSpace

Шаг 1. Подключите функциональность структуры организации

Чтобы подключить функциональность оргструктуры в административной Панели VK WorkSpace, обратитесь в техническую поддержку или к вашему персональному менеджеру.

Шаг 2. Создайте структуру организации

После подключения функциональности управление оргструктурой происходит в Панели администратора VK WorkSpace в разделе Структура организаций.

Вы можете создать структуру организаций вручную или загрузить ее при помощи XLSX-файла. Подробные инструкции по управлению оргструктурой в Панели администратора VK WorkSpace представлены в документации.

Шаг 3. Подключите функциональность в Мессенджере

После создания оргструктуры в административной Панели VK WorkSpace подключите структуру организации в Мессенджер и ВКС:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json укажите настройки отображения мини-аппа структуры организации в секции orgstructure:

    "services": {    "config": {        "orgstructure": {            "external": false,            "needs_auth": true,            "url": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure/index.html",            "url-dark": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure/index.html",            "staff-visible-part-index": 2,            "new": true,            "is-public": false,            }

    где:

    • url — webim-ссылка вида https://webim.<YOUR_DOMAIN>/webapps/orgstructure/index.html.

    • url-dark —webim-ссылка вида https://webim.<YOUR_DOMAIN>/webapps/orgstructure/index.html.

    • staff-visible-part-index — количество пользователей, которые будут отображаться в оргструктуре подразделения над кнопкой «Показать всех». Значение по умолчанию — 2.

    • new — укажите true.

    • is-public — укажите false.

  2. Включите отображение вкладки оргструктуры в клиентском приложении:

    "services": {    "disposition": {            "desktop": { #включаем отображение сервиса оргструктуры в десктоп-версии                "leftbar": [                    "orgstructure"                ]            },            "mobile": { #включаем отображение сервиса оргструктуры в мобильном приложении                "services": [                    "orgstructure"                ]
  3. Для инсталляции на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod
  4. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

    kubectl delete pods -n vkteams -l app=myteam-admin

После данных настроек в разделе сервисов Супераппа появится иконка для работы со структурой организации.

Шаг 4. Выпустите SSL-сертификаты для поддоменов оргструктуры

Если вы не используете Wildcard-сертификаты, добавьте SSL-сертификаты для поддомена files-n.<ваш домен>. Этот поддомен используется для функциональности оргструктуры в Мессенджер и ВКС.

Шаг 5. Настройте Nginx Мессенджер и ВКС

  1. На сервере Мессенджер и ВКС в конфигурационном файле /usr/local/nginx-im/confv2/nginx.conf укажите IP-адрес сервера VK WorkSpace в случае инсталляции VK WorkSpace на одну виртуальную машину. Если у вас распределенная инсталляция VK WorkSpace, укажите IP-адреса серверов с ролью «фронт»:

    geo $prod_ip {    127.0.0.0/8 1;    10.32.0.0/16 1;    default 0;    }
  2. Перезагрузите сервер:

    nginx reload

Подключение структуры организации при отсутствии интеграции с Почтой VK WorkSpace

При отсутствии интеграции с Почтой VK WorkSpace функциональность оргструктуры в Мессенджер и ВКС обеспечивают сервисы:

  • Sys-org-adapt — наполняет оргструктуру Мессенджера и ВКС, используя внешний источник данных о пользователях и организациях.
  • Org-nomail-adapt — заполняет поле «О себе» в профиле пользователя на основании внешнего источника данных о пользователях и организациях.

Более подробное описание сервисов представлено в документе «Архитектура и описание системы» (не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).

API для наполнения оргструктуры в Мессенджер и ВКС

Сервис Sys-org-adapt работает с внешним источником данных о пользователях и организациях по описанному ниже API.

Получить подразделения

Метод позволяет получить информацию о подразделениях:

  • название подразделения;
  • уровень вложенности подразделения в иерархии оргструктуры;
  • почта руководителя.

Входные данные

Get <DOMAIN>/api/v2/units/

где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.

Ограничения

Данный метод требует авторизации.

Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key авторизационный токен:

sys:  api_key: "TOKEN"

Параметры

Имя
Тип
Описание
page
*required
string
Номер страницы
per_page
*required
string
Количество подразделений на странице
exclude_hidden
boolean
Если в запросе передано это значение, то в ответе не передаются подразделения, которые должны быть скрыты в оргструктуре Мессенджер и ВКС

Пример запроса для получения подразделений

curl https://<DOMAIN>/api/v2/units/?page=1&per_page=100&exclude_hidden=true

Формат ответа

{  "objects": [    {      "id": 2, # идентификатор подразделения      "parent_id": 1, # идентификатор родительского подразделения      "email": "i_ivanov@YOUR_DOMAIN.ru", # почта руководителя подразделения      "level": 7, # уровень вложенности подразделения при отсчете от корневого подразделения (level: 0)      "name": "Юнит № 1", # название подразделения    },  ],  "meta" : {    "next": 2 # следующая страница  }}

Получить пользователей

Метод позволяет получить информацию о пользователях:

  • название должности;
  • название подразделения, в котором работает пользователь;
  • почта пользователя.

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

Входные данные

Get <DOMAIN>/api/v2/users

где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.

Ограничения

Данный метод требует авторизации.

Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key авторизационный токен:

sys:  api_key: TOKEN

Параметры

Имя
Тип
Описание
page
*required
string
Номер страницы
per_page
*required
string
Количество подразделений на странице
end_of_work__isnull
boolean
Если в запросе значение true, то в ответе передаются только те сотрудники, которые еще работают в компании

Пример запроса для получения пользователей

curl https://<DOMAIN>/api/v2/users/?page=1&per_page=100&end_of_work__isnull=true

Формат ответа

{  "objects": [    {      "appointment_name": 1, # название должности пользователя      "unit_id": 2, # подразделение, в котором работает пользователь      "email": "i_ivanov@YOUR_DOMAIN.ru", # почта пользователя      "is_technical_account": false # если аккаунт технический, он не будет добавлен в оргструткуру      "is_active": true # будут добавлены только активные пользователи       "end_of_work": "2023-01-01" # если пользователь уволен уже не работает, то он не будет добавлен в оргструткуру    },  ],  "meta" : {    "next": 2 # следующая страница  }}

Шаг 1. Реализуйте API

Реализуйте методы API, описанные выше.

Шаг 2. Включите синхронизацию

Чтобы сервис Sys-org-adapt начал обходить внешний источник данных о пользователях и организациях, необходимо включить синхронизацию в etcd:

etcdctl --endpoints [ХОСТ_ETCD]:[ПОРТ_ETCD] put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true

Пример команды:

etcdctl --endpoints etcd.im-etcd.svc.cluster.local:2379 put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true

Шаг 3. Включите дополнительные настройки (опционально)

Заполнение поля «О себе»

Чтобы выгружать значение поля «О себе» из внешнего источника оргструктуры в профиль пользователя Мессенджер и ВКС, необходимо:

  1. В конфигурационном файле /usr/local/etc/nomail-1.conf добавить следующие строчки:

    nomail.connector.additional.extra.fields.enabled "true"nomail.keycloak.additional.extra.fields organization,department,position,mobilenomail.keycloak.about.fields [$sys:organization](vkteams://miniapp/orgstructure/?unitId=$sys:organizationid)\n[$sys:department](vkteams://miniapp/orgstructure/?unitId=$sys:departmentid)\n$sys:position\n$sys:syslink\n\nРуководитель:\n[$sys:leadfullname]({https://u.{DOMAIN}/}/profile/$sys:leademail)nomail.connector.url {адрес org-nomail-adapt}nomail.connector.method querynomail.keycloak.compound.about.connectors.enabled false
  2. Перезапустить сервис Nomail:

    systemctl restart nomail-*

Отображение номера телефона отдельным полем

Чтобы номер телефона пользователя отображался в карточке контакта отдельным полем, необходимо:

  1. В конфигурационных файлах сервиса Front

    /usr/local/etc/front-1.conf

    /usr/local/etc/front-2.conf

    /usr/local/etc/front-3.conf

    /usr/local/etc/front-4.conf

    указать для поля userInfo.phone_from_prof_st значение true:

    userInfo.phone_from_prof_st: true
  2. Перезапустить сервис Front:

    systemctl restart front-*
  3. В конфигурационном файле сервиса Nomail /usr/local/etc/nomail-1.conf указать для поля user.phone_filed значение "mobile":

    user.phone_filed: "mobile"
  4. Перезапустить сервис Nomail:

    systemctl restart nomail-*
  5. В конфигурационный файл сервиса Prof-st /usr/local/etc/prof-st-1.conf добавить следующие строчки:

    app_anketa_phone_can_be_string trueapp_fb_sync_create trueuser.phone_filed "mobile"
  6. Перезапустить сервис Prof-st:

    systemctl restart prof-st-*
  7. В конфигурационный файл сервиса Feedog /oap/feedog_srv_post.tcl добавить строчку:

    set enableValidatePhone 0
  8. Перезапустить сервис Feedog :

    cpsh 4322restart_job feedog

Технический писатель: Белова Ирина

Была ли статья полезна?