diff --git a/ee/app/models/incident_management/issuable_resource_link.rb b/ee/app/models/incident_management/issuable_resource_link.rb
index 3a55375b56d7672e6b27084da5c663eaf035766d..eedca3fc34877c94430d85219d2386b939c3d0a4 100644
--- a/ee/app/models/incident_management/issuable_resource_link.rb
+++ b/ee/app/models/incident_management/issuable_resource_link.rb
@@ -15,5 +15,7 @@ class IssuableResourceLink < ApplicationRecord
     validates :link_text, length: { maximum: 255 }
 
     scope :order_by_created_at_asc, -> { reorder(created_at: :asc) }
+    scope :slack_links, -> { where(link_type: :slack) }
+    scope :zoom_links, -> { where(link_type: :zoom) }
   end
 end
diff --git a/ee/app/services/incident_management/issuable_resource_links/create_service.rb b/ee/app/services/incident_management/issuable_resource_links/create_service.rb
index 0c735178c2a33e371ac3916f4fb7de1684fa6b32..d41614331910919ce9f128f1e89e0a8b739a3929 100644
--- a/ee/app/services/incident_management/issuable_resource_links/create_service.rb
+++ b/ee/app/services/incident_management/issuable_resource_links/create_service.rb
@@ -15,10 +15,10 @@ def initialize(incident, user, params)
       def execute
         return error_no_permissions unless allowed?
 
-        params[:link_text] = params[:link] if params[:link_text].blank?
-
         params[:link_type] = get_link_type if params[:link_type].blank?
 
+        params[:link_text] = get_link_text(params[:link], params[:link_type].to_s) if params[:link_text].blank?
+
         issuable_resource_link_params = params.merge({ issue: incident })
         issuable_resource_link = IncidentManagement::IssuableResourceLink.new(issuable_resource_link_params)
 
@@ -43,6 +43,14 @@ def get_link_type
 
         :general
       end
+
+      def get_link_text(link, link_type)
+        return link if link_type == 'general'
+
+        prefix = link_type == 'slack' ? 'Slack #' : 'Zoom #'
+
+        prefix + link.split('/').last.split('?').first
+      end
     end
   end
 end
diff --git a/ee/spec/models/incident_management/issuable_resource_link_spec.rb b/ee/spec/models/incident_management/issuable_resource_link_spec.rb
index af899ee4ba66384a668f4f61e8a5ea86ad104b8c..0026889fe11fd82baf8ae6c1de5803c974506672 100644
--- a/ee/spec/models/incident_management/issuable_resource_link_spec.rb
+++ b/ee/spec/models/incident_management/issuable_resource_link_spec.rb
@@ -4,6 +4,8 @@
 
 RSpec.describe IncidentManagement::IssuableResourceLink, type: :model do
   let_it_be(:issuable_resource_link) { create(:issuable_resource_link) }
+  let_it_be(:issuable_resource_link1) { create(:issuable_resource_link, link_type: :slack, link_text: 'slack1') }
+  let_it_be(:issuable_resource_link2) { create(:issuable_resource_link, link_type: :slack, link_text: 'slack2') }
 
   describe 'associations' do
     it { is_expected.to belong_to(:issue) }
@@ -50,4 +52,17 @@
 
     it { is_expected.to define_enum_for(:link_type).with_values(link_type_values) }
   end
+
+  describe 'scopes' do
+    it 'returns slack links for slack_links' do
+      expect(described_class.slack_links).to contain_exactly(
+        issuable_resource_link1,
+        issuable_resource_link2
+      )
+    end
+
+    it 'returns zoom links for zoom_links' do
+      expect(described_class.zoom_links).to contain_exactly(issuable_resource_link)
+    end
+  end
 end
diff --git a/ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb b/ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb
index 9eaa8757ce57db0f7a0900bc90154c8163fd1bf5..ba86b789686093552bc129279324203e6fdd1c8f 100644
--- a/ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb
+++ b/ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb
@@ -10,7 +10,7 @@
   let_it_be_with_refind(:incident) { create(:incident, project: project) }
 
   let(:current_user) { user_with_permissions }
-  let(:link) { 'https://gitlab.zoom.us' }
+  let(:link) { 'https://gitlab.zoom.us/j/12345?pwd=1234555' }
   let(:link_type) { :zoom }
   let(:link_text) { 'Incident zoom link' }
   let(:args) { { link: link, link_type: link_type, link_text: link_text } }
@@ -97,15 +97,28 @@
       where(:link_text) { [nil, '', ' '] }
 
       with_them do
-        it 'stores link as link text' do
+        it 'stores id as link text' do
           result = execute.payload[:issuable_resource_link]
 
           expect(execute).to be_success
-          expect(result.link_text).to eq(result.link)
+          expect(result.link_text).to eq('Zoom #12345')
         end
       end
     end
 
+    context 'when link type is general' do
+      let(:link_type) { :general }
+      let(:link) { 'https://gitlab.com/project/issue/1' }
+      let(:link_text) { '' }
+
+      it 'stores link as link text for general type' do
+        result = execute.payload[:issuable_resource_link]
+
+        expect(execute).to be_success
+        expect(result.link_text).to eq(link)
+      end
+    end
+
     context 'when link type is absent' do
       let(:args) { { link: 'https://gitlab.slack.com/messages/IDHERE', link_text: link_text } }
 
diff --git a/ee/spec/support/shared_examples/quick_actions/issue/link_quick_actions_shared_examples.rb b/ee/spec/support/shared_examples/quick_actions/issue/link_quick_actions_shared_examples.rb
index bfcdfc1ee0e2442e01c99d6c429b713b8af3f44f..2d19414cbdbc43e0026d83a0385e9775a7698f1e 100644
--- a/ee/spec/support/shared_examples/quick_actions/issue/link_quick_actions_shared_examples.rb
+++ b/ee/spec/support/shared_examples/quick_actions/issue/link_quick_actions_shared_examples.rb
@@ -14,7 +14,7 @@
     context 'with valid links' do
       where(:link, :link_text, :link_text_expected, :link_type) do
         [
-          [slack_link, '', slack_link, 'slack'],
+          [slack_link, '', 'Slack #eeee', 'slack'],
           [slack_link, 'Slack link for incident', 'Slack link for incident', 'slack'],
           [zoom_link, ' Demo zoom link', 'Demo zoom link', 'zoom'],
           [general_link, 'General link, general with command', 'General link, general with command', 'general']
diff --git a/ee/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb b/ee/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
index 49a02d37334f448cea34c9d9299fb86685cf3832..cd0dc4461dc17ebb0e414703aa31a6320a8154f3 100644
--- a/ee/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
+++ b/ee/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
@@ -12,7 +12,7 @@
     context 'with valid zoom_meetings' do
       where(:link_text, :link_text_expected) do
         [
-          ['', zoom_link],
+          ['', 'Zoom #123456789'],
           ['Demo meeting', 'Demo meeting'],
           ['Fire, fire, everything on fire', 'Fire, fire, everything on fire'],
           [' Space, fire extinguished', 'Space, fire extinguished']