Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new feature on Emelia node - N8N-3204 #3000

Merged
merged 9 commits into from
Apr 1, 2022
140 changes: 117 additions & 23 deletions packages/nodes-base/nodes/Emelia/CampaignDescription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export const campaignOperations: INodeProperties[] = [
type: 'options',
default: 'get',
description: 'Operation to perform',
noDataExpression: true,
options: [
{
name: 'Add Contact',
Expand All @@ -18,6 +19,10 @@ export const campaignOperations: INodeProperties[] = [
name: 'Create',
value: 'create',
},
{
name: 'Duplicate',
value: 'duplicate',
},
{
name: 'Get',
value: 'get',
Expand Down Expand Up @@ -58,7 +63,7 @@ export const campaignFields: INodeProperties[] = [
},
default: [],
required: true,
description: 'The ID of the campaign to add the contact to.',
description: 'The ID of the campaign to add the contact to',
displayOptions: {
show: {
resource: [
Expand All @@ -76,7 +81,7 @@ export const campaignFields: INodeProperties[] = [
type: 'string',
required: true,
default: '',
description: 'The email of the contact to add to the campaign.',
description: 'The email of the contact to add to the campaign',
displayOptions: {
show: {
resource: [
Expand Down Expand Up @@ -113,7 +118,7 @@ export const campaignFields: INodeProperties[] = [
typeOptions: {
multipleValues: true,
},
description: 'Filter by custom fields ',
description: 'Filter by custom fields',
default: {},
options: [
{
Expand All @@ -125,14 +130,14 @@ export const campaignFields: INodeProperties[] = [
name: 'fieldName',
type: 'string',
default: '',
description: 'The name of the field to add custom field to.',
description: 'The name of the field to add custom field to',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'The value to set on custom field.',
description: 'The value to set on custom field',
},
],
},
Expand All @@ -143,49 +148,49 @@ export const campaignFields: INodeProperties[] = [
name: 'firstName',
type: 'string',
default: '',
description: 'First name of the contact to add.',
description: 'First name of the contact to add',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
displayName: 'Last Contacted',
name: 'lastContacted',
type: 'dateTime',
default: '',
description: 'Last name of the contact to add.',
description: 'Last contacted date of the contact to add',
},
{
displayName: 'Last Contacted',
name: 'lastContacted',
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last contacted date of the contact to add.',
description: 'Last name of the contact to add',
},
{
displayName: 'Last Open',
name: 'lastOpen',
type: 'string',
type: 'dateTime',
default: '',
description: 'Last opened date of the contact to add.',
description: 'Last opened date of the contact to add',
},
{
displayName: 'Last Replied',
name: 'lastReplied',
type: 'string',
type: 'dateTime',
default: '',
description: 'Last replied date of the contact to add.',
description: 'Last replied date of the contact to add',
},
{
displayName: 'Mails Sent',
name: 'mailsSent',
type: 'number',
default: 0,
description: 'Number of emails sent to the contact to add.',
description: 'Number of emails sent to the contact to add',
},
{
displayName: 'Phone Number',
name: 'phoneNumber',
type: 'string',
default: '',
description: 'Phone number of the contact to add.',
description: 'Phone number of the contact to add',
},
],
},
Expand All @@ -199,7 +204,7 @@ export const campaignFields: INodeProperties[] = [
type: 'string',
required: true,
default: '',
description: 'The name of the campaign to create.',
description: 'The name of the campaign to create',
displayOptions: {
show: {
resource: [
Expand All @@ -221,7 +226,7 @@ export const campaignFields: INodeProperties[] = [
type: 'string',
default: '',
required: true,
description: 'The ID of the campaign to retrieve.',
description: 'The ID of the campaign to retrieve',
displayOptions: {
show: {
resource: [
Expand All @@ -242,7 +247,7 @@ export const campaignFields: INodeProperties[] = [
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Return all results.',
description: 'Whether to return all results or only up to a given limit',
displayOptions: {
show: {
resource: [
Expand All @@ -259,7 +264,7 @@ export const campaignFields: INodeProperties[] = [
name: 'limit',
type: 'number',
default: 100,
description: 'The number of results to return.',
description: 'Max number of results to return',
typeOptions: {
minValue: 1,
maxValue: 100,
Expand Down Expand Up @@ -323,4 +328,93 @@ export const campaignFields: INodeProperties[] = [
},
},

// ----------------------------------
// campaign: duplicate
// ----------------------------------
{
displayName: 'Campaign ID',
name: 'campaignId',
type: 'options',
default: '',
required: true,
description: 'The ID of the campaign to duplicate',
typeOptions: {
loadOptionsMethod: 'getCampaigns',
},
displayOptions: {
show: {
resource: [
'campaign',
],
operation: [
'duplicate',
],
},
},
},
{
displayName: 'New Campaign Name',
name: 'campaignName',
type: 'string',
required: true,
default: '',
description: 'The name of the new campaign to create',
displayOptions: {
show: {
resource: [
'campaign',
],
operation: [
'duplicate',
],
},
},
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
default: {},
placeholder: 'Add Field',
displayOptions: {
show: {
operation: [
'duplicate',
],
resource: [
'campaign',
],
},
},
options: [
{
displayName: 'Copy Contacts',
name: 'copyContacts',
type: 'boolean',
default: false,
description: 'Whether to copy all the contacts from the original campaign',
},
{
displayName: 'Copy Email Provider',
name: 'copyProvider',
type: 'boolean',
default: true,
description: 'Whether to set the same email provider than the original campaign',
},
{
displayName: 'Copy Email Sequence',
name: 'copyMails',
type: 'boolean',
default: true,
description: 'Whether to copy all the steps of the email sequence from the original campaign',
},
{
displayName: 'Copy Global Settings',
name: 'copySettings',
type: 'boolean',
default: true,
description: 'Whether to copy all the general settings from the original campaign',
},
],
},
];
43 changes: 22 additions & 21 deletions packages/nodes-base/nodes/Emelia/ContactListDescription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ export const contactListOperations: INodeProperties[] = [
displayName: 'Operation',
name: 'operation',
type: 'options',
default: 'get',
default: 'getAll',
description: 'Operation to perform',
noDataExpression: true,
options: [
{
name: 'Add',
Expand Down Expand Up @@ -42,7 +43,7 @@ export const contactListFields: INodeProperties[] = [
},
default: [],
required: true,
description: 'The ID of the contact list to add the contact to.',
description: 'The ID of the contact list to add the contact to',
displayOptions: {
show: {
resource: [
Expand All @@ -60,7 +61,7 @@ export const contactListFields: INodeProperties[] = [
type: 'string',
required: true,
default: '',
description: 'The email of the contact to add to the contact list.',
description: 'The email of the contact to add to the contact list',
displayOptions: {
show: {
resource: [
Expand Down Expand Up @@ -97,7 +98,7 @@ export const contactListFields: INodeProperties[] = [
typeOptions: {
multipleValues: true,
},
description: 'Filter by custom fields ',
description: 'Filter by custom fields',
default: {},
options: [
{
Expand All @@ -109,14 +110,14 @@ export const contactListFields: INodeProperties[] = [
name: 'fieldName',
type: 'string',
default: '',
description: 'The name of the field to add custom field to.',
description: 'The name of the field to add custom field to',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'The value to set on custom field.',
description: 'The value to set on custom field',
},
],
},
Expand All @@ -127,49 +128,49 @@ export const contactListFields: INodeProperties[] = [
name: 'firstName',
type: 'string',
default: '',
description: 'First name of the contact to add.',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last name of the contact to add.',
description: 'First name of the contact to add',
},
{
displayName: 'Last Contacted',
name: 'lastContacted',
type: 'dateTime',
default: '',
description: 'Last contacted date of the contact to add.',
description: 'Last contacted date of the contact to add',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last name of the contact to add',
},
{
displayName: 'Last Open',
name: 'lastOpen',
type: 'dateTime',
default: '',
description: 'Last opened date of the contact to add.',
description: 'Last opened date of the contact to add',
},
{
displayName: 'Last Replied',
name: 'lastReplied',
type: 'dateTime',
default: '',
description: 'Last replied date of the contact to add.',
description: 'Last replied date of the contact to add',
},
{
displayName: 'Mails Sent',
name: 'mailsSent',
type: 'number',
default: 0,
description: 'Number of emails sent to the contact to add.',
description: 'Number of emails sent to the contact to add',
},
{
displayName: 'Phone Number',
name: 'phoneNumber',
type: 'string',
default: '',
description: 'Phone number of the contact to add.',
description: 'Phone number of the contact to add',
},
],
},
Expand All @@ -182,7 +183,7 @@ export const contactListFields: INodeProperties[] = [
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Return all results.',
description: 'Whether to return all results or only up to a given limit',
displayOptions: {
show: {
resource: [
Expand All @@ -199,7 +200,7 @@ export const contactListFields: INodeProperties[] = [
name: 'limit',
type: 'number',
default: 100,
description: 'The number of results to return.',
description: 'Max number of results to return',
typeOptions: {
minValue: 1,
maxValue: 100,
Expand Down
Loading