diff --git a/lib/integrations/slack/send_on_slack_service.rb b/lib/integrations/slack/send_on_slack_service.rb index d4889bc4c..d04742d18 100644 --- a/lib/integrations/slack/send_on_slack_service.rb +++ b/lib/integrations/slack/send_on_slack_service.rb @@ -38,7 +38,7 @@ class Integrations::Slack::SendOnSlackService < Base::SendOnChannelService def message_content private_indicator = message.private? ? 'private: ' : '' - sanitized_content = ActionView::Base.full_sanitizer.sanitize(message_text) + sanitized_content = ActionView::Base.full_sanitizer.sanitize(format_message_content) if conversation.identifier.present? "#{private_indicator}#{sanitized_content}" @@ -47,6 +47,10 @@ class Integrations::Slack::SendOnSlackService < Base::SendOnChannelService end end + def format_message_content + message.message_type == 'activity' ? "_#{message_text}_" : message_text + end + def message_text if message.content.present? message.content.gsub(MENTION_REGEX, '\1') @@ -73,7 +77,7 @@ class Integrations::Slack::SendOnSlackService < Base::SendOnChannelService end def avatar_url(sender) - sender_type = sender.instance_of?(Contact) ? 'contact' : 'user' + sender_type = sender_type(sender).downcase blob_key = sender&.avatar&.attached? ? sender.avatar.blob.key : nil generate_url(sender_type, blob_key) end @@ -130,7 +134,15 @@ class Integrations::Slack::SendOnSlackService < Base::SendOnChannelService end def sender_type(sender) - sender.instance_of?(Contact) ? 'Contact' : 'Agent' + if sender.instance_of?(Contact) + 'Contact' + elsif message.message_type == 'template' && sender.nil? + 'Bot' + elsif message.message_type == 'activity' && sender.nil? + 'System' + else + 'Agent' + end end def update_reference_id diff --git a/public/integrations/slack/user.png b/public/integrations/slack/agent.png similarity index 100% rename from public/integrations/slack/user.png rename to public/integrations/slack/agent.png diff --git a/public/integrations/slack/bot.png b/public/integrations/slack/bot.png new file mode 100644 index 000000000..4b5a2d686 Binary files /dev/null and b/public/integrations/slack/bot.png differ