Added event for conversation opened (#6412)

This commit is contained in:
Tejaswini Chile
2023-02-08 12:05:22 +05:30
committed by GitHub
parent 73d14f204e
commit 7c21cef467
5 changed files with 204 additions and 0 deletions

View File

@@ -165,6 +165,17 @@ export const getDefaultConditions = eventName => {
},
];
}
if (eventName === 'conversation_opened') {
return [
{
attribute_key: 'browser_language',
filter_operator: 'equal_to',
values: '',
query_operator: 'and',
custom_attribute_type: '',
},
];
}
return [
{
attribute_key: 'status',

View File

@@ -284,6 +284,9 @@ export default {
this.automationTypes.conversation_updated.conditions.push(
...manifestedCustomAttributes
);
this.automationTypes.conversation_opened.conditions.push(
...manifestedCustomAttributes
);
},
},
};

View File

@@ -308,6 +308,111 @@ export const AUTOMATIONS = {
},
],
},
conversation_opened: {
conditions: [
{
key: 'browser_language',
name: 'Browser Language',
attributeI18nKey: 'BROWSER_LANGUAGE',
inputType: 'search_select',
filterOperators: OPERATOR_TYPES_1,
},
{
key: 'mail_subject',
name: 'Email Subject',
attributeI18nKey: 'MAIL_SUBJECT',
inputType: 'plain_text',
filterOperators: OPERATOR_TYPES_2,
},
{
key: 'country_code',
name: 'Country',
attributeI18nKey: 'COUNTRY_NAME',
inputType: 'search_select',
filterOperators: OPERATOR_TYPES_1,
},
{
key: 'referer',
name: 'Referrer Link',
attributeI18nKey: 'REFERER_LINK',
inputType: 'plain_text',
filterOperators: OPERATOR_TYPES_2,
},
{
key: 'assignee_id',
name: 'Assignee',
attributeI18nKey: 'ASSIGNEE_NAME',
inputType: 'search_select',
filterOperators: OPERATOR_TYPES_3,
},
{
key: 'team_id',
name: 'Team',
attributeI18nKey: 'TEAM_NAME',
inputType: 'search_select',
filterOperators: OPERATOR_TYPES_3,
},
{
key: 'inbox_id',
name: 'Inbox',
attributeI18nKey: 'INBOX',
inputType: 'multi_select',
filterOperators: OPERATOR_TYPES_1,
},
],
actions: [
{
key: 'assign_agent',
name: 'Assign to agent',
attributeI18nKey: 'ASSIGN_AGENT',
},
{
key: 'assign_team',
name: 'Assign a team',
attributeI18nKey: 'ASSIGN_TEAM',
},
{
key: 'assign_agent',
name: 'Assign an agent',
attributeI18nKey: 'ASSIGN_AGENT',
},
{
key: 'send_email_to_team',
name: 'Send an email to team',
attributeI18nKey: 'SEND_EMAIL_TO_TEAM',
},
{
key: 'send_message',
name: 'Send a message',
attributeI18nKey: 'SEND_MESSAGE',
},
{
key: 'send_email_transcript',
name: 'Send an email transcript',
attributeI18nKey: 'SEND_EMAIL_TRANSCRIPT',
},
{
key: 'mute_conversation',
name: 'Mute conversation',
attributeI18nKey: 'MUTE_CONVERSATION',
},
{
key: 'snooze_conversation',
name: 'Snooze conversation',
attributeI18nKey: 'MUTE_CONVERSATION',
},
{
key: 'send_webhook_event',
name: 'Send Webhook Event',
attributeI18nKey: 'SEND_WEBHOOK_EVENT',
},
{
key: 'send_attachment',
name: 'Send Attachment',
attributeI18nKey: 'SEND_ATTACHMENT',
},
],
},
};
export const AUTOMATION_RULE_EVENTS = [
@@ -323,6 +428,10 @@ export const AUTOMATION_RULE_EVENTS = [
key: 'message_created',
value: 'Message Created',
},
{
key: 'conversation_opened',
value: 'Conversation Opened',
},
];
export const AUTOMATION_ACTION_TYPES = [

View File

@@ -33,6 +33,23 @@ class AutomationRuleListener < BaseListener
end
end
def conversation_opened(event_obj)
return if performed_by_automation?(event_obj)
conversation = event_obj.data[:conversation]
account = conversation.account
changed_attributes = event_obj.data[:changed_attributes]
return unless rule_present?('conversation_opened', account)
rules = current_account_rules('conversation_opened', account)
rules.each do |rule|
conditions_match = ::AutomationRules::ConditionsFilterService.new(rule, conversation, { changed_attributes: changed_attributes }).perform
AutomationRules::ActionService.new(rule, account, conversation).perform if conditions_match.present?
end
end
def message_created(event_obj)
message = event_obj.data[:message]