n8n/packages/nodes-base/nodes/HelpScout/ConversationDescription.ts
Mutasem Aldmour ce066a160f
Remove unnessasry <br/> (#2340)
* introduce analytics

* add user survey backend

* add user survey backend

* set answers on survey submit

Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>

* change name to personalization

* lint

Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>

* N8n 2495 add personalization modal (#2280)

* update modals

* add onboarding modal

* implement questions

* introduce analytics

* simplify impl

* implement survey handling

* add personalized cateogry

* update modal behavior

* add thank you view

* handle empty cases

* rename modal

* standarize modal names

* update image, add tags to headings

* remove unused file

* remove unused interfaces

* clean up footer spacing

* introduce analytics

* refactor to fix bug

* update endpoint

* set min height

* update stories

* update naming from questions to survey

* remove spacing after core categories

* fix bug in logic

* sort nodes

* rename types

* merge with be

* rename userSurvey

* clean up rest api

* use constants for keys

* use survey keys

* clean up types

* move personalization to its own file

Co-authored-by: ahsan-virani <ahsan.virani@gmail.com>

* update parameter inputs to be multiline

* update spacing

* Survey new options (#2300)

* split up options

* fix quotes

* remove unused import

* refactor node credentials

* add user created workflow event (#2301)

* update multi params

* simplify env vars

* fix versionCli on FE

* update personalization env

* clean up node detail settings

* fix event User opened Credentials panel

* fix font sizes across modals

* clean up input spacing

* fix select modal spacing

* increase spacing

* fix input copy

* fix webhook, tab spacing, retry button

* fix button sizes

* fix button size

* add mini xlarge sizes

* fix webhook spacing

* fix nodes panel event

* fix workflow id in workflow execute event

* improve telemetry error logging

* fix config and stop process events

* add flush call on n8n stop

* ready for release

* fix input error highlighting

* revert change

* update toggle spacing

* fix delete positioning

* keep tooltip while focused

* set strict size

* increase left spacing

* fix sort icons

* remove unnessasry <br/>

* remove unnessary break

* remove unnessary margin

* clean unused functionality

* remove unnessary css

* remove duplicate tracking

* only show tooltip when hovering over label

* remove extra space

* add br

* remove extra space

* clean up commas

* clean up commas

* remove extra space

* remove extra space

* rewrite desc

* add commas

* add space

* remove extra space

* add space

* add dot

* update credentials section

* use includes

Co-authored-by: ahsan-virani <ahsan.virani@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-10-27 15:00:13 -05:00

639 lines
12 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { INodeProperties } from 'n8n-workflow';
export const conversationOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
displayOptions: {
show: {
resource: [
'conversation',
],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a new conversation',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a conversation',
},
{
name: 'Get',
value: 'get',
description: 'Get a conversation',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get all conversations',
},
],
default: 'create',
description: 'The operation to perform.',
},
] as INodeProperties[];
export const conversationFields = [
/* -------------------------------------------------------------------------- */
/* conversation:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Mailbox',
name: 'mailboxId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getMailboxes',
},
required: true,
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
default: '',
description: 'ID of a mailbox where the conversation is being created',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
required: true,
options: [
{
name: 'Active',
value: 'active',
},
{
name: 'Closed',
value: 'closed',
},
{
name: 'Pending',
value: 'pending',
},
],
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
default: '',
description: 'Conversation status',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
required: true,
typeOptions: {
alwaysOpenEditWindow: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
default: '',
description: `Conversations subject`,
},
{
displayName: 'Type',
name: 'type',
required: true,
type: 'options',
options: [
{
name: 'Chat',
value: 'chat',
},
{
name: 'Email',
value: 'email',
},
{
name: 'Phone',
value: 'phone',
},
],
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
default: '',
description: 'Conversation type',
},
{
displayName: 'Resolve Data',
name: 'resolveData',
type: 'boolean',
default: true,
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
description: 'By default the response only contain the ID to resource. If this option gets activated, it will resolve the data automatically.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
options: [
{
displayName: 'Assign To',
name: 'assignTo',
type: 'number',
default: 0,
description: 'The Help Scout user assigned to the conversation.',
},
{
displayName: 'Auto Reply',
name: 'autoReply',
type: 'boolean',
default: false,
description: `When autoReply is set to true, an auto reply will be sent
as long as there is at least one customer thread in the conversation.`,
},
{
displayName: 'Closed At',
name: 'closedAt',
type: 'dateTime',
default: '',
description: `When the conversation was closed, only applicable for imported conversations`,
},
{
displayName: 'Created At',
name: 'createdAt',
type: 'dateTime',
default: '',
description: `When this conversation was created - ISO 8601 date time`,
},
{
displayName: 'Customer Email',
name: 'customerEmail',
type: 'string',
default: '',
},
{
displayName: 'Customer ID',
name: 'customerId',
type: 'number',
default: 0,
},
{
displayName: 'Imported',
name: 'imported',
type: 'boolean',
default: false,
description: `When imported is set to true, no outgoing emails or notifications will be generated.`,
},
{
displayName: 'Tags',
name: 'tags',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTags',
},
default: [],
description: 'List of tags to be be added to the conversation',
},
{
displayName: 'User ID',
name: 'user',
type: 'number',
default: 0,
description: 'ID of the user who is adding the conversation and threads.',
},
],
},
{
displayName: 'Threads',
name: 'threadsUi',
placeholder: 'Add Thread',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'conversation',
],
},
},
default: {},
options: [
{
displayName: 'Thread',
name: 'threadsValues',
values: [
{
displayName: 'Type',
name: 'type',
type: 'options',
options: [
{
name: 'Chat',
value: 'chat',
},
{
name: 'Customer',
value: 'customer',
},
{
name: 'Note',
value: 'note',
},
{
name: 'Phone',
value: 'phone',
},
{
name: 'Reply',
value: 'reply',
},
],
default: '',
},
{
displayName: 'Text',
name: 'text',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
description: 'The message text.',
},
{
displayName: 'Bcc',
name: 'bcc',
displayOptions: {
show: {
type: [
'customer',
],
},
},
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Email',
},
default: [],
description: 'Email addresses.',
},
{
displayName: 'Cc',
name: 'cc',
displayOptions: {
show: {
type: [
'customer',
],
},
},
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Email',
},
default: [],
description: 'Email addresses.',
},
{
displayName: 'Draft',
name: 'draft',
displayOptions: {
show: {
type: [
'reply',
],
},
},
type: 'boolean',
default: false,
description: 'If set to true, a draft reply is created',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* conversation:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Conversation ID',
name: 'conversationId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'conversation',
],
operation: [
'get',
],
},
},
description: 'conversation ID',
},
/* -------------------------------------------------------------------------- */
/* conversation:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Conversation ID',
name: 'conversationId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'conversation',
],
operation: [
'delete',
],
},
},
description: 'conversation ID',
},
/* -------------------------------------------------------------------------- */
/* conversation:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
operation: [
'getAll',
],
resource: [
'conversation',
],
},
},
default: false,
description: 'If all results should be returned or only up to a given limit.',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
operation: [
'getAll',
],
resource: [
'conversation',
],
returnAll: [
false,
],
},
},
typeOptions: {
minValue: 1,
},
default: 50,
description: 'How many results to return.',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: [
'conversation',
],
operation: [
'getAll',
],
},
},
options: [
{
displayName: 'Assign To',
name: 'assignTo',
type: 'number',
default: 0,
description: 'Filters conversations by assignee id',
},
{
displayName: 'Embed',
name: 'embed',
type: 'options',
options: [
{
name: 'Threads',
value: 'threads',
},
],
default: '',
description: 'Allows embedding/loading of sub-entities',
},
{
displayName: 'Folder ID',
name: 'folder',
type: 'string',
default: '',
description: 'Filters conversations from a specific folder id',
},
{
displayName: 'Mailbox ID',
name: 'mailbox',
type: 'string',
default: '',
description: 'Filters conversations from a specific mailbox',
},
{
displayName: 'Modified Since',
name: 'modifiedSince',
type: 'dateTime',
default: '',
description: 'Returns only conversations that were modified after this date',
},
{
displayName: 'Number',
name: 'number',
type: 'number',
default: 0,
typeOptions: {
minValue: 0,
},
description: 'Looks up conversation by conversation number',
},
{
displayName: 'Query',
name: 'query',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
description: 'Advanced search <a href="https://developer.helpscout.com/mailbox-api/endpoints/conversations/list/#query">Examples</a>',
},
{
displayName: 'Sort Field',
name: 'sortField',
type: 'options',
options: [
{
name: 'Created At',
value: 'createdAt',
},
{
name: 'customer Email',
value: 'customerEmail',
},
{
name: 'customer Name',
value: 'customerName',
},
{
name: 'Mailbox ID',
value: 'mailboxid',
},
{
name: 'Modified At',
value: 'modifiedAt',
},
{
name: 'Number',
value: 'number',
},
{
name: 'Score',
value: 'score',
},
{
name: 'Status',
value: 'status',
},
{
name: 'Subject',
value: 'subject',
},
],
default: '',
description: 'Sorts the result by specified field',
},
{
displayName: 'Sort Order',
name: 'sortOrder',
type: 'options',
options: [
{
name: 'ASC',
value: 'asc',
},
{
name: 'DESC',
value: 'desc',
},
],
default: 'desc',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Active',
value: 'active',
},
{
name: 'All',
value: 'all',
},
{
name: 'Closed',
value: 'closed',
},
{
name: 'Open',
value: 'open',
},
{
name: 'Pending',
value: 'pending',
},
{
name: 'Spam',
value: 'spam',
},
],
default: 'active',
description: 'Filter conversation by status',
},
{
displayName: 'Tags',
name: 'tags',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTags',
},
default: [],
description: 'Filter conversation by tags',
},
],
},
] as INodeProperties[];