n8n/packages/nodes-base/nodes/Hubspot/V2/EngagementDescription.ts
agobrech 2913e676e6
feat(HubSpot Node): Overhaul the HubSpot Node (#4337)
* 🎨 Change current defualt ressource to contact

* Change display name for list membership

* 🎨 Change display name for ressource properties

* 🔥 Remove Name & ID in Display name

* 🐛 Fix simplify data where behavior was wrong

* 🎨 Move simplfy output to additional fields

* Change data type from string to number for IDs

* Add tooltip for contact ID

* 🎨 Change tooltip for list of Id's

* Change name of fields and reorgaized options

* 🥅 Add clearer errors for some specific cases

* 🎨 changed filters in Deal get all

* Deprecate form ressource

*  add pipeline dropdown to auto fetch

* 🎨 Change direction's name

* 🎨 Change description of filter groups

* 🎨 Add validation and errors for maximum filters

*  Add ressource locator to all ressources

* 🎨 add tooltip for timestamp when using expressions

* add versioning

* 🐛 fixes small bugs and ui problems

* remove show options that was breaking custom prop

*  add ownership to deals

*  add notice for credential depreciation

* 🎨 Refactor names for RLC

* 🎨 Fixes to Deal

*  Inprove delete confirmation message

* 🎨 Fixe titles of fields

* 🎨 Fixe correct ressource hint

* 🎨 Improve error when requesting non existing ressource

* ️ Improve get deal

*  Improve search by domain for companies

*  Improve getting recently created deals

* 🎨 Improve versioning file structure

* 🥅 Improve error for unknown ids

*  Add filters to recently search for companies

*  Uniformize including properties for contact

*  Improve get all operation for Companies

* 🎨 Change filters name

* 🎨 Remove useless descriptions

* 🎨Improve description

*  Dynamically retrieve the correct operator for the properties

* 🥅 Improve error handeling

* 🥅 improve error when not finding the id

* ️Add searchable feature to Deal and contacts

* 🚨 Fix linting issues

* 🚨 Fix linting issues for V1 Hubspot

* 🐛 Fix pairedItem for v2 hubspot

* 🚨 Fix linting in HubSpot Description

* 🚨 More linting fixes

* Fix error handling

* Update endpoint for deleting object

* Fix label for recent actions

* 🐛 fix listMemberships typo in V1 and V2

* docs: Stop assuming the user's gender in code comments (after merge)

c87262a312

* fixing V1 GenericFunctions.ts api query limit as number

* Update description for ticket

* Add type to RLC

* Revert "Add type to RLC"

This reverts commit 578dacfb97.

* Add type to RLC engagement

---------

Co-authored-by: Marcus <marcus@n8n.io>
2023-05-08 15:15:13 +02:00

544 lines
9.9 KiB
TypeScript

import type { INodeProperties } from 'n8n-workflow';
export const engagementOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['engagement'],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create an engagement',
action: 'Create an engagement',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an engagement',
action: 'Delete an engagement',
},
{
name: 'Get',
value: 'get',
description: 'Get an engagement',
action: 'Get an engagement',
},
{
name: 'Get Many',
value: 'getAll',
description: 'Get many engagements',
action: 'Get many engagements',
},
],
default: 'create',
},
];
export const engagementFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* engagement:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
options: [
{
name: 'Call',
value: 'call',
},
{
name: 'Email',
value: 'email',
},
{
name: 'Meeting',
value: 'meeting',
},
{
name: 'Task',
value: 'task',
},
],
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
default: '',
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['task'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'For Object Type',
name: 'forObjectType',
type: 'options',
options: [
{
name: 'Company',
value: 'COMPANY',
},
{
name: 'Contact',
value: 'CONTACT',
},
],
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Deferred',
value: 'DEFERRED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'Not Started',
value: 'NOT_STARTED',
},
{
name: 'Waiting',
value: 'WAITING',
},
],
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['email'],
},
},
options: [
{
displayName: 'BCC',
name: 'bcc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add BCC',
},
default: '',
},
{
displayName: 'CC',
name: 'cc',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add CC',
},
default: '',
},
{
displayName: 'From Email',
name: 'fromEmail',
type: 'string',
default: '',
},
{
displayName: 'From First Name',
name: 'firstName',
type: 'string',
default: '',
},
{
displayName: 'From Last Name',
name: 'lastName',
type: 'string',
default: '',
},
{
displayName: 'HTML',
name: 'html',
type: 'string',
default: '',
},
{
displayName: 'Subject',
name: 'subject',
type: 'string',
default: '',
},
{
displayName: 'To Emails',
name: 'toEmail',
type: 'string',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Email',
},
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['meeting'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'End Time',
name: 'endTime',
type: 'dateTime',
default: '',
description:
'When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format',
},
{
displayName: 'Internal Meeting Notes',
name: 'internalMeetingNotes',
type: 'string',
default: '',
},
{
displayName: 'Start Time',
name: 'startTime',
type: 'dateTime',
default: '',
description:
'When using expressions, the time should be specified in YYYY-MM-DD hh-mm-ss format',
},
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
},
],
},
{
displayName: 'Metadata',
name: 'metadata',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
type: ['call'],
},
},
options: [
{
displayName: 'Body',
name: 'body',
type: 'string',
default: '',
},
{
displayName: 'Duration Milliseconds',
name: 'durationMilliseconds',
type: 'number',
default: 0,
},
{
displayName: 'From Number',
name: 'fromNumber',
type: 'string',
default: '',
},
{
displayName: 'Recording URL',
name: 'recordingUrl',
type: 'string',
default: '',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{
name: 'Busy',
value: 'BUSY',
},
{
name: 'Calling CRM User',
value: 'CALLING_CRM_USER',
},
{
name: 'Canceled',
value: 'CANCELED',
},
{
name: 'Completed',
value: 'COMPLETED',
},
{
name: 'Connecting',
value: 'CONNECTING',
},
{
name: 'Failed',
value: 'FAILED',
},
{
name: 'In Progress',
value: 'IN_PROGRESS',
},
{
name: 'No Answer',
value: 'NO_ANSWER',
},
{
name: 'Queued',
value: 'QUEUED',
},
{
name: 'Ringing',
value: 'RINGING',
},
],
default: 'QUEUED',
},
{
displayName: 'To Number',
name: 'toNumber',
type: 'string',
default: '',
},
],
},
{
displayName: 'Engagement Properties',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Property',
default: {},
displayOptions: {
show: {
resource: ['engagement'],
operation: ['create'],
},
},
options: [
{
displayName: 'Associations',
name: 'associations',
type: 'collection',
placeholder: 'Add Field',
default: {},
options: [
{
displayName: 'Company IDs',
name: 'companyIds',
type: 'string',
default: '',
},
{
displayName: 'Contact IDs',
name: 'contactIds',
type: 'string',
default: '',
},
{
displayName: 'Deals IDs',
name: 'dealIds',
type: 'string',
default: '',
},
{
displayName: 'Owner IDs',
name: 'ownerIds',
type: 'string',
default: '',
},
{
displayName: 'Ticket IDs',
name: 'ticketIds',
type: 'string',
default: '',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* engagement:get/delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Engagement to Get',
name: 'engagementId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['engagement'],
operation: ['get'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchEngagements',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Engagement ID',
},
},
],
},
],
},
{
displayName: 'Engagement to Delete',
name: 'engagementId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
displayOptions: {
show: {
resource: ['engagement'],
operation: ['delete'],
},
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select from the list',
typeOptions: {
searchListMethod: 'searchEngagements',
},
},
{
displayName: 'By Id',
name: 'id',
type: 'string',
placeholder: '58539222',
validation: [
{
type: 'regex',
properties: {
regex: '[0-9]+',
errorMessage: 'Not a valid HubSpot Engagement ID',
},
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* engagement:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: ['engagement'],
operation: ['getAll'],
returnAll: [false],
},
},
typeOptions: {
minValue: 1,
maxValue: 250,
},
default: 100,
description: 'Max number of results to return',
},
];