feat: Add private note action to automations (#11926)
## Summary - allow AutomationRule to accept `add_private_note` action - support `add_private_note` in automation action service - expose private note action in frontend constants and i18n - test new automation rule action ## Testing - `pnpm eslint app/javascript/dashboard/routes/dashboard/settings/automation/constants.js` - `bundle exec rubocop app/services/automation_rules/action_service.rb app/models/automation_rule.rb spec/services/automation_rules/action_service_spec.rb` - `bundle exec rspec spec/services/automation_rules/action_service_spec.rb` ------ https://chatgpt.com/codex/tasks/task_e_6870c5f7b8b88326a9bd60b2ba710ccd Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
This commit is contained in:
@@ -146,6 +146,7 @@
|
||||
"SEND_WEBHOOK_EVENT": "Send Webhook Event",
|
||||
"SEND_ATTACHMENT": "Send Attachment",
|
||||
"SEND_MESSAGE": "Send a Message",
|
||||
"ADD_PRIVATE_NOTE": "Add a Private Note",
|
||||
"CHANGE_PRIORITY": "Change Priority",
|
||||
"ADD_SLA": "Add SLA",
|
||||
"OPEN_CONVERSATION": "Open conversation"
|
||||
|
||||
@@ -555,6 +555,11 @@ export const AUTOMATION_ACTION_TYPES = [
|
||||
label: 'SEND_MESSAGE',
|
||||
inputType: 'textarea',
|
||||
},
|
||||
{
|
||||
key: 'add_private_note',
|
||||
label: 'ADD_PRIVATE_NOTE',
|
||||
inputType: 'textarea',
|
||||
},
|
||||
{
|
||||
key: 'change_priority',
|
||||
label: 'CHANGE_PRIORITY',
|
||||
|
||||
@@ -41,7 +41,8 @@ class AutomationRule < ApplicationRecord
|
||||
|
||||
def actions_attributes
|
||||
%w[send_message add_label remove_label send_email_to_team assign_team assign_agent send_webhook_event mute_conversation
|
||||
send_attachment change_status resolve_conversation open_conversation snooze_conversation change_priority send_email_transcript].freeze
|
||||
send_attachment change_status resolve_conversation open_conversation snooze_conversation change_priority send_email_transcript
|
||||
add_private_note].freeze
|
||||
end
|
||||
|
||||
def file_base_data
|
||||
|
||||
@@ -47,6 +47,13 @@ class AutomationRules::ActionService < ActionService
|
||||
Messages::MessageBuilder.new(nil, @conversation, params).perform
|
||||
end
|
||||
|
||||
def add_private_note(message)
|
||||
return if conversation_a_tweet?
|
||||
|
||||
params = { content: message[0], private: true, content_attributes: { automation_rule_id: @rule.id } }
|
||||
Messages::MessageBuilder.new(nil, @conversation.reload, params).perform
|
||||
end
|
||||
|
||||
def send_email_to_team(params)
|
||||
teams = Team.where(id: params[0][:team_ids])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user