diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts
index 7b85638526..9381593fa3 100644
--- a/models/contact/src/index.ts
+++ b/models/contact/src/index.ts
@@ -227,8 +227,52 @@ export function createModel (builder: Builder): void {
       icon: contact.icon.ContactApplication,
       alias: contactId,
       hidden: false,
-      component: contact.component.ContactsTabs,
-      locationResolver: contact.resolver.Location
+      // component: contact.component.ContactsTabs,
+      locationResolver: contact.resolver.Location,
+      navigatorModel: {
+        spaces: [],
+        specials: [
+          {
+            id: 'employees',
+            component: workbench.component.SpecialView,
+            icon: contact.icon.Person,
+            label: contact.string.Employee,
+            componentProps: {
+              _class: contact.class.Employee,
+              icon: contact.icon.Person,
+              label: contact.string.Employee,
+              createLabel: contact.string.CreateEmployee,
+              createComponent: contact.component.CreateEmployee
+            }
+          },
+          {
+            id: 'persons',
+            component: workbench.component.SpecialView,
+            icon: contact.icon.Person,
+            label: contact.string.Person,
+            componentProps: {
+              _class: contact.class.Person,
+              icon: contact.icon.Person,
+              label: contact.string.Person,
+              createLabel: contact.string.CreatePerson,
+              createComponent: contact.component.CreatePerson
+            }
+          },
+          {
+            id: 'companies',
+            component: workbench.component.SpecialView,
+            icon: contact.icon.Company,
+            label: contact.string.Organization,
+            componentProps: {
+              _class: contact.class.Organization,
+              icon: contact.icon.Company,
+              label: contact.string.Organization,
+              createLabel: contact.string.CreateOrganization,
+              createComponent: contact.component.CreateOrganization
+            }
+          }
+        ]
+      }
     },
     contact.app.Contacts
   )
@@ -255,7 +299,8 @@ export function createModel (builder: Builder): void {
         'modifiedOn'
       ],
       configOptions: {
-        hiddenKeys: ['name', 'contact']
+        hiddenKeys: ['name', 'contact'],
+        sortable: true
       }
     },
     contact.viewlet.TableMember
@@ -270,11 +315,41 @@ export function createModel (builder: Builder): void {
     view.class.Viewlet,
     core.space.Model,
     {
-      attachTo: contact.class.Contact,
+      attachTo: contact.class.Person,
+      descriptor: view.viewlet.Table,
+      config: [
+        '',
+        'city',
+        'attachments',
+        'modifiedOn',
+        { key: '', presenter: view.component.RolePresenter, label: view.string.Role },
+        {
+          key: '$lookup.channels',
+          label: contact.string.ContactInfo,
+          sortingKey: ['$lookup.channels.lastMessage', 'channels']
+        }
+      ],
+      configOptions: {
+        hiddenKeys: ['name'],
+        sortable: true
+      },
+      baseQuery: {
+        _class: {
+          $in: [contact.class.Person],
+          $nin: [contact.class.Employee]
+        }
+      }
+    },
+    contact.viewlet.TablePerson
+  )
+  builder.createDoc<Viewlet>(
+    view.class.Viewlet,
+    core.space.Model,
+    {
+      attachTo: contact.class.Employee,
       descriptor: view.viewlet.Table,
       config: [
         '',
-        '_class',
         'city',
         'attachments',
         'modifiedOn',
@@ -290,7 +365,33 @@ export function createModel (builder: Builder): void {
         sortable: true
       }
     },
-    contact.viewlet.TableContact
+    contact.viewlet.TableEmployee
+  )
+
+  builder.createDoc<Viewlet>(
+    view.class.Viewlet,
+    core.space.Model,
+    {
+      attachTo: contact.class.Organization,
+      descriptor: view.viewlet.Table,
+      config: [
+        '',
+        'city',
+        'attachments',
+        'modifiedOn',
+        { key: '', presenter: view.component.RolePresenter, label: view.string.Role },
+        {
+          key: '$lookup.channels',
+          label: contact.string.ContactInfo,
+          sortingKey: ['$lookup.channels.lastMessage', 'channels']
+        }
+      ],
+      configOptions: {
+        hiddenKeys: ['name'],
+        sortable: true
+      }
+    },
+    contact.viewlet.TableOrganization
   )
 
   builder.mixin(contact.class.Person, core.class.Class, view.mixin.ObjectEditor, {
@@ -559,7 +660,17 @@ export function createModel (builder: Builder): void {
   })
 
   builder.mixin(contact.class.Contact, core.class.Class, view.mixin.ClassFilters, {
-    filters: ['_class']
+    filters: []
+  })
+
+  builder.mixin(contact.class.Person, core.class.Class, view.mixin.ClassFilters, {
+    filters: []
+  })
+  builder.mixin(contact.class.Employee, core.class.Class, view.mixin.ClassFilters, {
+    filters: []
+  })
+  builder.mixin(contact.class.Organization, core.class.Class, view.mixin.ClassFilters, {
+    filters: []
   })
 
   builder.mixin(contact.class.Channel, core.class.Class, view.mixin.AttributeFilter, {
diff --git a/plugins/contact-assets/lang/en.json b/plugins/contact-assets/lang/en.json
index f36667788d..9827588bb8 100644
--- a/plugins/contact-assets/lang/en.json
+++ b/plugins/contact-assets/lang/en.json
@@ -4,8 +4,8 @@
     "Contacts": "Contacts",
     "Persons": "Persons",
     "Organizations": "Companies",
-    "CreatePerson": "Create person",
-    "CreateOrganization": "Create company",
+    "CreatePerson": "Person",
+    "CreateOrganization": "Company",
     "OrganizationNamePlaceholder": "Company name",
     "OrganizationsNamePlaceholder": "Companies",
     "PersonFirstNamePlaceholder": "First name",
@@ -64,7 +64,7 @@
     "KickEmployee": "Kick an employee",
     "KickEmployeeDescr": "Are you sure you want to kick the employee out of the workspace? This action cannot be undone",
     "Email": "Email",
-    "CreateEmployee": "Create an employee",
+    "CreateEmployee": "Employee",
     "Inactive": "Inactive",
     "Birthday": "Birthday",
     "UseImage": "Attached photo",
diff --git a/plugins/contact-assets/lang/ru.json b/plugins/contact-assets/lang/ru.json
index edfc301fcf..afe3530eb1 100644
--- a/plugins/contact-assets/lang/ru.json
+++ b/plugins/contact-assets/lang/ru.json
@@ -4,8 +4,8 @@
     "Contacts": "Контакты",
     "Persons": "Люди",
     "Organizations": "Компании",
-    "CreatePerson": "Создать персону",
-    "CreateOrganization": "Создать компанию",
+    "CreatePerson": "Персона",
+    "CreateOrganization": "Компания",
     "OrganizationNamePlaceholder": "Имя компании",
     "OrganizationsNamePlaceholder": "Компании",
     "PersonFirstNamePlaceholder": "Имя",
@@ -64,7 +64,7 @@
     "KickEmployee": "Исключить сотрудника",
     "KickEmployeeDescr": "Вы действительно хотите выгнать сотрудника из рабочего пространства? Это действие нельзя отменить",
     "Email": "Email",
-    "CreateEmployee": "Создать сотрудника",
+    "CreateEmployee": "Cотрудник",
     "Inactive": "Не активный",
     "Birthday": "День рождения",
     "UseImage": "Загруженное Фото",
diff --git a/plugins/contact/src/index.ts b/plugins/contact/src/index.ts
index 741870c685..7295b74b4d 100644
--- a/plugins/contact/src/index.ts
+++ b/plugins/contact/src/index.ts
@@ -268,7 +268,9 @@ export const contactPlugin = plugin(contactId, {
   },
   viewlet: {
     TableMember: '' as Ref<Viewlet>,
-    TableContact: '' as Ref<Viewlet>
+    TablePerson: '' as Ref<Viewlet>,
+    TableEmployee: '' as Ref<Viewlet>,
+    TableOrganization: '' as Ref<Viewlet>
   },
   filter: {
     FilterChannelIn: '' as Ref<FilterMode>,
diff --git a/tests/sanity/tests/contacts.spec.ts b/tests/sanity/tests/contacts.spec.ts
index 74966c63a7..3e6d66185e 100644
--- a/tests/sanity/tests/contacts.spec.ts
+++ b/tests/sanity/tests/contacts.spec.ts
@@ -14,9 +14,8 @@ test.describe('contact tests', () => {
     // Create a new context with the saved storage state.
     await page.locator('[id="app-contact\\:string\\:Contacts"]').click()
 
-    await page.click('button:has-text("Contact")')
-
-    await (await page.locator('.ap-menuItem')).locator('text=Person').click()
+    await page.click('.antiNav-element:has-text("Person")')
+    await page.click('button:has-text("Person")')
 
     const first = 'Elton-' + generateId(5)
     const last = 'John-' + generateId(5)
@@ -35,9 +34,8 @@ test.describe('contact tests', () => {
   test('create-company', async ({ page }) => {
     await page.locator('[id="app-contact\\:string\\:Contacts"]').click()
 
-    await page.click('button:has-text("Contact")')
-
-    await (await page.locator('.ap-menuItem')).locator('text=Company').click()
+    await page.click('.antiNav-element:has-text("Company")')
+    await page.click('button:has-text("Company")')
 
     const orgName = 'Company' + generateId(5)
 
@@ -52,6 +50,8 @@ test.describe('contact tests', () => {
   test('contact-search', async ({ page }) => {
     await page.locator('[id="app-contact\\:string\\:Contacts"]').click()
 
+    await page.click('.antiNav-element:has-text("Person")')
+
     await expect(page.locator('text=M. Marina')).toBeVisible()
     expect(await page.locator('.antiTable-body__row').count()).toBeGreaterThan(5)
 
@@ -63,17 +63,16 @@ test.describe('contact tests', () => {
 
     await fillSearch(page, '')
 
-    await expect(page.locator('text=Chen Rosamund')).toBeVisible()
-    expect(await page.locator('.antiTable-body__row').count()).toBeGreaterThan(5)
+    await expect(page.locator('text=P. Andrey')).toBeVisible()
+    expect(await page.locator('.antiTable-body__row').count()).toBeGreaterThan(3)
   })
 
   test('delete-contact', async ({ page }) => {
     // Create a new context with the saved storage state.
     await page.locator('[id="app-contact\\:string\\:Contacts"]').click()
 
-    await page.click('button:has-text("Contact")')
-
-    await (await page.locator('.ap-menuItem')).locator('text=Person').click()
+    await page.click('.antiNav-element:has-text("Person")')
+    await page.click('button:has-text("Person")')
 
     const first = 'Elton-' + generateId(5)
     const last = 'John-' + generateId(5)
diff --git a/tests/sanity/tests/org.members.spec.ts b/tests/sanity/tests/org.members.spec.ts
index 829b810669..5d6621d6ea 100644
--- a/tests/sanity/tests/org.members.spec.ts
+++ b/tests/sanity/tests/org.members.spec.ts
@@ -13,7 +13,7 @@ test.describe('recruit tests', () => {
 
   test('org-add-member', async ({ page }) => {
     await page.click('[id="app-contact\\:string\\:Contacts"]')
-    await page.click('button:has-text("Contact")')
+    await page.click('.antiNav-element:has-text("Company")')
     await page.click('button:has-text("Company")')
     await page.click('[placeholder="Company name"]')
     const orgId = 'Company-' + generateId()
diff --git a/tests/sanity/tests/workbench.spec.ts b/tests/sanity/tests/workbench.spec.ts
index 4471f3cf57..f8b2ab33b2 100644
--- a/tests/sanity/tests/workbench.spec.ts
+++ b/tests/sanity/tests/workbench.spec.ts
@@ -47,7 +47,8 @@ test.describe('workbench tests', () => {
     await expect(page.locator('.textInput')).toBeVisible()
 
     await page.click('[id="app-contact\\:string\\:Contacts"]')
-    await expect(page).toHaveURL(`${PlatformURI}/workbench/sanity-ws/contact`)
+    await page.click('.antiNav-element:has-text("Employee")')
+    await expect(page).toHaveURL(`${PlatformURI}/workbench/sanity-ws/contact/employees`)
     // Click text=John Appleseed
     await expect(page.locator('text=Appleseed John')).toBeVisible()
   })