mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-20 21:15:01 +00:00
* feat: Adds automation view for assigning an agent Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
385 lines
9.0 KiB
JavaScript
385 lines
9.0 KiB
JavaScript
import {
|
|
OPERATOR_TYPES_1,
|
|
OPERATOR_TYPES_2,
|
|
OPERATOR_TYPES_3,
|
|
} from './operators';
|
|
|
|
export const AUTOMATIONS = {
|
|
message_created: {
|
|
conditions: [
|
|
{
|
|
key: 'message_type',
|
|
name: 'Message Type',
|
|
attributeI18nKey: 'MESSAGE_TYPE',
|
|
inputType: 'search_select',
|
|
filterOperators: OPERATOR_TYPES_1,
|
|
},
|
|
{
|
|
key: 'content',
|
|
name: 'Message Content',
|
|
attributeI18nKey: 'MESSAGE_CONTAINS',
|
|
inputType: 'plain_text',
|
|
filterOperators: OPERATOR_TYPES_2,
|
|
},
|
|
{
|
|
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: 'add_label',
|
|
name: 'Add a label',
|
|
attributeI18nKey: 'ADD_LABEL',
|
|
},
|
|
{
|
|
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: 'resolve_conversation',
|
|
name: 'Resolve conversation',
|
|
attributeI18nKey: 'RESOLVE_CONVERSATION',
|
|
},
|
|
{
|
|
key: 'send_webhook_event',
|
|
name: 'Send Webhook Event',
|
|
attributeI18nKey: 'SEND_WEBHOOK_EVENT',
|
|
},
|
|
{
|
|
key: 'send_attachment',
|
|
name: 'Send Attachment',
|
|
attributeI18nKey: 'SEND_ATTACHMENT',
|
|
},
|
|
],
|
|
},
|
|
conversation_created: {
|
|
conditions: [
|
|
{
|
|
key: 'status',
|
|
name: 'Status',
|
|
attributeI18nKey: 'STATUS',
|
|
inputType: 'multi_select',
|
|
filterOperators: OPERATOR_TYPES_1,
|
|
},
|
|
{
|
|
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: '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: 'resolve_conversation',
|
|
name: 'Resolve conversation',
|
|
attributeI18nKey: 'RESOLVE_CONVERSATION',
|
|
},
|
|
{
|
|
key: 'send_webhook_event',
|
|
name: 'Send Webhook Event',
|
|
attributeI18nKey: 'SEND_WEBHOOK_EVENT',
|
|
},
|
|
{
|
|
key: 'send_attachment',
|
|
name: 'Send Attachment',
|
|
attributeI18nKey: 'SEND_ATTACHMENT',
|
|
},
|
|
],
|
|
},
|
|
conversation_updated: {
|
|
conditions: [
|
|
{
|
|
key: 'status',
|
|
name: 'Status',
|
|
attributeI18nKey: 'STATUS',
|
|
inputType: 'multi_select',
|
|
filterOperators: OPERATOR_TYPES_1,
|
|
},
|
|
{
|
|
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: 'resolve_conversation',
|
|
name: 'Resolve conversation',
|
|
attributeI18nKey: 'RESOLVE_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 = [
|
|
{
|
|
key: 'conversation_created',
|
|
value: 'Conversation Created',
|
|
},
|
|
{
|
|
key: 'conversation_updated',
|
|
value: 'Conversation Updated',
|
|
},
|
|
{
|
|
key: 'message_created',
|
|
value: 'Message Created',
|
|
},
|
|
];
|
|
|
|
export const AUTOMATION_ACTION_TYPES = [
|
|
{
|
|
key: 'assign_agent',
|
|
label: 'Assign to agent',
|
|
inputType: 'search_select',
|
|
},
|
|
{
|
|
key: 'assign_team',
|
|
label: 'Assign a team',
|
|
inputType: 'search_select',
|
|
},
|
|
{
|
|
key: 'add_label',
|
|
label: 'Add a label',
|
|
inputType: 'multi_select',
|
|
},
|
|
{
|
|
key: 'send_email_to_team',
|
|
label: 'Send an email to team',
|
|
inputType: 'team_message',
|
|
},
|
|
{
|
|
key: 'send_email_transcript',
|
|
label: 'Send an email transcript',
|
|
inputType: 'email',
|
|
},
|
|
{
|
|
key: 'mute_conversation',
|
|
label: 'Mute conversation',
|
|
inputType: null,
|
|
},
|
|
{
|
|
key: 'snooze_conversation',
|
|
label: 'Snooze conversation',
|
|
inputType: null,
|
|
},
|
|
{
|
|
key: 'resolve_conversation',
|
|
label: 'Resolve conversation',
|
|
inputType: null,
|
|
},
|
|
{
|
|
key: 'send_webhook_event',
|
|
label: 'Send Webhook Event',
|
|
inputType: 'url',
|
|
},
|
|
{
|
|
key: 'send_attachment',
|
|
label: 'Send Attachment',
|
|
inputType: 'attachment',
|
|
},
|
|
{
|
|
key: 'send_message',
|
|
label: 'Send a message',
|
|
inputType: 'textarea',
|
|
},
|
|
];
|