diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte
index 226ea9809d..20a2275b1c 100644
--- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte
+++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte
@@ -22,15 +22,14 @@
 
   import { LinkData, getLinkData } from '../../activityMessagesUtils'
   import ActivityDocLink from '../ActivityDocLink.svelte'
+  import { getIsTextType } from '../../utils'
 
   export let message: DisplayDocUpdateMessage
   export let viewlet: DocUpdateMessageViewlet | undefined
   export let person: Person | undefined
-  export let objectName: IntlString | undefined = undefined
   export let object: Doc | undefined
   export let parentObject: Doc | undefined
   export let attributeModel: AttributeModel | undefined = undefined
-  export let collectionName: IntlString | undefined = undefined
   export let hideLink = false
 
   const isOwn = message.objectId === message.attachedTo
@@ -42,7 +41,13 @@
       linkData = data
     })
 
-  function getTitle (): IntlString {
+  function getTitle (attributeModel: AttributeModel): IntlString | undefined {
+    const isTextType = getIsTextType(attributeModel)
+
+    if (!isTextType) {
+      return undefined
+    }
+
     const { attributeUpdates } = message
     const added = attributeUpdates?.added ?? []
     const removed = attributeUpdates?.removed ?? []
@@ -60,35 +65,12 @@
 
 {#if viewlet?.label}
   <span class="text-sm lower"> <Label label={viewlet.label} /></span>
-{:else if message.previousMessages?.some(({ action }) => action !== message.action)}
-  {@const name = collectionName ?? objectName}
-  <span class="text-sm lower">
-    <Label label={activity.string.Updated} />
-    {#if name}
-      <Label label={name} />
-    {/if}
-  </span>
-{:else if message.action === 'create' && objectName}
-  <span class="text-sm lower">
-    <Label label={isOwn ? activity.string.Created : activity.string.Added} />
-    {#if collectionName && (!isOwn || message.previousMessages?.length)}
-      <Label label={collectionName} />
-    {:else}
-      <Label label={objectName} />
-    {/if}
-  </span>
-{:else if message.action === 'remove' && objectName}
-  <span class="text-sm lower">
-    <Label label={activity.string.Removed} />
-    {#if collectionName && message.previousMessages?.length}
-      <Label label={collectionName} />
-    {:else}
-      <Label label={objectName} />
-    {/if}
-  </span>
 {:else if attributeModel}
-  <span class="text-sm lower"><Label label={getTitle()} /></span>
-  <span class="text-sm lower"> <Label label={attributeModel.label} /></span>
+  {@const title = getTitle(attributeModel)}
+  {#if title}
+    <span class="text-sm lower"><Label label={title} /></span>
+    <span class="text-sm lower"> <Label label={attributeModel.label} /></span>
+  {/if}
 {/if}
 
 {#if linkData}
diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte
index 6b4034b93d..a449ef867b 100644
--- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte
+++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePresenter.svelte
@@ -173,17 +173,7 @@
   {onClick}
 >
   <svelte:fragment slot="header">
-    <DocUpdateMessageHeader
-      message={value}
-      {object}
-      {parentObject}
-      {viewlet}
-      {person}
-      {objectName}
-      {collectionName}
-      {attributeModel}
-      {hideLink}
-    />
+    <DocUpdateMessageHeader message={value} {object} {parentObject} {viewlet} {person} {attributeModel} {hideLink} />
   </svelte:fragment>
   <svelte:fragment slot="content">
     {#if viewlet?.component && object}
diff --git a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte
index 9f7d53183a..9a27b01fa4 100644
--- a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte
+++ b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte
@@ -15,10 +15,10 @@
 <script lang="ts">
   import ui, { Icon, Label, IconEdit } from '@hcengineering/ui'
   import { AttributeModel } from '@hcengineering/view'
-  import core from '@hcengineering/core'
   import activity, { DocAttributeUpdates, DocUpdateMessageViewlet } from '@hcengineering/activity'
 
   import ChangeAttributesTemplate from './ChangeAttributesTemplate.svelte'
+  import { getIsTextType } from '../../../utils'
 
   export let viewlet: DocUpdateMessageViewlet | undefined
   export let attributeModel: AttributeModel
@@ -32,13 +32,6 @@
 
   $: isTextType = getIsTextType(attributeModel)
 
-  function getIsTextType (attributeModel: AttributeModel): boolean {
-    return (
-      attributeModel.attribute?.type?._class === core.class.TypeMarkup ||
-      attributeModel.attribute?.type?._class === core.class.TypeCollaborativeMarkup
-    )
-  }
-
   let isDiffShown = false
 
   function toggleShowMore (): void {
diff --git a/plugins/activity-resources/src/utils.ts b/plugins/activity-resources/src/utils.ts
index 00f5f3a60f..9465991c2e 100644
--- a/plugins/activity-resources/src/utils.ts
+++ b/plugins/activity-resources/src/utils.ts
@@ -519,3 +519,10 @@ export async function unpinMessage (message?: ActivityMessage): Promise<void> {
 
   await client.update(message, { isPinned: false })
 }
+
+export function getIsTextType (attributeModel: AttributeModel): boolean {
+  return (
+    attributeModel.attribute?.type?._class === core.class.TypeMarkup ||
+    attributeModel.attribute?.type?._class === core.class.TypeCollaborativeMarkup
+  )
+}
diff --git a/tests/sanity/tests/model/recruiting/common-recruiting-page.ts b/tests/sanity/tests/model/recruiting/common-recruiting-page.ts
index c94007d2a2..5eed19b197 100644
--- a/tests/sanity/tests/model/recruiting/common-recruiting-page.ts
+++ b/tests/sanity/tests/model/recruiting/common-recruiting-page.ts
@@ -31,7 +31,7 @@ export class CommonRecruitingPage extends CalendarPage {
   readonly inputSocialValue = (): Locator => this.page.locator('div.popup input.search')
   readonly buttonSocialCancel = (): Locator => this.page.locator('div.popup button[type="button"]:not([id])')
   readonly buttonSocialSave = (): Locator => this.page.locator('button#channel-ok')
-  readonly textActivity = (): Locator => this.page.locator('div.header')
+  readonly textActivity = (): Locator => this.page.locator('div.content')
   readonly buttonContactLinkedIn = (): Locator =>
     this.page.locator('div[class^="popupPanel-body"] div.horizontal button[id="contact:string:LinkedIn"]')
 
diff --git a/tests/sanity/tests/model/tracker/template-details-page.ts b/tests/sanity/tests/model/tracker/template-details-page.ts
index 8e17edfdb7..5d14235475 100644
--- a/tests/sanity/tests/model/tracker/template-details-page.ts
+++ b/tests/sanity/tests/model/tracker/template-details-page.ts
@@ -13,7 +13,7 @@ export class TemplateDetailsPage extends CommonTrackerPage {
   buttonEstimation = (): Locator => this.page.locator('(//span[text()="Estimation"]/../div/button)[3]')
   buttonDueDate = (): Locator => this.page.locator('(//span[text()="Due date"]/../div/button)[2]')
   buttonSaveDueDate = (): Locator => this.page.locator('div.footer > button')
-  textComment = (): Locator => this.page.locator('div.grid div.header')
+  activityContent = (): Locator => this.page.locator('div.grid div.content')
   buttonDelete = (): Locator => this.page.locator('button[class*="menuItem"] > span', { hasText: 'Delete' })
 
   async checkTemplate (data: NewIssue): Promise<void> {
@@ -75,8 +75,8 @@ export class TemplateDetailsPage extends CommonTrackerPage {
     }
   }
 
-  async checkCommentExist (comment: string): Promise<void> {
-    await expect(this.textComment().filter({ hasText: comment })).toBeVisible()
+  async checkActivityContent (comment: string): Promise<void> {
+    await expect(this.activityContent().filter({ hasText: comment })).toBeVisible()
   }
 
   async deleteTemplate (): Promise<void> {
diff --git a/tests/sanity/tests/recruiting/vacancies.spec.ts b/tests/sanity/tests/recruiting/vacancies.spec.ts
index 9f6001c1a0..43492fdbb6 100644
--- a/tests/sanity/tests/recruiting/vacancies.spec.ts
+++ b/tests/sanity/tests/recruiting/vacancies.spec.ts
@@ -165,7 +165,7 @@ test.describe('Vacancy tests', () => {
     const vacancyDetailsPage = new VacancyDetailsPage(page)
     await vacancyDetailsPage.moreActionOn('Archive')
     await vacancyDetailsPage.pressYesForPopup(page)
-    await vacancyDetailsPage.checkActivityExist('changed archived at')
+    await vacancyDetailsPage.checkActivityExist('Archived set to Yes')
 
     await navigationMenuPage.clickButtonVacancies()
     await vacanciesPage.checkVacancyNotExist(
diff --git a/tests/sanity/tests/tracker/mentions.spec.ts b/tests/sanity/tests/tracker/mentions.spec.ts
index 12f773273b..49281034a7 100644
--- a/tests/sanity/tests/tracker/mentions.spec.ts
+++ b/tests/sanity/tests/tracker/mentions.spec.ts
@@ -58,7 +58,6 @@ test.describe('Mentions issue tests', () => {
       ...mentionIssue,
       assignee: 'Dirak Kainin'
     })
-    await issuesDetailsPage.checkActivityExist('changed assignee')
     await issuesDetailsPage.checkActivityContentExist('Assignee set to Dirak Kainin')
     await issuesDetailsPage.checkCollaboratorsCount('2 members')
     await issuesDetailsPage.checkCollaborators(['Appleseed John', 'Dirak Kainin'])
@@ -81,7 +80,6 @@ test.describe('Mentions issue tests', () => {
     await issuesPage.openIssueByName(backlinkIssue.title)
 
     const issuesDetailsPage = new IssuesDetailsPage(page)
-    await issuesDetailsPage.checkActivityExist('created issue')
     await issuesDetailsPage.checkActivityContentExist(`New issue: ${backlinkIssue.title}`)
     await issuesDetailsPage.openLinkFromActivitiesByText(backlinkIssue.title)
     await issuesDetailsPage.checkIssue(backlinkIssue)
diff --git a/tests/sanity/tests/tracker/milestone.spec.ts b/tests/sanity/tests/tracker/milestone.spec.ts
index 63a1630c6d..53cd6acf57 100644
--- a/tests/sanity/tests/tracker/milestone.spec.ts
+++ b/tests/sanity/tests/tracker/milestone.spec.ts
@@ -61,9 +61,9 @@ test.describe('Tracker milestone tests', () => {
 
     await milestonesDetailsPage.addComment(commentText)
     await milestonesDetailsPage.checkCommentExist(commentText)
-    await milestonesDetailsPage.checkActivityExist('created milestone')
-    await milestonesDetailsPage.checkActivityExist('changed target date at')
-    await milestonesDetailsPage.checkActivityExist('changed status at')
+
+    await milestonesDetailsPage.checkActivityContentExist(`New milestone: ${editMilestone.name}`)
+    await milestonesDetailsPage.checkActivityContentExist(`Status set to ${editMilestone.status}`)
     await milestonesDetailsPage.checkActivityExist('changed description at')
   })
 
diff --git a/tests/sanity/tests/tracker/template.spec.ts b/tests/sanity/tests/tracker/template.spec.ts
index 0bc0a12fae..864512e055 100644
--- a/tests/sanity/tests/tracker/template.spec.ts
+++ b/tests/sanity/tests/tracker/template.spec.ts
@@ -80,7 +80,7 @@ test.describe('Tracker template tests', () => {
       estimation: '1d'
     })
 
-    await templateDetailsPage.checkCommentExist('Appleseed John created template')
+    await templateDetailsPage.checkActivityContent(`New template: ${newTemplate.title}`)
 
     const estimations = new Map([
       ['0', '0h'],