diff --git a/app/javascript/dashboard/helper/automationHelper.js b/app/javascript/dashboard/helper/automationHelper.js index 715a11294..6bafb6b45 100644 --- a/app/javascript/dashboard/helper/automationHelper.js +++ b/app/javascript/dashboard/helper/automationHelper.js @@ -97,8 +97,9 @@ export const generateConditionOptions = (options, key = 'id') => { }); }; -export const getActionOptions = ({ teams, labels, type }) => { +export const getActionOptions = ({ agents, teams, labels, type }) => { const actionsMap = { + assign_agent: agents, assign_team: teams, send_email_to_team: teams, add_label: generateConditionOptions(labels, 'title'), @@ -178,7 +179,7 @@ export const getDefaultConditions = eventName => { export const getDefaultActions = () => { return [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ]; @@ -213,7 +214,7 @@ export const isCustomAttribute = (attrs, key) => { export const generateCustomAttributes = ( conversationAttributes = [], - contactAttribtues = [], + contactAttributes = [], conversationlabel, contactlabel ) => { @@ -228,14 +229,14 @@ export const generateCustomAttributes = ( ...conversationAttributes ); } - if (contactAttribtues.length) { + if (contactAttributes.length) { customAttributes.push( { key: `contact_custom_attribute`, name: contactlabel, disabled: true, }, - ...contactAttribtues + ...contactAttributes ); } return customAttributes; diff --git a/app/javascript/dashboard/mixins/automations/methodsMixin.js b/app/javascript/dashboard/mixins/automations/methodsMixin.js index ac9dddd06..1387868c5 100644 --- a/app/javascript/dashboard/mixins/automations/methodsMixin.js +++ b/app/javascript/dashboard/mixins/automations/methodsMixin.js @@ -250,8 +250,8 @@ export default { }; }, getActionDropdownValues(type) { - const { labels, teams } = this; - return getActionOptions({ labels, teams, type }); + const { agents, labels, teams } = this; + return getActionOptions({ agents, labels, teams, type }); }, manifestCustomAttributes() { const conversationCustomAttributesRaw = this.$store.getters[ diff --git a/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue b/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue index 8b5a13585..e0af07c04 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue @@ -187,7 +187,7 @@ export default { ], actions: [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ], diff --git a/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js b/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js index 62606ff13..260288e8b 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js +++ b/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js @@ -30,6 +30,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -129,6 +134,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -241,6 +251,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -311,6 +326,11 @@ export const AUTOMATION_RULE_EVENTS = [ ]; export const AUTOMATION_ACTION_TYPES = [ + { + key: 'assign_agent', + label: 'Assign to agent', + inputType: 'search_select', + }, { key: 'assign_team', label: 'Assign a team', diff --git a/app/javascript/shared/mixins/specs/automationHelper.spec.js b/app/javascript/shared/mixins/specs/automationHelper.spec.js index 468f22d96..481613323 100644 --- a/app/javascript/shared/mixins/specs/automationHelper.spec.js +++ b/app/javascript/shared/mixins/specs/automationHelper.spec.js @@ -214,7 +214,7 @@ describe('automationMethodsMixin', () => { it('getDefaultActions returns the resp default action model', () => { const genericActionModel = [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ]; diff --git a/app/javascript/shared/mixins/specs/automationMixin.spec.js b/app/javascript/shared/mixins/specs/automationMixin.spec.js index e0f72c0d3..daf2121a0 100644 --- a/app/javascript/shared/mixins/specs/automationMixin.spec.js +++ b/app/javascript/shared/mixins/specs/automationMixin.spec.js @@ -209,7 +209,7 @@ describe('automationMethodsMixin', () => { it('appendNewAction appends a new condition to the automation data property', () => { const action = { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }; const data = () => { @@ -339,6 +339,9 @@ describe('automationMethodsMixin', () => { }; }; const computed = { + agents() { + return agents; + }, labels() { return labels; }, @@ -419,6 +422,9 @@ describe('automationMethodsMixin', () => { return {}; }; const computed = { + agents() { + return agents; + }, labels() { return labels; }, diff --git a/app/models/concerns/activity_message_handler.rb b/app/models/concerns/activity_message_handler.rb index cdab4e17d..7fc020e3c 100644 --- a/app/models/concerns/activity_message_handler.rb +++ b/app/models/concerns/activity_message_handler.rb @@ -104,6 +104,8 @@ module ActivityMessageHandler end def create_assignee_change_activity(user_name) + user_name = activity_message_ownner(user_name) + return unless user_name content = generate_assignee_change_activity_content(user_name)