n8n/packages/nodes-base/nodes/Zoho/descriptions/LeadDescription.ts
Iván Ovejero 5f76a5dc72
Expand Zoho node (#1763)
*  Initial refactor of Zoho node

*  Refactor out extra credentials parameter

* 🔥 Remove unused filters

*  Fix date of birth fields

*  Fix param casing

*  Adjust param types

*  Adjust invoice operations

*  Refactor types in adjusters

*  Add product resource

*  Refactor product details field

*  Adjust purchase order params

*  Adjust quote params

*  Adjust sales orders params

* 🔥 Remove old unused files

*  Add vendor resource

*  Fix minor details

*  Implement continueOnFail

* 🐛 Fix empty response for getAll

*  Simplify response for single item

* 🔥 Remove unused import

* 🔨 Restore old node name

*  Prevent request on empty update

*  Apply Dali's suggestions

*  Improvements

*  Add filters for lead:getAll

*  Add upsert to all resources

*  Add filters to all getAll operations

* 🔨 Restore continue on fail

* 🔨 Refactor upsert addition

* 🔨 Refactor getFields for readability

*  Add custom fields to all create-update ops

*  Implement custom fields adjuster

* 🔥 Remove logging

* 👕 Appease linter

* 👕 Refactor type helper for linter

*  Fix refactored type

* 🔨 Refactor reduce for simplicity

*  Fix vendor:getAll filter options

*  Fix custom fields for product operations

*  Make sort_by into options param

* 🚚 Rename upsert operation

* ✏️ Add descriptions to upsert

*  Deduplicate system-defined check fields

* 🔨 Re-order address fields

* ✏️ Generalize references in getAll fields

* 🔥 Remove extra comma

*  Make getFields helper more readable

* ✏️ Touch up description for account ID

* 🔥 Remove currency from contacts

* 🔨 Resort emails and phones for contact

* 🐛 Fix sales cycle duration param type

* ✏️ Clarify descriptions with percentages

* 🔨 Reorder total fields

* ✏️ Clarify percentages for discounts

* ✏️ Clarify percentages for commissions

* 🔨 Convert currency to picklist

* ✏️ Add documentation links

*  Add resource loaders for picklists

*  Fix build

* 🔨 Refactor product details

*  Add resolve data to all resources

*  Change resolve data toggle default

*  Restore lead:getFields operation

* 🔥 Remove upsert descriptions

* 🔨 Change casing for upsert operations

*  Add operation descriptions

* 🔨 Restore makeResolve default value

* 🔨 Return nested details

*  Reposition Resolve Data toggles

* ✏️ Document breaking changes

* Revert "Reposition Resolve Data toggles"

This reverts commit 72ac41780b.

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-07-02 23:34:12 +02:00

695 lines
13 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';
import {
address,
currencies,
makeCustomFieldsFixedCollection,
makeGetAllFields,
} from './SharedFields';
export const leadOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
displayOptions: {
show: {
resource: [
'lead',
],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a lead',
},
{
name: 'Create or Update',
value: 'upsert',
description: 'Create a new record, or update the current one if it already exists (upsert)',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a lead',
},
{
name: 'Get',
value: 'get',
description: 'Get a lead',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get all leads',
},
{
name: 'Get Fields',
value: 'getFields',
description: 'Get lead fields',
},
{
name: 'Update',
value: 'update',
description: 'Update a lead',
},
],
default: 'create',
description: 'Operation to perform',
},
] as INodeProperties[];
export const leadFields = [
// ----------------------------------------
// lead: create
// ----------------------------------------
{
displayName: 'Company',
name: 'Company',
description: 'Company at which the lead works.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'create',
],
},
},
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'create',
],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'create',
],
},
},
options: [
address,
{
displayName: 'Annual Revenue',
name: 'Annual_Revenue',
type: 'number',
default: '',
description: 'Annual revenue of the leads company.',
},
{
displayName: 'Currency',
name: 'Currency',
type: 'options',
default: 'USD',
description: 'Symbol of the currency in which revenue is generated.',
options: currencies,
},
makeCustomFieldsFixedCollection('lead'),
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Designation',
name: 'Designation',
type: 'string',
default: '',
description: 'Position of the lead at their company.',
},
{
displayName: 'Email',
name: 'Email',
type: 'string',
default: '',
},
{
displayName: 'Email Opt Out',
name: 'Email_Opt_Out',
type: 'boolean',
default: false,
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
{
displayName: 'Industry',
name: 'Industry',
type: 'string',
default: '',
description: 'Industry to which the lead belongs.',
},
{
displayName: 'Industry Type',
name: 'Industry_Type',
type: 'string',
default: '',
description: 'Type of industry to which the lead belongs.',
},
{
displayName: 'Lead Source',
name: 'Lead_Source',
type: 'string',
default: '',
description: 'Source from which the lead was created.',
},
{
displayName: 'Lead Status',
name: 'Lead_Status',
type: 'string',
default: '',
},
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
{
displayName: 'Number of Employees',
name: 'No_of_Employees',
type: 'number',
default: '',
description: 'Number of employees in the leads company.',
},
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Secondary Email',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
{
displayName: 'Website',
name: 'Website',
type: 'string',
default: '',
},
],
},
// ----------------------------------------
// lead: upsert
// ----------------------------------------
{
displayName: 'Company',
name: 'Company',
description: 'Company at which the lead works.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'upsert',
],
},
},
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'upsert',
],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'upsert',
],
},
},
options: [
address,
{
displayName: 'Annual Revenue',
name: 'Annual_Revenue',
type: 'number',
default: '',
description: 'Annual revenue of the leads company.',
},
{
displayName: 'Currency',
name: 'Currency',
type: 'options',
default: 'USD',
description: 'Symbol of the currency in which revenue is generated.',
options: currencies,
},
makeCustomFieldsFixedCollection('lead'),
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Designation',
name: 'Designation',
type: 'string',
default: '',
description: 'Position of the lead at their company.',
},
{
displayName: 'Email',
name: 'Email',
type: 'string',
default: '',
description: 'Email of the lead. If a record with this email exists it will be updated, otherwise a new one will be created.',
},
{
displayName: 'Email Opt Out',
name: 'Email_Opt_Out',
type: 'boolean',
default: false,
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
{
displayName: 'Industry',
name: 'Industry',
type: 'string',
default: '',
description: 'Industry to which the lead belongs.',
},
{
displayName: 'Industry Type',
name: 'Industry_Type',
type: 'string',
default: '',
description: 'Type of industry to which the lead belongs.',
},
{
displayName: 'Lead Source',
name: 'Lead_Source',
type: 'string',
default: '',
description: 'Source from which the lead was created.',
},
{
displayName: 'Lead Status',
name: 'Lead_Status',
type: 'string',
default: '',
},
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
{
displayName: 'Number of Employees',
name: 'No_of_Employees',
type: 'number',
default: '',
description: 'Number of employees in the leads company.',
},
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Secondary Email',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
{
displayName: 'Website',
name: 'Website',
type: 'string',
default: '',
},
],
},
// ----------------------------------------
// lead: delete
// ----------------------------------------
{
displayName: 'Lead ID',
name: 'leadId',
description: 'ID of the lead to delete.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'delete',
],
},
},
},
// ----------------------------------------
// lead: get
// ----------------------------------------
{
displayName: 'Lead ID',
name: 'leadId',
description: 'ID of the lead to retrieve.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'get',
],
},
},
},
// ----------------------------------------
// lead: getAll
// ----------------------------------------
...makeGetAllFields('lead'),
// ----------------------------------------
// lead: update
// ----------------------------------------
{
displayName: 'Lead ID',
name: 'leadId',
description: 'ID of the lead to update.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'update',
],
},
},
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'lead',
],
operation: [
'update',
],
},
},
options: [
address,
{
displayName: 'Annual Revenue',
name: 'Annual_Revenue',
type: 'number',
default: '',
description: 'Annual revenue of the leads company.',
},
{
displayName: 'Company',
name: 'Company',
type: 'string',
default: '',
description: 'Company at which the lead works.',
},
{
displayName: 'Currency',
name: 'Currency',
type: 'options',
default: 'USD',
description: 'Symbol of the currency in which revenue is generated.',
options: currencies,
},
makeCustomFieldsFixedCollection('lead'),
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Designation',
name: 'Designation',
type: 'string',
default: '',
description: 'Position of the lead at their company.',
},
{
displayName: 'Email',
name: 'Email',
type: 'string',
default: '',
},
{
displayName: 'Email Opt Out',
name: 'Email_Opt_Out',
type: 'boolean',
default: false,
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
{
displayName: 'Industry',
name: 'Industry',
type: 'string',
default: '',
description: 'Industry to which the lead belongs.',
},
{
displayName: 'Industry Type',
name: 'Industry_Type',
type: 'string',
default: '',
description: 'Type of industry to which the lead belongs.',
},
{
displayName: 'Last Name',
name: 'Last_Name',
type: 'string',
default: '',
},
{
displayName: 'Lead Source',
name: 'Lead_Source',
type: 'string',
default: '',
description: 'Source from which the lead was created.',
},
{
displayName: 'Lead Status',
name: 'Lead_Status',
type: 'string',
default: '',
},
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
{
displayName: 'Number of Employees',
name: 'No_of_Employees',
type: 'number',
default: '',
description: 'Number of employees in the leads company.',
},
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Secondary Email',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
{
displayName: 'Website',
name: 'Website',
type: 'string',
default: '',
},
],
},
] as INodeProperties[];