n8n-nodes-base 1.87.0 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/credentials/Aws.credentials.js +16 -2
  2. package/dist/credentials/Aws.credentials.js.map +1 -1
  3. package/dist/credentials/SalesforceJwtApi.credentials.js +60 -0
  4. package/dist/credentials/SalesforceJwtApi.credentials.js.map +1 -1
  5. package/dist/nodes/Airtable/v2/actions/record/update.operation.js +15 -3
  6. package/dist/nodes/Airtable/v2/actions/record/update.operation.js.map +1 -1
  7. package/dist/nodes/Brevo/__schema__/v1.0.0/contact/getAll.json +1 -9
  8. package/dist/nodes/Dropbox/__schema__/v1.0.0/file/download.json +2 -5
  9. package/dist/nodes/Form/utils.js +2 -7
  10. package/dist/nodes/Form/utils.js.map +1 -1
  11. package/dist/nodes/Freshdesk/Freshdesk.node.js +3 -6
  12. package/dist/nodes/Freshdesk/Freshdesk.node.js.map +1 -1
  13. package/dist/nodes/Google/Analytics/__schema__/v2.0.0/report/get.json +2 -2
  14. package/dist/nodes/Google/Calendar/__schema__/v1.3.0/event/getAll.json +7 -1
  15. package/dist/nodes/Google/Firebase/CloudFirestore/__schema__/v1.1.0/document/get.json +1 -13
  16. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/get.json +1 -7
  17. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/getAll.json +1 -7
  18. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/thread/get.json +4 -4
  19. package/dist/nodes/Google/YouTube/__schema__/v1.0.0/video/get.json +1 -35
  20. package/dist/nodes/Google/YouTube/__schema__/v1.0.0/video/rate.json +9 -0
  21. package/dist/nodes/HaloPSA/__schema__/v1.0.0/client/getAll.json +147 -1
  22. package/dist/nodes/HttpRequest/V3/Description.js +8 -0
  23. package/dist/nodes/HttpRequest/V3/Description.js.map +1 -1
  24. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js +23 -5
  25. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js.map +1 -1
  26. package/dist/nodes/HttpRequest/shared/optimizeResponse.js +387 -0
  27. package/dist/nodes/HttpRequest/shared/optimizeResponse.js.map +1 -0
  28. package/dist/nodes/Hubspot/V2/HubspotV2.node.js +10 -2
  29. package/dist/nodes/Hubspot/V2/HubspotV2.node.js.map +1 -1
  30. package/dist/nodes/Hubspot/__schema__/v2.1.0/company/getAll.json +1 -4
  31. package/dist/nodes/Hubspot/__schema__/v2.1.0/contact/search.json +4 -1
  32. package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/getAll.json +1 -52
  33. package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/search.json +5 -2
  34. package/dist/nodes/Hubspot/__schema__/v2.1.0/ticket/get.json +1 -258
  35. package/dist/nodes/ItemLists/__schema__/v3.0.0/itemList/limit.json +9 -0
  36. package/dist/nodes/Jira/__schema__/v1.0.0/issue/get.json +84 -1
  37. package/dist/nodes/Jira/__schema__/v1.0.0/issue/getAll.json +4 -565
  38. package/dist/nodes/Lemlist/__schema__/v2.0.0/campaign/getAll.json +1 -10
  39. package/dist/nodes/Linear/__schema__/v1.0.0/issue/create.json +12 -1
  40. package/dist/nodes/LinkedIn/GenericFunctions.js +1 -1
  41. package/dist/nodes/LinkedIn/GenericFunctions.js.map +1 -1
  42. package/dist/nodes/Microsoft/OneDrive/__schema__/v1.0.0/file/download.json +92 -1
  43. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/folderMessage/getAll.json +3 -81
  44. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/get.json +28 -1
  45. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/getAll.json +82 -1
  46. package/dist/nodes/Nasa/__schema__/v1.0.0/donkiSolarFlare/get.json +4 -1
  47. package/dist/nodes/Notion/__schema__/v2.2.0/databasePage/create.json +1 -4
  48. package/dist/nodes/Notion/__schema__/v2.2.0/databasePage/getAll.json +1 -4
  49. package/dist/nodes/Odoo/__schema__/v1.0.0/custom/get.json +1 -4
  50. package/dist/nodes/Odoo/__schema__/v1.0.0/custom/getAll.json +4 -1
  51. package/dist/nodes/Odoo/__schema__/v1.0.0/opportunity/getAll.json +1 -4
  52. package/dist/nodes/Phantombuster/__schema__/v1.0.0/agent/getOutput.json +1 -10
  53. package/dist/nodes/Pipedrive/__schema__/v1.0.0/person/search.json +12 -1
  54. package/dist/nodes/Postgres/v2/helpers/utils.js +3 -1
  55. package/dist/nodes/Postgres/v2/helpers/utils.js.map +1 -1
  56. package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +57 -48
  57. package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
  58. package/dist/nodes/Salesforce/__schema__/v1.0.0/customObject/getAll.json +2 -2
  59. package/dist/nodes/Salesforce/__schema__/v1.0.0/opportunity/getAll.json +4 -1
  60. package/dist/nodes/Salesforce/__schema__/v1.0.0/search/query.json +1 -4
  61. package/dist/nodes/ServiceNow/__schema__/v1.0.0/tableRecord/getAll.json +1 -4
  62. package/dist/nodes/Slack/__schema__/v2.3.0/channel/history.json +4 -44
  63. package/dist/nodes/Ssh/__schema__/v1.0.0/command/execute.json +1 -4
  64. package/dist/nodes/Supabase/GenericFunctions.js +13 -4
  65. package/dist/nodes/Supabase/GenericFunctions.js.map +1 -1
  66. package/dist/nodes/Supabase/RowDescription.js +1 -0
  67. package/dist/nodes/Supabase/RowDescription.js.map +1 -1
  68. package/dist/nodes/Supabase/Supabase.node.js +17 -0
  69. package/dist/nodes/Supabase/Supabase.node.js.map +1 -1
  70. package/dist/nodes/Supabase/__schema__/v1.0.0/row/delete.json +7 -1
  71. package/dist/nodes/Telegram/TelegramTrigger.node.js +4 -60
  72. package/dist/nodes/Telegram/TelegramTrigger.node.js.map +1 -1
  73. package/dist/nodes/Telegram/__schema__/v1.2.0/chat/get.json +1 -10
  74. package/dist/nodes/Telegram/__schema__/v1.2.0/chat/member.json +1 -4
  75. package/dist/nodes/Telegram/util/triggerUtils.js +88 -0
  76. package/dist/nodes/Telegram/util/triggerUtils.js.map +1 -0
  77. package/dist/nodes/Transform/Summarize/utils.js +1 -1
  78. package/dist/nodes/Transform/Summarize/utils.js.map +1 -1
  79. package/dist/nodes/Trello/__schema__/v1.0.0/list/getAll.json +1 -4
  80. package/dist/nodes/Trello/__schema__/v1.0.0/list/getCards.json +4 -7
  81. package/dist/nodes/Twitter/__schema__/v2.0.0/tweet/search.json +1 -4
  82. package/dist/nodes/Wait/Wait.node.js +5 -6
  83. package/dist/nodes/Wait/Wait.node.js.map +1 -1
  84. package/dist/nodes/Wordpress/__schema__/v1.0.0/post/getAll.json +9 -1
  85. package/dist/nodes/Zoho/__schema__/v1.0.0/contact/getAll.json +1 -15
  86. package/dist/test/nodes/FakeCredentialsMap.js +30 -0
  87. package/dist/test/nodes/FakeCredentialsMap.js.map +1 -1
  88. package/dist/test/nodes/Helpers.js +5 -3
  89. package/dist/test/nodes/Helpers.js.map +1 -1
  90. package/dist/test/nodes/TriggerHelpers.js +5 -2
  91. package/dist/test/nodes/TriggerHelpers.js.map +1 -1
  92. package/dist/types/credentials.json +1 -1
  93. package/dist/types/nodes.json +5 -5
  94. package/package.json +11 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../nodes/Hubspot/V2/HubspotV2.node.ts"],"sourcesContent":["import { snakeCase } from 'change-case';\nimport set from 'lodash/set';\nimport { NodeApiError, NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\nimport type {\n\tICredentialDataDecryptedObject,\n\tICredentialsDecrypted,\n\tICredentialTestFunctions,\n\tIDataObject,\n\tIExecuteFunctions,\n\tILoadOptionsFunctions,\n\tINodeCredentialTestResult,\n\tINodeExecutionData,\n\tINodeListSearchItems,\n\tINodeListSearchResult,\n\tINodePropertyOptions,\n\tINodeType,\n\tINodeTypeBaseDescription,\n\tINodeTypeDescription,\n\tJsonObject,\n} from 'n8n-workflow';\n\nimport { companyFields, companyOperations } from './CompanyDescription';\nimport { contactFields, contactOperations } from './ContactDescription';\nimport { contactListFields, contactListOperations } from './ContactListDescription';\nimport { dealFields, dealOperations } from './DealDescription';\nimport type { IAssociation, IDeal } from './DealInterface';\nimport { engagementFields, engagementOperations } from './EngagementDescription';\nimport type { IForm } from './FormInterface';\nimport {\n\tclean,\n\tgetAssociations,\n\tgetCallMetadata,\n\tgetEmailMetadata,\n\tgetMeetingMetadata,\n\tgetTaskMetadata,\n\thubspotApiRequest,\n\thubspotApiRequestAllItems,\n\tvalidateCredentials,\n} from './GenericFunctions';\nimport { ticketFields, ticketOperations } from './TicketDescription';\nimport { generatePairedItemData } from '../../../utils/utilities';\n\nexport class HubspotV2 implements INodeType {\n\tdescription: INodeTypeDescription;\n\n\tconstructor(baseDescription: INodeTypeBaseDescription) {\n\t\tthis.description = {\n\t\t\t...baseDescription,\n\t\t\tgroup: ['output'],\n\t\t\tversion: [2, 2.1],\n\t\t\tsubtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n\t\t\tdefaults: {\n\t\t\t\tname: 'HubSpot',\n\t\t\t},\n\t\t\tusableAsTool: true,\n\t\t\tinputs: [NodeConnectionTypes.Main],\n\t\t\toutputs: [NodeConnectionTypes.Main],\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotApi',\n\t\t\t\t\trequired: true,\n\t\t\t\t\ttestedBy: 'hubspotApiTest',\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['apiKey'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotAppToken',\n\t\t\t\t\trequired: true,\n\t\t\t\t\ttestedBy: 'hubspotApiTest',\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['appToken'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotOAuth2Api',\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['oAuth2'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tdisplayName: 'Authentication',\n\t\t\t\t\tname: 'authentication',\n\t\t\t\t\ttype: 'options',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'API Key',\n\t\t\t\t\t\t\tvalue: 'apiKey',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'APP Token',\n\t\t\t\t\t\t\tvalue: 'appToken',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'OAuth2',\n\t\t\t\t\t\t\tvalue: 'oAuth2',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdefault: 'apiKey',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdisplayName: 'Resource',\n\t\t\t\t\tname: 'resource',\n\t\t\t\t\ttype: 'options',\n\t\t\t\t\tnoDataExpression: true,\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Company',\n\t\t\t\t\t\t\tvalue: 'company',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Contact',\n\t\t\t\t\t\t\tvalue: 'contact',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Contact List',\n\t\t\t\t\t\t\tvalue: 'contactList',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Deal',\n\t\t\t\t\t\t\tvalue: 'deal',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Engagement',\n\t\t\t\t\t\t\tvalue: 'engagement',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// {\n\t\t\t\t\t\t// \tname: 'Form',\n\t\t\t\t\t\t// \tvalue: 'form',\n\t\t\t\t\t\t// },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Ticket',\n\t\t\t\t\t\t\tvalue: 'ticket',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdefault: 'contact',\n\t\t\t\t},\n\t\t\t\t// CONTACT\n\t\t\t\t...contactOperations,\n\t\t\t\t...contactFields,\n\t\t\t\t// CONTACT LIST\n\t\t\t\t...contactListOperations,\n\t\t\t\t...contactListFields,\n\t\t\t\t// COMPANY\n\t\t\t\t...companyOperations,\n\t\t\t\t...companyFields,\n\t\t\t\t// DEAL\n\t\t\t\t...dealOperations,\n\t\t\t\t...dealFields,\n\t\t\t\t// ENGAGEMENT\n\t\t\t\t...engagementOperations,\n\t\t\t\t...engagementFields,\n\t\t\t\t//! FORM Deprecated\n\t\t\t\t//...formOperations,\n\t\t\t\t//...formFields,\n\t\t\t\t// TICKET\n\t\t\t\t...ticketOperations,\n\t\t\t\t...ticketFields,\n\t\t\t],\n\t\t};\n\t}\n\n\tmethods = {\n\t\tcredentialTest: {\n\t\t\tasync hubspotApiTest(\n\t\t\t\tthis: ICredentialTestFunctions,\n\t\t\t\tcredential: ICredentialsDecrypted,\n\t\t\t): Promise<INodeCredentialTestResult> {\n\t\t\t\ttry {\n\t\t\t\t\tawait validateCredentials.call(this, credential.data as ICredentialDataDecryptedObject);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst err = error as JsonObject;\n\t\t\t\t\tif (err.statusCode === 401) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatus: 'Error',\n\t\t\t\t\t\t\tmessage: 'Invalid credentials',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'OK',\n\t\t\t\t\tmessage: 'Authentication successful',\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t\tloadOptions: {\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* CONTACT */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the contact lead statuses to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLeadStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_lead_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact legal basics to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLealBasics(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_legal_basis') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLifeCycleStages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'lifecyclestage') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst stageName = option.label;\n\t\t\t\t\t\t\tconst stageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactOriginalSources(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_analytics_source') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst sourceName = option.label;\n\t\t\t\t\t\t\tconst sourceId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: sourceName,\n\t\t\t\t\t\t\t\tvalue: sourceId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact preffered languages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactPrefferedLanguages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_language') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst languageName = option.label;\n\t\t\t\t\t\t\tconst languageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: languageName,\n\t\t\t\t\t\t\t\tvalue: languageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact preffered languages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_content_membership_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst languageName = option.label;\n\t\t\t\t\t\t\tconst languageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: languageName,\n\t\t\t\t\t\t\t\tvalue: languageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\n\t\t\t\tlet properties = (await hubspotApiRequest.call(this, 'GET', endpoint, {})) as Array<{\n\t\t\t\t\tlabel: string;\n\t\t\t\t\tname: string;\n\t\t\t\t}>;\n\n\t\t\t\tproperties = properties.sort((a, b) => {\n\t\t\t\t\tif (a.label < b.label) return -1;\n\t\t\t\t\tif (a.label > b.label) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactPropertiesWithType(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\tconst propertyType = property.type;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t// Hacky way to get the property type need to be parsed to be use in the api\n\t\t\t\t\t\tvalue: `${propertyId}|${propertyType}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactCustomProperties(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact number of employees options to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactNumberOfEmployees(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'numemployees') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst optionName = option.label;\n\t\t\t\t\t\t\tconst optionId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\t\t\tvalue: optionId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* COMPANY */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the company industries to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyIndustries(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'industry') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst industryName = option.label;\n\t\t\t\t\t\t\tconst industryId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: industryName,\n\t\t\t\t\t\t\t\tvalue: industryId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company lead statuses to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyleadStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_lead_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanylifecycleStages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'lifecyclestage') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst stageName = option.label;\n\t\t\t\t\t\t\tconst stageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'type') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst typeName = option.label;\n\t\t\t\t\t\t\tconst typeId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: typeName,\n\t\t\t\t\t\t\t\tvalue: typeId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyTargetAccounts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_target_account') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst targetName = option.label;\n\t\t\t\t\t\t\tconst targetId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: targetName,\n\t\t\t\t\t\t\t\tvalue: targetId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company source types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanySourceTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_analytics_source') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst typeName = option.label;\n\t\t\t\t\t\t\tconst typeId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: typeName,\n\t\t\t\t\t\t\t\tvalue: typeId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company web technologies stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyWebTechnologies(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'web_technologies') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst technologyName = option.label;\n\t\t\t\t\t\t\tconst technologyId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: technologyName,\n\t\t\t\t\t\t\t\tvalue: technologyId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company custom properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyCustomProperties(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* DEAL */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the groups to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealStages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/deals';\n\t\t\t\tlet stages = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tstages = stages.results[0].stages;\n\t\t\t\tfor (const stage of stages) {\n\t\t\t\t\tconst stageName = stage.label;\n\t\t\t\t\tconst stageId = stage.stageId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal types to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v1/deals/properties/named/dealtype';\n\t\t\t\tconst dealTypes = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\tfor (const dealType of dealTypes.options) {\n\t\t\t\t\tconst dealTypeName = dealType.label;\n\t\t\t\t\tconst dealTypeId = dealType.value;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: dealTypeName,\n\t\t\t\t\t\tvalue: dealTypeId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealCustomProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tlet properties = (await hubspotApiRequest.call(this, 'GET', endpoint, {})) as Array<{\n\t\t\t\t\tlabel: string;\n\t\t\t\t\tname: string;\n\t\t\t\t}>;\n\n\t\t\t\tproperties = properties.sort((a, b) => {\n\t\t\t\t\tif (a.label < b.label) return -1;\n\t\t\t\t\tif (a.label > b.label) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealPropertiesWithType(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\tconst propertyType = property.type;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t// Hacky way to get the property type need to be parsed to be use in the api\n\t\t\t\t\t\t// this is no longer working, properties does not returned in the response\n\t\t\t\t\t\tvalue: `${propertyId}|${propertyType}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal pipelines to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealPipelines(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm/v3/pipelines/deals';\n\t\t\t\tconst data = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of data.results) {\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: pipeline.label,\n\t\t\t\t\t\tvalue: pipeline.id,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* FORM */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the forms to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getForms(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/forms/v2/forms';\n\t\t\t\tconst forms = await hubspotApiRequest.call(this, 'GET', endpoint, {}, { formTypes: 'ALL' });\n\t\t\t\tfor (const form of forms) {\n\t\t\t\t\tconst formName = form.name;\n\t\t\t\t\tconst formId = form.guid;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: formName,\n\t\t\t\t\t\tvalue: formId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the subscription types to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getSubscriptionTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/email/public/v1/subscriptions';\n\t\t\t\tconst subscriptions = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'subscriptionDefinitions',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t);\n\t\t\t\tfor (const subscription of subscriptions) {\n\t\t\t\t\tconst subscriptionName = subscription.name;\n\t\t\t\t\tconst subscriptionId = subscription.id;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: subscriptionName,\n\t\t\t\t\t\tvalue: subscriptionId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* TICKET */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the ticket categories to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketCategories(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_ticket_category') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst categoryName = option.label;\n\t\t\t\t\t\t\tconst categoryId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: categoryName,\n\t\t\t\t\t\t\t\tvalue: categoryId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket pipelines to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketPipelines(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/tickets';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of results) {\n\t\t\t\t\tconst pipelineName = pipeline.label;\n\t\t\t\t\tconst pipelineId = pipeline.pipelineId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: pipelineName,\n\t\t\t\t\t\tvalue: pipelineId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket resolutions to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketPriorities(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_ticket_priority') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst priorityName = option.label;\n\t\t\t\t\t\t\tconst priorityId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: priorityName,\n\t\t\t\t\t\t\t\tvalue: priorityId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket resolutions to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketResolutions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_resolution') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst resolutionName = option.label;\n\t\t\t\t\t\t\tconst resolutionId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: resolutionName,\n\t\t\t\t\t\t\t\tvalue: resolutionId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket sources to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketSources(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'source_type') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst sourceName = option.label;\n\t\t\t\t\t\t\tconst sourceId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: sourceName,\n\t\t\t\t\t\t\t\tvalue: sourceId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketStages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tlet currentPipelineId = this.getCurrentNodeParameter('pipelineId') as string;\n\t\t\t\tif (currentPipelineId === undefined) {\n\t\t\t\t\tcurrentPipelineId = this.getNodeParameter('updateFields.pipelineId', '') as string;\n\t\t\t\t}\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/tickets';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of results) {\n\t\t\t\t\tif (currentPipelineId === pipeline.pipelineId) {\n\t\t\t\t\t\tfor (const stage of pipeline.stages) {\n\t\t\t\t\t\t\tconst stageName = stage.label;\n\t\t\t\t\t\t\tconst stageId = stage.stageId;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* COMMON */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the owners to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getOwners(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm/v3/owners';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\tfor (const owner of results) {\n\t\t\t\t\tconst ownerName = owner.email;\n\t\t\t\t\tconst ownerId = isNaN(parseInt(owner.id)) ? owner.id : parseInt(owner.id);\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: ownerName,\n\t\t\t\t\t\tvalue: ownerId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the companies to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanies(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\tconst companies = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'companies',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\tfor (const company of companies) {\n\t\t\t\t\tconst companyName = company.properties.name\n\t\t\t\t\t\t? company.properties.name.value\n\t\t\t\t\t\t: company.companyId;\n\t\t\t\t\tconst companyId = company.companyId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: companyName,\n\t\t\t\t\t\tvalue: companyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the companies to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContacts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\tconst contacts = await hubspotApiRequestAllItems.call(this, 'contacts', 'GET', endpoint);\n\n\t\t\t\tfor (const contact of contacts) {\n\t\t\t\t\tconst firstName = contact.properties?.firstname?.value || '';\n\t\t\t\t\tconst lastName = contact.properties?.lastname?.value || '';\n\t\t\t\t\tconst contactName = `${firstName} ${lastName}`;\n\t\t\t\t\tconst contactId = contact.vid;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: contactName,\n\t\t\t\t\t\tvalue: contactId,\n\t\t\t\t\t\tdescription: `Contact VID: ${contactId}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\t\t},\n\t\tlistSearch: {\n\t\t\tasync searchCompanies(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\tconst searchResults = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'companies',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: searchResults.map((b: any) => ({\n\t\t\t\t\t\tname: b.properties?.name?.value || b.companyId,\n\t\t\t\t\t\tvalue: b.companyId,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchContacts(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t\tfilter?: string,\n\t\t\t): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperty: ['email'],\n\t\t\t\t};\n\t\t\t\tconst contacts = (await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'contacts',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t)) as Array<{ vid: string; properties: { email: { value: string } } }>;\n\t\t\t\tconst results: INodeListSearchItems[] = contacts\n\t\t\t\t\t.map((c) => ({\n\t\t\t\t\t\tname: c.properties.email.value || c.vid,\n\t\t\t\t\t\tvalue: c.vid,\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(c) =>\n\t\t\t\t\t\t\t!filter ||\n\t\t\t\t\t\t\tc.name.toLowerCase().includes(filter.toLowerCase()) ||\n\t\t\t\t\t\t\tc.value?.toString() === filter,\n\t\t\t\t\t)\n\t\t\t\t\t.sort((a, b) => {\n\t\t\t\t\t\treturn a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n\t\t\t\t\t});\n\n\t\t\t\treturn { results };\n\t\t\t},\n\t\t\tasync searchDeals(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t\tfilter?: string,\n\t\t\t): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/deals/v1/deal/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['dealname'],\n\t\t\t\t};\n\t\t\t\tconst deals = (await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'deals',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t)) as Array<{ dealId: string; properties: { dealname: { value: string } } }>;\n\t\t\t\tconst results: INodeListSearchItems[] = deals\n\t\t\t\t\t.map((c) => ({\n\t\t\t\t\t\tname: c.properties?.dealname?.value || c.dealId,\n\t\t\t\t\t\tvalue: c.dealId,\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(c) =>\n\t\t\t\t\t\t\t!filter ||\n\t\t\t\t\t\t\tc.name.toString().toLowerCase().includes(filter.toString().toLowerCase()) ||\n\t\t\t\t\t\t\tc.value?.toString() === filter,\n\t\t\t\t\t)\n\t\t\t\t\t.sort((a, b) => {\n\t\t\t\t\t\treturn a.name.toString().toLowerCase() < b.name.toString().toLowerCase() ? -1 : 1;\n\t\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tresults,\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchEngagements(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/engagements/v1/engagements/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst engagements = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: engagements.results.map((b: any) => ({\n\t\t\t\t\t\tname:\n\t\t\t\t\t\t\tb.properties?.name?.value || b.engagement?.type\n\t\t\t\t\t\t\t\t? `${b.engagement?.type}: ${b.engagement.id}`\n\t\t\t\t\t\t\t\t: b.engagement.id,\n\t\t\t\t\t\tvalue: b.engagement.id,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchTickets(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['ticket_name'],\n\t\t\t\t};\n\t\t\t\tconst tickets = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'objects',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: tickets.map((b: any) => ({\n\t\t\t\t\t\tname: b.objectId,\n\t\t\t\t\t\tvalue: b.objectId,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchOwners(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/crm/v3/owners';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: results.map((b: any) => ({\n\t\t\t\t\t\tname: b.email,\n\t\t\t\t\t\tvalue: isNaN(parseInt(b.id)) ? b.id : parseInt(b.id),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst items = this.getInputData();\n\t\tconst returnData: INodeExecutionData[] = [];\n\t\tconst length = items.length;\n\t\tlet responseData;\n\t\tconst qs: IDataObject = {};\n\t\tconst resource = this.getNodeParameter('resource', 0);\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\t//https://legacydocs.hubspot.com/docs/methods/lists/contact-lists-overview\n\t\tif (resource === 'contactList') {\n\t\t\ttry {\n\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/lists/add_contact_to_list\n\t\t\t\tif (operation === 'add') {\n\t\t\t\t\tconst listId = this.getNodeParameter('listId', 0) as string;\n\t\t\t\t\tconst by = this.getNodeParameter('by', 0) as string;\n\t\t\t\t\tconst body: { [key: string]: [] } = { emails: [], vids: [] };\n\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\tif (by === 'id') {\n\t\t\t\t\t\t\tconst id = this.getNodeParameter('id', i) as string;\n\t\t\t\t\t\t\tbody.vids.push(parseInt(id, 10) as never);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst email = this.getNodeParameter('email', i) as string;\n\t\t\t\t\t\t\tbody.emails.push(email as never);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t`/contacts/v1/lists/${listId}/add`,\n\t\t\t\t\t\tbody,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/lists/remove_contact_from_list\n\t\t\t\tif (operation === 'remove') {\n\t\t\t\t\tconst listId = this.getNodeParameter('listId', 0) as string;\n\t\t\t\t\tconst body: { [key: string]: [] } = { vids: [] };\n\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\tconst id = this.getNodeParameter('id', i) as string;\n\t\t\t\t\t\tbody.vids.push(parseInt(id, 10) as never);\n\t\t\t\t\t}\n\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t`/contacts/v1/lists/${listId}/remove`,\n\t\t\t\t\t\tbody,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst itemData = generatePairedItemData(items.length);\n\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t{ itemData },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t} catch (error) {\n\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\treturnData.push({ json: { error: (error as JsonObject).message } });\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/create_or_update\n\t\t\t\t\tif (resource === 'contact') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/create_company\n\t\t\t\t\t\tif (operation === 'upsert') {\n\t\t\t\t\t\t\tconst email = this.getNodeParameter('email', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst options = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (additionalFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (additionalFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'city',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.clickedFacebookAd) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_facebook_ad_clicked',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.clickedFacebookAd,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'company',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companySize) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'company_size',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companySize,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.contactOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.contactOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.country) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'country',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.country,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dateOfBirth) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'date_of_birth',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dateOfBirth,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.degree) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'degree',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.degree,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.facebookClickId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_facebook_click_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.facebookClickId,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.faxNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'fax',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.faxNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.fieldOfStudy) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'field_of_study',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.fieldOfStudy,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.firstName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'firstname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.firstName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.gender) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'gender',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.gender,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.googleAdClickId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_google_click_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.googleAdClickId,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.graduationDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'graduation_date',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.graduationDate,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.jobFunction) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'job_function',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.jobFunction,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.jobTitle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'jobtitle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.jobTitle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lastName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'lastname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lastName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.processingContactData) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_legal_basis',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.processingContactData,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lifeCycleStage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lifeCycleStage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.maritalStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'marital_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.maritalStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.membershipNote) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_content_membership_notes',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.membershipNote,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.message) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'message',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.message,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.mobilePhoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'mobilephone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.mobilePhoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'numemployees',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.originalSource) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.originalSource,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.prefferedLanguage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_language',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.prefferedLanguage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.relationshipStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'relationship_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.relationshipStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.salutation) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'salutation',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.salutation,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.school) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'school',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.school,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.seniority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'seniority',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.seniority,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.startDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'start_date',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.startDate,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'state',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.status) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_content_membership_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.status,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'address',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterUsername) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterUsername,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'website',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.workEmail) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'work_email',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.workEmail,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tproperty: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/createOrUpdate/email/${email}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (additionalFields.associatedCompanyId) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\tfromObjectId: responseData.vid,\n\t\t\t\t\t\t\t\t\ttoObjectId: additionalFields.associatedCompanyId,\n\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\tdefinitionId: 1,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!options.resolveData) {\n\t\t\t\t\t\t\t\tconst isNew = responseData.isNew;\n\t\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\t\tqs.property = additionalFields.properties as string[];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\t`/contacts/v1/contact/vid/${responseData.vid}/profile`,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresponseData.isNew = isNew;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_contact\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst contactId = this.getNodeParameter('contactId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/vid/${contactId}/profile`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_contacts\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.property = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'contacts',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.contacts;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_recently_created_contacts\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = '/contacts/v1/lists/recently_updated/contacts/recent';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'contacts',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.contacts;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/delete_contact\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst contactId = this.getNodeParameter('contactId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/vid/${contactId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: contactId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/api/crm/search\n\t\t\t\t\t\tif (operation === 'search') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst filtersGroupsUi = this.getNodeParameter('filterGroupsUi', i) as IDataObject;\n\t\t\t\t\t\t\tconst sortBy = additionalFields.sortBy || 'createdate';\n\t\t\t\t\t\t\tconst direction = additionalFields.direction || 'DESCENDING';\n\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\tsorts: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpropertyName: sortBy,\n\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (filtersGroupsUi?.filterGroupsValues) {\n\t\t\t\t\t\t\t\tconst filterGroupValues = filtersGroupsUi.filterGroupsValues as IDataObject[];\n\t\t\t\t\t\t\t\tbody.filterGroups = [];\n\t\t\t\t\t\t\t\tfor (const filterGroupValue of filterGroupValues) {\n\t\t\t\t\t\t\t\t\tif (filterGroupValue.filtersUi) {\n\t\t\t\t\t\t\t\t\t\tconst filterValues = (filterGroupValue.filtersUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t\t.filterValues as IDataObject[];\n\t\t\t\t\t\t\t\t\t\tfor (const filter of filterValues) {\n\t\t\t\t\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t\t\t\t\t\t// Hacky way to get the filter value as we concat the values with a | and the type\n\t\t\t\t\t\t\t\t\t\t\tfilter.propertyName = filter.propertyName?.toString().split('|')[0];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t(body.filterGroups as IDataObject[]).push({ filters: filterValues });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\tif (body.filterGroups.length > 3) {\n\t\t\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'You can only have 3 filter groups');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tObject.assign(body, additionalFields);\n\n\t\t\t\t\t\t\tconst endpoint = '/crm/v3/objects/contacts/search';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/companies-overview\n\t\t\t\t\tif (resource === 'company') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/create_company\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst name = this.getNodeParameter('name', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t\t\tvalue: name,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (additionalFields.aboutUs) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'about_us',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.aboutUs,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (additionalFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'city',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyDomainName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'domain',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyDomainName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.countryRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'country',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.countryRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.facebookFans) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'facebookfans',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.facebookFans,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.googlePlusPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'googleplus_page',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.googlePlusPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.isPublic) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'is_public',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.isPublic,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lifecycleStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lifecycleStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.linkedinBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedinbio',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.linkedinBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.linkedInCompanyPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedin_company_page',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.linkedInCompanyPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'numberofemployees',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.originalSourceType) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.originalSourceType,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'state',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress2) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address2',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress2,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.targetAccount) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_target_account',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.targetAccount,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.timezone) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'timezone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.timezone,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.totalMoneyRaised) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'total_money_raised',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.totalMoneyRaised,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterbio',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterFollowers) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterfollowers',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterFollowers,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterHandle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterHandle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.type) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.type,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'website',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.webTechnologies) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'web_technologies',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.webTechnologies,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.yearFounded) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'founded_year',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.yearFounded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/update_company\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (updateFields.name) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.name,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.aboutUs) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'about_us',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.aboutUs,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (updateFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'city',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.companyDomainName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'domain',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.companyDomainName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.companyOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.companyOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.countryRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'country',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.countryRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.facebookFans) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'facebookfans',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.facebookFans,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.googlePlusPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'googleplus_page',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.googlePlusPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.isPublic) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'is_public',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.isPublic,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.lifecycleStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.lifecycleStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.linkedinBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedinbio',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.linkedinBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.linkedInCompanyPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedin_company_page',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.linkedInCompanyPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'numberofemployees',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.originalSourceType) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.originalSourceType,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'state',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.streetAddress2) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address2',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.streetAddress2,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.targetAccount) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_target_account',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.targetAccount,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.timezone) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'timezone',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.timezone,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.totalMoneyRaised) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'total_money_raised',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.totalMoneyRaised,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterbio',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterFollowers) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterfollowers',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterFollowers,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterHandle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterHandle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.type) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.type,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'website',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.webTechnologies) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'web_technologies',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.webTechnologies,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.yearFounded) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'founded_year',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.yearFounded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (updateFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get_company\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.includeMergeAudits) {\n\t\t\t\t\t\t\t\tqs.includeMergeAudits = additionalFields.includeMergeAudits as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get-all-companies\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMerberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMerberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'companies',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.companies;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get_companies_modified\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.since) {\n\t\t\t\t\t\t\t\tqs.since = new Date(additionalFields.since as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies/recent/modified';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/search_companies_by_domain\n\t\t\t\t\t\tif (operation === 'searchByDomain') {\n\t\t\t\t\t\t\tlet domain = this.getNodeParameter('domain', i) as string;\n\t\t\t\t\t\t\tconst options = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (domain.includes('https://')) {\n\t\t\t\t\t\t\t\tdomain = domain.replace('https://', '');\n\t\t\t\t\t\t\t} else if (domain.includes('http://')) {\n\t\t\t\t\t\t\t\tdomain = domain.replace('http://', '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\trequestOptions: {},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (options.properties) {\n\t\t\t\t\t\t\t\tbody.requestOptions = { properties: options.properties as string[] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/domains/${domain}/companies`;\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/delete_company\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/crm/v3/objects/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: companyId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/deals/deals_overview\n\t\t\t\t\tif (resource === 'deal') {\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst body: IDeal = {};\n\t\t\t\t\t\t\tbody.properties = [];\n\t\t\t\t\t\t\tconst association: IAssociation = {};\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst stage = this.getNodeParameter('stage', i) as string;\n\t\t\t\t\t\t\tif (stage) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealstage',\n\t\t\t\t\t\t\t\t\tvalue: stage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.associatedCompany) {\n\t\t\t\t\t\t\t\tassociation.associatedCompanyIds = additionalFields.associatedCompany as number[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.associatedVids) {\n\t\t\t\t\t\t\t\tassociation.associatedVids = additionalFields.associatedVids as number[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealName) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dealName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealOwner) {\n\t\t\t\t\t\t\t\tconst dealOwner = additionalFields.dealOwner as IDataObject;\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: dealOwner.value,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.amount) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'amount',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.amount as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealType) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealtype',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dealType as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.pipeline) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'pipeline',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.pipeline as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbody.associations = association;\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst body: IDeal = {};\n\t\t\t\t\t\t\tbody.properties = [];\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tif (updateFields.stage) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealstage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stage as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealName) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealname',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.dealName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealOwner) {\n\t\t\t\t\t\t\t\tconst dealOwner = updateFields.dealOwner as IDataObject;\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: dealOwner.value,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.amount) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'amount',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.amount as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealType) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealtype',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.dealType as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.pipeline) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'pipeline',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.pipeline as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (updateFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tif (filters.includePropertyVersions) {\n\t\t\t\t\t\t\t\tqs.includePropertyVersions = filters.includePropertyVersions as boolean;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (filters.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = filters.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (filters.includeAssociations) {\n\t\t\t\t\t\t\t\tqs.includeAssociations = filters.includeAssociations as boolean;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//for version 2\n\t\t\t\t\t\t\tif (filters.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = filters.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//for version > 2\n\t\t\t\t\t\t\tif (filters.properties) {\n\t\t\t\t\t\t\t\tconst properties = filters.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(properties) ? properties.split(',') : properties;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (filters.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tconst properties = filters.propertiesWithHistory as string | string[];\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = !Array.isArray(properties)\n\t\t\t\t\t\t\t\t\t? properties.split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'deals',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.deals;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal/recent/created';\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (filters.since) {\n\t\t\t\t\t\t\t\tqs.since = new Date(filters.since as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (filters.includePropertyVersions) {\n\t\t\t\t\t\t\t\tqs.includePropertyVersions = filters.includePropertyVersions as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: dealId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/api/crm/search\n\t\t\t\t\t\tif (operation === 'search') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst filtersGroupsUi = this.getNodeParameter('filterGroupsUi', i) as IDataObject;\n\t\t\t\t\t\t\tconst sortBy = additionalFields.sortBy || 'createdate';\n\t\t\t\t\t\t\tconst direction = additionalFields.direction || 'DESCENDING';\n\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\tsorts: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpropertyName: sortBy,\n\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (filtersGroupsUi?.filterGroupsValues) {\n\t\t\t\t\t\t\t\tconst filterGroupValues = filtersGroupsUi.filterGroupsValues as IDataObject[];\n\t\t\t\t\t\t\t\tbody.filterGroups = [];\n\t\t\t\t\t\t\t\tfor (const filterGroupValue of filterGroupValues) {\n\t\t\t\t\t\t\t\t\tif (filterGroupValue.filtersUi) {\n\t\t\t\t\t\t\t\t\t\tconst filterValues = (filterGroupValue.filtersUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t\t.filterValues as IDataObject[];\n\t\t\t\t\t\t\t\t\t\tfor (const filter of filterValues) {\n\t\t\t\t\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t\t\t\t\t\t// Hacky way to get the filter value as we concat the values with a | and the type\n\t\t\t\t\t\t\t\t\t\t\tfilter.propertyName = filter.propertyName?.toString().split('|')[0];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t(body.filterGroups as IDataObject[]).push({ filters: filterValues });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\tif (body.filterGroups.length > 3) {\n\t\t\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'You can only have 3 filter groups');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tObject.assign(body, additionalFields);\n\n\t\t\t\t\t\t\tconst endpoint = '/crm/v3/objects/deals/search';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (resource === 'engagement') {\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/create_engagement\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst type = this.getNodeParameter('type', i) as string;\n\t\t\t\t\t\t\tconst metadata = this.getNodeParameter('metadata', i) as IDataObject;\n\t\t\t\t\t\t\tconst associations = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'additionalFields.associations',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t) as IDataObject;\n\n\t\t\t\t\t\t\tif (!Object.keys(metadata).length) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'At least one metadata field needs to set',\n\t\t\t\t\t\t\t\t\t{ itemIndex: i },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst body: {\n\t\t\t\t\t\t\t\tengagement: { type: string };\n\t\t\t\t\t\t\t\tmetadata: IDataObject;\n\t\t\t\t\t\t\t\tassociations: IDataObject;\n\t\t\t\t\t\t\t} = {\n\t\t\t\t\t\t\t\tengagement: {\n\t\t\t\t\t\t\t\t\ttype: type.toUpperCase(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmetadata: {},\n\t\t\t\t\t\t\t\tassociations: {},\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (type === 'email') {\n\t\t\t\t\t\t\t\tbody.metadata = getEmailMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'task') {\n\t\t\t\t\t\t\t\tbody.metadata = getTaskMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'meeting') {\n\t\t\t\t\t\t\t\tbody.metadata = getMeetingMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'call') {\n\t\t\t\t\t\t\t\tbody.metadata = getCallMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\tbody.associations = getAssociations(associations);\n\n\t\t\t\t\t\t\tconst endpoint = '/engagements/v1/engagements';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get_engagement\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst engagementId = this.getNodeParameter('engagementId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/engagements/v1/engagements/${engagementId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint, {}, qs);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: engagementId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get_engagement\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst engagementId = this.getNodeParameter('engagementId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/engagements/v1/engagements/${engagementId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get-all-engagements\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst endpoint = '/engagements/v1/engagements/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/forms_overview\n\t\t\t\t\tif (resource === 'form') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/v2/get_fields\n\t\t\t\t\t\tif (operation === 'getFields') {\n\t\t\t\t\t\t\tconst formId = this.getNodeParameter('formId', i) as string;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t`/forms/v2/fields/${formId}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/submit_form_v3\n\t\t\t\t\t\tif (operation === 'submit') {\n\t\t\t\t\t\t\tconst formId = this.getNodeParameter('formId', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst context = (this.getNodeParameter('contextUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.contextValue as IDataObject;\n\t\t\t\t\t\t\tconst legalConsent = (this.getNodeParameter('lengalConsentUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.lengalConsentValues as IDataObject;\n\t\t\t\t\t\t\tconst legitimateInteres = (this.getNodeParameter('lengalConsentUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.legitimateInterestValues as IDataObject;\n\t\t\t\t\t\t\tconst { portalId } = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t`/forms/v2/forms/${formId}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst body: IForm = {\n\t\t\t\t\t\t\t\tformId,\n\t\t\t\t\t\t\t\tportalId,\n\t\t\t\t\t\t\t\tlegalConsentOptions: {},\n\t\t\t\t\t\t\t\tfields: [],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (additionalFields.submittedAt) {\n\t\t\t\t\t\t\t\tbody.submittedAt = new Date(additionalFields.submittedAt as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.skipValidation) {\n\t\t\t\t\t\t\t\tbody.skipValidation = additionalFields.skipValidation as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst consent: IDataObject = {};\n\t\t\t\t\t\t\tif (legalConsent) {\n\t\t\t\t\t\t\t\tif (legalConsent.consentToProcess) {\n\t\t\t\t\t\t\t\t\tconsent.consentToProcess = legalConsent.consentToProcess as boolean;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (legalConsent.text) {\n\t\t\t\t\t\t\t\t\tconsent.text = legalConsent.text as string;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (legalConsent.communicationsUi) {\n\t\t\t\t\t\t\t\t\tconsent.communications = (legalConsent.communicationsUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t.communicationValues as IDataObject;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbody.legalConsentOptions!.consent = consent;\n\t\t\t\t\t\t\tconst fields: IDataObject = items[i].json;\n\t\t\t\t\t\t\tfor (const key of Object.keys(fields)) {\n\t\t\t\t\t\t\t\tbody.fields?.push({ name: key, value: fields[key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (body.legalConsentOptions!.legitimateInterest) {\n\t\t\t\t\t\t\t\tObject.assign(body, {\n\t\t\t\t\t\t\t\t\tlegalConsentOptions: { legitimateInterest: legitimateInteres },\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (context) {\n\t\t\t\t\t\t\t\tclean(context);\n\t\t\t\t\t\t\t\tObject.assign(body, { context });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst uri = `https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', '', body, {}, uri);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/tickets-overview\n\t\t\t\t\tif (resource === 'ticket') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/create-ticket\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst pipelineId = this.getNodeParameter('pipelineId', i) as string;\n\t\t\t\t\t\t\tconst stageId = this.getNodeParameter('stageId', i) as string;\n\t\t\t\t\t\t\tconst ticketName = this.getNodeParameter('ticketName', i) as string;\n\t\t\t\t\t\t\tconst body: IDataObject[] = [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline',\n\t\t\t\t\t\t\t\t\tvalue: pipelineId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline_stage',\n\t\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'subject',\n\t\t\t\t\t\t\t\t\tvalue: ticketName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tif (additionalFields.category) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_category',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.category as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closed_date',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.createDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'createdate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'content',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.priority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_priority',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.priority as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.resolution) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_resolution',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.resolution as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.source) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'source_type',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.source as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.ticketOwnerId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.ticketOwnerId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\n\t\t\t\t\t\t\tif (additionalFields.associatedCompanyIds) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const companyId of additionalFields.associatedCompanyIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: companyId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 26,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (additionalFields.associatedContactIds) {\n\t\t\t\t\t\t\t\tconst contactAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const contactId of additionalFields.associatedContactIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcontactAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: contactId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 16,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcontactAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/get_ticket_by_id\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\tqs.properties = additionalFields.properties as string[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = (additionalFields.propertiesWithHistory as string).split(\n\t\t\t\t\t\t\t\t\t',',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.includeDeleted) {\n\t\t\t\t\t\t\t\tqs.includeDeleted = additionalFields.includeDeleted as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/get-all-tickets\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\tqs.properties = additionalFields.properties as string[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = (additionalFields.propertiesWithHistory as string).split(\n\t\t\t\t\t\t\t\t\t',',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'objects',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'objects',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresponseData = responseData.splice(0, qs.limit);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/delete-ticket\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tawait hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: ticketId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/update-ticket\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (updateFields.pipelineId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.pipelineId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.stageId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline_stage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stageId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.ticketName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'subject',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.ticketName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.category) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_category',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.category as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closed_date',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.createDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'createdate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'content',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.priority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_priority',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.priority as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.resolution) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_resolution',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.resolution as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.source) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'source_type',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.source as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.ticketOwnerId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.ticketOwnerId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, body);\n\n\t\t\t\t\t\t\tif (updateFields.associatedCompanyIds) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const companyId of updateFields.associatedCompanyIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: companyId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 26,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (updateFields.associatedContactIds) {\n\t\t\t\t\t\t\t\tconst contactAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const contactId of updateFields.associatedContactIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcontactAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: contactId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 16,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcontactAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t\t);\n\t\t\t\t\treturnData.push(...executionData);\n\t\t\t\t} catch (errorObject) {\n\t\t\t\t\tconst error = errorObject.cause.cause ? errorObject.cause : errorObject;\n\t\t\t\t\tif (\n\t\t\t\t\t\terror.cause.error?.validationResults &&\n\t\t\t\t\t\terror.cause.error.validationResults[0].error === 'INVALID_EMAIL'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst message = error.cause.error.validationResults[0].message as string;\n\t\t\t\t\t\tset(error, 'message', message);\n\t\t\t\t\t}\n\t\t\t\t\tif (error.cause.error?.message !== 'The resource you are requesting could not be found') {\n\t\t\t\t\t\tif (error.httpCode === '404' && error.description === 'resource not found') {\n\t\t\t\t\t\t\tconst message = `${error.node.parameters.resource} #${\n\t\t\t\t\t\t\t\terror.node.parameters[`${error.node.parameters.resource}Id`].value\n\t\t\t\t\t\t\t} could not be found. Check your ${error.node.parameters.resource} ID is correct`;\n\n\t\t\t\t\t\t\tset(error, 'message', message);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tjson: { error: (error as JsonObject).message },\n\t\t\t\t\t\t\tpairedItem: { item: i },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tset(error, 'context.itemIndex', i);\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":["set"]}
1
+ {"version":3,"sources":["../../../../nodes/Hubspot/V2/HubspotV2.node.ts"],"sourcesContent":["import { snakeCase } from 'change-case';\nimport set from 'lodash/set';\nimport { NodeApiError, NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\nimport type {\n\tICredentialDataDecryptedObject,\n\tICredentialsDecrypted,\n\tICredentialTestFunctions,\n\tIDataObject,\n\tIExecuteFunctions,\n\tILoadOptionsFunctions,\n\tINodeCredentialTestResult,\n\tINodeExecutionData,\n\tINodeListSearchItems,\n\tINodeListSearchResult,\n\tINodePropertyOptions,\n\tINodeType,\n\tINodeTypeBaseDescription,\n\tINodeTypeDescription,\n\tJsonObject,\n} from 'n8n-workflow';\n\nimport { companyFields, companyOperations } from './CompanyDescription';\nimport { contactFields, contactOperations } from './ContactDescription';\nimport { contactListFields, contactListOperations } from './ContactListDescription';\nimport { dealFields, dealOperations } from './DealDescription';\nimport type { IAssociation, IDeal } from './DealInterface';\nimport { engagementFields, engagementOperations } from './EngagementDescription';\nimport type { IForm } from './FormInterface';\nimport {\n\tclean,\n\tgetAssociations,\n\tgetCallMetadata,\n\tgetEmailMetadata,\n\tgetMeetingMetadata,\n\tgetTaskMetadata,\n\thubspotApiRequest,\n\thubspotApiRequestAllItems,\n\tvalidateCredentials,\n} from './GenericFunctions';\nimport { ticketFields, ticketOperations } from './TicketDescription';\nimport { generatePairedItemData } from '../../../utils/utilities';\n\nexport class HubspotV2 implements INodeType {\n\tdescription: INodeTypeDescription;\n\n\tconstructor(baseDescription: INodeTypeBaseDescription) {\n\t\tthis.description = {\n\t\t\t...baseDescription,\n\t\t\tgroup: ['output'],\n\t\t\tversion: [2, 2.1],\n\t\t\tsubtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n\t\t\tdefaults: {\n\t\t\t\tname: 'HubSpot',\n\t\t\t},\n\t\t\tusableAsTool: true,\n\t\t\tinputs: [NodeConnectionTypes.Main],\n\t\t\toutputs: [NodeConnectionTypes.Main],\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotApi',\n\t\t\t\t\trequired: true,\n\t\t\t\t\ttestedBy: 'hubspotApiTest',\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['apiKey'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotAppToken',\n\t\t\t\t\trequired: true,\n\t\t\t\t\ttestedBy: 'hubspotApiTest',\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['appToken'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'hubspotOAuth2Api',\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tauthentication: ['oAuth2'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tproperties: [\n\t\t\t\t{\n\t\t\t\t\tdisplayName: 'Authentication',\n\t\t\t\t\tname: 'authentication',\n\t\t\t\t\ttype: 'options',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'API Key',\n\t\t\t\t\t\t\tvalue: 'apiKey',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'APP Token',\n\t\t\t\t\t\t\tvalue: 'appToken',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'OAuth2',\n\t\t\t\t\t\t\tvalue: 'oAuth2',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdefault: 'apiKey',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdisplayName: 'Resource',\n\t\t\t\t\tname: 'resource',\n\t\t\t\t\ttype: 'options',\n\t\t\t\t\tnoDataExpression: true,\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Company',\n\t\t\t\t\t\t\tvalue: 'company',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Contact',\n\t\t\t\t\t\t\tvalue: 'contact',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Contact List',\n\t\t\t\t\t\t\tvalue: 'contactList',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Deal',\n\t\t\t\t\t\t\tvalue: 'deal',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Engagement',\n\t\t\t\t\t\t\tvalue: 'engagement',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// {\n\t\t\t\t\t\t// \tname: 'Form',\n\t\t\t\t\t\t// \tvalue: 'form',\n\t\t\t\t\t\t// },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Ticket',\n\t\t\t\t\t\t\tvalue: 'ticket',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdefault: 'contact',\n\t\t\t\t},\n\t\t\t\t// CONTACT\n\t\t\t\t...contactOperations,\n\t\t\t\t...contactFields,\n\t\t\t\t// CONTACT LIST\n\t\t\t\t...contactListOperations,\n\t\t\t\t...contactListFields,\n\t\t\t\t// COMPANY\n\t\t\t\t...companyOperations,\n\t\t\t\t...companyFields,\n\t\t\t\t// DEAL\n\t\t\t\t...dealOperations,\n\t\t\t\t...dealFields,\n\t\t\t\t// ENGAGEMENT\n\t\t\t\t...engagementOperations,\n\t\t\t\t...engagementFields,\n\t\t\t\t//! FORM Deprecated\n\t\t\t\t//...formOperations,\n\t\t\t\t//...formFields,\n\t\t\t\t// TICKET\n\t\t\t\t...ticketOperations,\n\t\t\t\t...ticketFields,\n\t\t\t],\n\t\t};\n\t}\n\n\tmethods = {\n\t\tcredentialTest: {\n\t\t\tasync hubspotApiTest(\n\t\t\t\tthis: ICredentialTestFunctions,\n\t\t\t\tcredential: ICredentialsDecrypted,\n\t\t\t): Promise<INodeCredentialTestResult> {\n\t\t\t\ttry {\n\t\t\t\t\tawait validateCredentials.call(this, credential.data as ICredentialDataDecryptedObject);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst err = error as JsonObject;\n\t\t\t\t\tif (err.statusCode === 401) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatus: 'Error',\n\t\t\t\t\t\t\tmessage: 'Invalid credentials',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'OK',\n\t\t\t\t\tmessage: 'Authentication successful',\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t\tloadOptions: {\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* CONTACT */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the contact lead statuses to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLeadStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_lead_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact legal basics to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLealBasics(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_legal_basis') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactLifeCycleStages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'lifecyclestage') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst stageName = option.label;\n\t\t\t\t\t\t\tconst stageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactOriginalSources(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_analytics_source') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst sourceName = option.label;\n\t\t\t\t\t\t\tconst sourceId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: sourceName,\n\t\t\t\t\t\t\t\tvalue: sourceId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact preffered languages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactPrefferedLanguages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_language') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst languageName = option.label;\n\t\t\t\t\t\t\tconst languageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: languageName,\n\t\t\t\t\t\t\t\tvalue: languageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact preffered languages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_content_membership_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst languageName = option.label;\n\t\t\t\t\t\t\tconst languageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: languageName,\n\t\t\t\t\t\t\t\tvalue: languageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\n\t\t\t\tlet properties = (await hubspotApiRequest.call(this, 'GET', endpoint, {})) as Array<{\n\t\t\t\t\tlabel: string;\n\t\t\t\t\tname: string;\n\t\t\t\t}>;\n\n\t\t\t\tproperties = properties.sort((a, b) => {\n\t\t\t\t\tif (a.label < b.label) return -1;\n\t\t\t\t\tif (a.label > b.label) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactPropertiesWithType(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\tconst propertyType = property.type;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t// Hacky way to get the property type need to be parsed to be use in the api\n\t\t\t\t\t\tvalue: `${propertyId}|${propertyType}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactCustomProperties(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the contact number of employees options to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContactNumberOfEmployees(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/contacts/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'numemployees') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst optionName = option.label;\n\t\t\t\t\t\t\tconst optionId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\t\t\tvalue: optionId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* COMPANY */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the company industries to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyIndustries(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'industry') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst industryName = option.label;\n\t\t\t\t\t\t\tconst industryId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: industryName,\n\t\t\t\t\t\t\t\tvalue: industryId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company lead statuses to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyleadStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_lead_status') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst statusName = option.label;\n\t\t\t\t\t\t\tconst statusId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: statusName,\n\t\t\t\t\t\t\t\tvalue: statusId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company lifecycle stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanylifecycleStages(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'lifecyclestage') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst stageName = option.label;\n\t\t\t\t\t\t\tconst stageId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'type') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst typeName = option.label;\n\t\t\t\t\t\t\tconst typeId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: typeName,\n\t\t\t\t\t\t\t\tvalue: typeId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyTargetAccounts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_target_account') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst targetName = option.label;\n\t\t\t\t\t\t\tconst targetId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: targetName,\n\t\t\t\t\t\t\t\tvalue: targetId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company source types stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanySourceTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_analytics_source') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst typeName = option.label;\n\t\t\t\t\t\t\tconst typeId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: typeName,\n\t\t\t\t\t\t\t\tvalue: typeId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company web technologies stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyWebTechnologies(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'web_technologies') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst technologyName = option.label;\n\t\t\t\t\t\t\tconst technologyId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: technologyName,\n\t\t\t\t\t\t\t\tvalue: technologyId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the company custom properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanyCustomProperties(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/companies/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* DEAL */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the groups to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealStages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/deals';\n\t\t\t\tlet stages = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tstages = stages.results[0].stages;\n\t\t\t\tfor (const stage of stages) {\n\t\t\t\t\tconst stageName = stage.label;\n\t\t\t\t\tconst stageId = stage.stageId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal types to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v1/deals/properties/named/dealtype';\n\t\t\t\tconst dealTypes = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\tfor (const dealType of dealTypes.options) {\n\t\t\t\t\tconst dealTypeName = dealType.label;\n\t\t\t\t\tconst dealTypeId = dealType.value;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: dealTypeName,\n\t\t\t\t\t\tvalue: dealTypeId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealCustomProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.hubspotDefined === null) {\n\t\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tlet properties = (await hubspotApiRequest.call(this, 'GET', endpoint, {})) as Array<{\n\t\t\t\t\tlabel: string;\n\t\t\t\t\tname: string;\n\t\t\t\t}>;\n\n\t\t\t\tproperties = properties.sort((a, b) => {\n\t\t\t\t\tif (a.label < b.label) return -1;\n\t\t\t\t\tif (a.label > b.label) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\t\t\t// Get all the deal properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealPropertiesWithType(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/deals/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\tconst propertyType = property.type;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\t// Hacky way to get the property type need to be parsed to be use in the api\n\t\t\t\t\t\t// this is no longer working, properties does not returned in the response\n\t\t\t\t\t\tvalue: `${propertyId}|${propertyType}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the deal pipelines to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getDealPipelines(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm/v3/pipelines/deals';\n\t\t\t\tconst data = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of data.results) {\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: pipeline.label,\n\t\t\t\t\t\tvalue: pipeline.id,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* FORM */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the forms to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getForms(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/forms/v2/forms';\n\t\t\t\tconst forms = await hubspotApiRequest.call(this, 'GET', endpoint, {}, { formTypes: 'ALL' });\n\t\t\t\tfor (const form of forms) {\n\t\t\t\t\tconst formName = form.name;\n\t\t\t\t\tconst formId = form.guid;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: formName,\n\t\t\t\t\t\tvalue: formId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the subscription types to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getSubscriptionTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/email/public/v1/subscriptions';\n\t\t\t\tconst subscriptions = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'subscriptionDefinitions',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t);\n\t\t\t\tfor (const subscription of subscriptions) {\n\t\t\t\t\tconst subscriptionName = subscription.name;\n\t\t\t\t\tconst subscriptionId = subscription.id;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: subscriptionName,\n\t\t\t\t\t\tvalue: subscriptionId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* TICKET */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the ticket categories to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketCategories(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_ticket_category') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst categoryName = option.label;\n\t\t\t\t\t\t\tconst categoryId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: categoryName,\n\t\t\t\t\t\t\t\tvalue: categoryId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket pipelines to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketPipelines(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/tickets';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of results) {\n\t\t\t\t\tconst pipelineName = pipeline.label;\n\t\t\t\t\tconst pipelineId = pipeline.pipelineId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: pipelineName,\n\t\t\t\t\t\tvalue: pipelineId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket resolutions to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketPriorities(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_ticket_priority') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst priorityName = option.label;\n\t\t\t\t\t\t\tconst priorityId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: priorityName,\n\t\t\t\t\t\t\t\tvalue: priorityId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket properties to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketProperties(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tconst propertyName = property.label;\n\t\t\t\t\tconst propertyId = property.name;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: propertyName,\n\t\t\t\t\t\tvalue: propertyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the ticket resolutions to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketResolutions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'hs_resolution') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst resolutionName = option.label;\n\t\t\t\t\t\t\tconst resolutionId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: resolutionName,\n\t\t\t\t\t\t\t\tvalue: resolutionId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket sources to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketSources(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/properties/v2/tickets/properties';\n\t\t\t\tconst properties = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tif (property.name === 'source_type') {\n\t\t\t\t\t\tfor (const option of property.options) {\n\t\t\t\t\t\t\tconst sourceName = option.label;\n\t\t\t\t\t\t\tconst sourceId = option.value;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: sourceName,\n\t\t\t\t\t\t\t\tvalue: sourceId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the ticket stages to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getTicketStages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tlet currentPipelineId = this.getCurrentNodeParameter('pipelineId') as string;\n\t\t\t\tif (currentPipelineId === undefined) {\n\t\t\t\t\tcurrentPipelineId = this.getNodeParameter('updateFields.pipelineId', '') as string;\n\t\t\t\t}\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm-pipelines/v1/pipelines/tickets';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\tfor (const pipeline of results) {\n\t\t\t\t\tif (currentPipelineId === pipeline.pipelineId) {\n\t\t\t\t\t\tfor (const stage of pipeline.stages) {\n\t\t\t\t\t\t\tconst stageName = stage.label;\n\t\t\t\t\t\t\tconst stageId = stage.stageId;\n\t\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\t\tname: stageName,\n\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t/* -------------------------------------------------------------------------- */\n\t\t\t/* COMMON */\n\t\t\t/* -------------------------------------------------------------------------- */\n\n\t\t\t// Get all the owners to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getOwners(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/crm/v3/owners';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\tfor (const owner of results) {\n\t\t\t\t\tconst ownerName = owner.email;\n\t\t\t\t\tconst ownerId = isNaN(parseInt(owner.id)) ? owner.id : parseInt(owner.id);\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: ownerName,\n\t\t\t\t\t\tvalue: ownerId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData;\n\t\t\t},\n\n\t\t\t// Get all the companies to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getCompanies(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\tconst companies = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'companies',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\tfor (const company of companies) {\n\t\t\t\t\tconst companyName = company.properties.name\n\t\t\t\t\t\t? company.properties.name.value\n\t\t\t\t\t\t: company.companyId;\n\t\t\t\t\tconst companyId = company.companyId;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: companyName,\n\t\t\t\t\t\tvalue: companyId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\n\t\t\t// Get all the companies to display them to user so that they can\n\t\t\t// select them easily\n\t\t\tasync getContacts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\tconst returnData: INodePropertyOptions[] = [];\n\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\tconst contacts = await hubspotApiRequestAllItems.call(this, 'contacts', 'GET', endpoint);\n\n\t\t\t\tfor (const contact of contacts) {\n\t\t\t\t\tconst firstName = contact.properties?.firstname?.value || '';\n\t\t\t\t\tconst lastName = contact.properties?.lastname?.value || '';\n\t\t\t\t\tconst contactName = `${firstName} ${lastName}`;\n\t\t\t\t\tconst contactId = contact.vid;\n\t\t\t\t\treturnData.push({\n\t\t\t\t\t\tname: contactName,\n\t\t\t\t\t\tvalue: contactId,\n\t\t\t\t\t\tdescription: `Contact VID: ${contactId}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn returnData.sort((a, b) => (a.name < b.name ? 0 : 1));\n\t\t\t},\n\t\t},\n\t\tlistSearch: {\n\t\t\tasync searchCompanies(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\tconst searchResults = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'companies',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: searchResults.map((b: any) => ({\n\t\t\t\t\t\tname: b.properties?.name?.value || b.companyId,\n\t\t\t\t\t\tvalue: b.companyId,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchContacts(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t\tfilter?: string,\n\t\t\t): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperty: ['email'],\n\t\t\t\t};\n\t\t\t\tconst contacts = (await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'contacts',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t)) as Array<{ vid: string; properties: { email: { value: string } } }>;\n\t\t\t\tconst results: INodeListSearchItems[] = contacts\n\t\t\t\t\t.map((c) => ({\n\t\t\t\t\t\tname: c.properties.email.value || c.vid,\n\t\t\t\t\t\tvalue: c.vid,\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(c) =>\n\t\t\t\t\t\t\t!filter ||\n\t\t\t\t\t\t\tc.name.toLowerCase().includes(filter.toLowerCase()) ||\n\t\t\t\t\t\t\tc.value?.toString() === filter,\n\t\t\t\t\t)\n\t\t\t\t\t.sort((a, b) => {\n\t\t\t\t\t\treturn a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n\t\t\t\t\t});\n\n\t\t\t\treturn { results };\n\t\t\t},\n\t\t\tasync searchDeals(\n\t\t\t\tthis: ILoadOptionsFunctions,\n\t\t\t\tfilter?: string,\n\t\t\t): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/deals/v1/deal/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['dealname'],\n\t\t\t\t};\n\t\t\t\tconst deals = (await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'deals',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t)) as Array<{ dealId: string; properties: { dealname: { value: string } } }>;\n\t\t\t\tconst results: INodeListSearchItems[] = deals\n\t\t\t\t\t.map((c) => ({\n\t\t\t\t\t\tname: c.properties?.dealname?.value || c.dealId,\n\t\t\t\t\t\tvalue: c.dealId,\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(c) =>\n\t\t\t\t\t\t\t!filter ||\n\t\t\t\t\t\t\tc.name.toString().toLowerCase().includes(filter.toString().toLowerCase()) ||\n\t\t\t\t\t\t\tc.value?.toString() === filter,\n\t\t\t\t\t)\n\t\t\t\t\t.sort((a, b) => {\n\t\t\t\t\t\treturn a.name.toString().toLowerCase() < b.name.toString().toLowerCase() ? -1 : 1;\n\t\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tresults,\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchEngagements(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/engagements/v1/engagements/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['name'],\n\t\t\t\t};\n\t\t\t\tconst engagements = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: engagements.results.map((b: any) => ({\n\t\t\t\t\t\tname:\n\t\t\t\t\t\t\tb.properties?.name?.value || b.engagement?.type\n\t\t\t\t\t\t\t\t? `${b.engagement?.type}: ${b.engagement.id}`\n\t\t\t\t\t\t\t\t: b.engagement.id,\n\t\t\t\t\t\tvalue: b.engagement.id,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchTickets(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets/paged';\n\t\t\t\tconst qs: IDataObject = {\n\t\t\t\t\tproperties: ['ticket_name'],\n\t\t\t\t};\n\t\t\t\tconst tickets = await hubspotApiRequestAllItems.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'objects',\n\t\t\t\t\t'GET',\n\t\t\t\t\tendpoint,\n\t\t\t\t\t{},\n\t\t\t\t\tqs,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: tickets.map((b: any) => ({\n\t\t\t\t\t\tname: b.objectId,\n\t\t\t\t\t\tvalue: b.objectId,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync searchOwners(this: ILoadOptionsFunctions): Promise<INodeListSearchResult> {\n\t\t\t\tconst endpoint = '/crm/v3/owners';\n\t\t\t\tconst { results } = await hubspotApiRequest.call(this, 'GET', endpoint, {});\n\t\t\t\treturn {\n\t\t\t\t\t// tslint:disable-next-line: no-any\n\t\t\t\t\tresults: results.map((b: any) => ({\n\t\t\t\t\t\tname: b.email,\n\t\t\t\t\t\tvalue: isNaN(parseInt(b.id)) ? b.id : parseInt(b.id),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst items = this.getInputData();\n\t\tconst returnData: INodeExecutionData[] = [];\n\t\tconst length = items.length;\n\t\tlet responseData;\n\t\tconst qs: IDataObject = {};\n\t\tconst resource = this.getNodeParameter('resource', 0);\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\t//https://legacydocs.hubspot.com/docs/methods/lists/contact-lists-overview\n\t\tif (resource === 'contactList') {\n\t\t\ttry {\n\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/lists/add_contact_to_list\n\t\t\t\tif (operation === 'add') {\n\t\t\t\t\tconst listId = this.getNodeParameter('listId', 0) as string;\n\t\t\t\t\tconst by = this.getNodeParameter('by', 0) as string;\n\t\t\t\t\tconst body: { [key: string]: [] } = { emails: [], vids: [] };\n\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\tif (by === 'id') {\n\t\t\t\t\t\t\tconst id = this.getNodeParameter('id', i) as string;\n\t\t\t\t\t\t\tbody.vids.push(parseInt(id, 10) as never);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst email = this.getNodeParameter('email', i) as string;\n\t\t\t\t\t\t\tbody.emails.push(email as never);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t`/contacts/v1/lists/${listId}/add`,\n\t\t\t\t\t\tbody,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/lists/remove_contact_from_list\n\t\t\t\tif (operation === 'remove') {\n\t\t\t\t\tconst listId = this.getNodeParameter('listId', 0) as string;\n\t\t\t\t\tconst body: { [key: string]: [] } = { vids: [] };\n\t\t\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\t\t\tconst id = this.getNodeParameter('id', i) as string;\n\t\t\t\t\t\tbody.vids.push(parseInt(id, 10) as never);\n\t\t\t\t\t}\n\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t`/contacts/v1/lists/${listId}/remove`,\n\t\t\t\t\t\tbody,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst itemData = generatePairedItemData(items.length);\n\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t{ itemData },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t} catch (error) {\n\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\treturnData.push({ json: { error: (error as JsonObject).message } });\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/create_or_update\n\t\t\t\t\tif (resource === 'contact') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/create_company\n\t\t\t\t\t\tif (operation === 'upsert') {\n\t\t\t\t\t\t\tconst email = this.getNodeParameter('email', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst options = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (additionalFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (additionalFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'city',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.clickedFacebookAd) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_facebook_ad_clicked',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.clickedFacebookAd,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'company',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companySize) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'company_size',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companySize,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.contactOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.contactOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.country) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'country',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.country,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dateOfBirth) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'date_of_birth',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dateOfBirth,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.degree) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'degree',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.degree,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.facebookClickId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_facebook_click_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.facebookClickId,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.faxNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'fax',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.faxNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.fieldOfStudy) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'field_of_study',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.fieldOfStudy,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.firstName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'firstname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.firstName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.gender) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'gender',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.gender,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.googleAdClickId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_google_click_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.googleAdClickId,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.graduationDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'graduation_date',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.graduationDate,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.jobFunction) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'job_function',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.jobFunction,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.jobTitle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'jobtitle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.jobTitle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lastName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'lastname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lastName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.processingContactData) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_legal_basis',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.processingContactData,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lifeCycleStage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lifeCycleStage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.maritalStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'marital_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.maritalStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.membershipNote) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_content_membership_notes',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.membershipNote,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.message) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'message',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.message,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.mobilePhoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'mobilephone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.mobilePhoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'numemployees',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.originalSource) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.originalSource,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.prefferedLanguage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_language',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.prefferedLanguage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.relationshipStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'relationship_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.relationshipStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.salutation) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'salutation',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.salutation,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.school) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'school',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.school,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.seniority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'seniority',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.seniority,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.startDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'start_date',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.startDate,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'state',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.status) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'hs_content_membership_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.status,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'address',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterUsername) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterUsername,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'website',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.workEmail) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tproperty: 'work_email',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.workEmail,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tproperty: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/createOrUpdate/email/${email}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (additionalFields.associatedCompanyId) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\tfromObjectId: responseData.vid,\n\t\t\t\t\t\t\t\t\ttoObjectId: additionalFields.associatedCompanyId,\n\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\tdefinitionId: 1,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!options.resolveData) {\n\t\t\t\t\t\t\t\tconst isNew = responseData.isNew;\n\t\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\t\tqs.property = additionalFields.properties as string[];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\t`/contacts/v1/contact/vid/${responseData.vid}/profile`,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresponseData.isNew = isNew;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_contact\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst contactId = this.getNodeParameter('contactId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/vid/${contactId}/profile`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_contacts\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.property = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/contacts/v1/lists/all/contacts/all';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'contacts',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.contacts;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/get_recently_created_contacts\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMemberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMemberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = '/contacts/v1/lists/recently_updated/contacts/recent';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'contacts',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.contacts;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/contacts/delete_contact\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst contactId = this.getNodeParameter('contactId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/contacts/v1/contact/vid/${contactId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: contactId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/api/crm/search\n\t\t\t\t\t\tif (operation === 'search') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst filtersGroupsUi = this.getNodeParameter('filterGroupsUi', i) as IDataObject;\n\t\t\t\t\t\t\tconst sortBy = additionalFields.sortBy || 'createdate';\n\t\t\t\t\t\t\tconst direction = additionalFields.direction || 'DESCENDING';\n\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\tsorts: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpropertyName: sortBy,\n\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (filtersGroupsUi?.filterGroupsValues) {\n\t\t\t\t\t\t\t\tconst filterGroupValues = filtersGroupsUi.filterGroupsValues as IDataObject[];\n\t\t\t\t\t\t\t\tbody.filterGroups = [];\n\t\t\t\t\t\t\t\tfor (const filterGroupValue of filterGroupValues) {\n\t\t\t\t\t\t\t\t\tif (filterGroupValue.filtersUi) {\n\t\t\t\t\t\t\t\t\t\tconst filterValues = (filterGroupValue.filtersUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t\t.filterValues as IDataObject[];\n\t\t\t\t\t\t\t\t\t\tfor (const filter of filterValues) {\n\t\t\t\t\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t\t\t\t\t\t// Hacky way to get the filter value as we concat the values with a | and the type\n\t\t\t\t\t\t\t\t\t\t\tfilter.propertyName = filter.propertyName?.toString().split('|')[0];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t(body.filterGroups as IDataObject[]).push({ filters: filterValues });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\tif (body.filterGroups.length > 3) {\n\t\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t\t'You can only have 3 filter groups',\n\t\t\t\t\t\t\t\t\t\t{ itemIndex: i },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tObject.assign(body, additionalFields);\n\n\t\t\t\t\t\t\tconst endpoint = '/crm/v3/objects/contacts/search';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/companies-overview\n\t\t\t\t\tif (resource === 'company') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/create_company\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst name = this.getNodeParameter('name', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t\t\tvalue: name,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (additionalFields.aboutUs) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'about_us',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.aboutUs,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (additionalFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'city',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyDomainName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'domain',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyDomainName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.companyOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.companyOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.countryRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'country',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.countryRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.facebookFans) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'facebookfans',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.facebookFans,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.googlePlusPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'googleplus_page',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.googlePlusPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.isPublic) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'is_public',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.isPublic,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.lifecycleStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.lifecycleStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.linkedinBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedinbio',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.linkedinBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.linkedInCompanyPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedin_company_page',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.linkedInCompanyPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'numberofemployees',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.originalSourceType) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.originalSourceType,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'state',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.streetAddress2) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address2',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.streetAddress2,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.targetAccount) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_target_account',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.targetAccount,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.timezone) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'timezone',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.timezone,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.totalMoneyRaised) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'total_money_raised',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.totalMoneyRaised,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterbio',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterFollowers) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterfollowers',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterFollowers,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.twitterHandle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.twitterHandle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.type) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.type,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'website',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.webTechnologies) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'web_technologies',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.webTechnologies,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.yearFounded) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'founded_year',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.yearFounded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/update_company\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (updateFields.name) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.name,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.aboutUs) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'about_us',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.aboutUs,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.annualRevenue) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'annualrevenue',\n\t\t\t\t\t\t\t\t\tvalue: (updateFields.annualRevenue as number).toString(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.city) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'city',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.city,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.companyDomainName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'domain',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.companyDomainName,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.companyOwner) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.companyOwner,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.countryRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'country',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.countryRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.facebookFans) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'facebookfans',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.facebookFans,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.googlePlusPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'googleplus_page',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.googlePlusPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.industry) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'industry',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.industry,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.isPublic) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'is_public',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.isPublic,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.leadStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_lead_status',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.leadStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.lifecycleStatus) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'lifecyclestage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.lifecycleStatus,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.linkedinBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedinbio',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.linkedinBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.linkedInCompanyPage) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'linkedin_company_page',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.linkedInCompanyPage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.numberOfEmployees) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'numberofemployees',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.numberOfEmployees,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.originalSourceType) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_analytics_source',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.originalSourceType,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.phoneNumber) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'phone',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.phoneNumber,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.postalCode) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'zip',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.postalCode,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.stateRegion) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'state',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stateRegion,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.streetAddress) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.streetAddress,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.streetAddress2) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'address2',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.streetAddress2,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.targetAccount) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_target_account',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.targetAccount,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.timezone) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'timezone',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.timezone,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.totalMoneyRaised) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'total_money_raised',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.totalMoneyRaised,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterBio) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterbio',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterBio,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterFollowers) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterfollowers',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterFollowers,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.twitterHandle) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'twitterhandle',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.twitterHandle,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.type) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.type,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.websiteUrl) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'website',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.websiteUrl,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.webTechnologies) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'web_technologies',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.webTechnologies,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.yearFounded) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'founded_year',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.yearFounded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (updateFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, {\n\t\t\t\t\t\t\t\tproperties: body,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get_company\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.includeMergeAudits) {\n\t\t\t\t\t\t\t\tqs.includeMergeAudits = additionalFields.includeMergeAudits as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get-all-companies\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.formSubmissionMode) {\n\t\t\t\t\t\t\t\tqs.formSubmissionMode = additionalFields.formSubmissionMode as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.listMerberships) {\n\t\t\t\t\t\t\t\tqs.showListMemberships = additionalFields.listMerberships as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'companies',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.companies;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/get_companies_modified\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.since) {\n\t\t\t\t\t\t\t\tqs.since = new Date(additionalFields.since as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = additionalFields.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/companies/v2/companies/recent/modified';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/search_companies_by_domain\n\t\t\t\t\t\tif (operation === 'searchByDomain') {\n\t\t\t\t\t\t\tlet domain = this.getNodeParameter('domain', i) as string;\n\t\t\t\t\t\t\tconst options = this.getNodeParameter('options', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (domain.includes('https://')) {\n\t\t\t\t\t\t\t\tdomain = domain.replace('https://', '');\n\t\t\t\t\t\t\t} else if (domain.includes('http://')) {\n\t\t\t\t\t\t\t\tdomain = domain.replace('http://', '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\trequestOptions: {},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (options.properties) {\n\t\t\t\t\t\t\t\tbody.requestOptions = { properties: options.properties as string[] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/companies/v2/domains/${domain}/companies`;\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/companies/delete_company\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst companyId = this.getNodeParameter('companyId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/crm/v3/objects/companies/${companyId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: companyId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/deals/deals_overview\n\t\t\t\t\tif (resource === 'deal') {\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst body: IDeal = {};\n\t\t\t\t\t\t\tbody.properties = [];\n\t\t\t\t\t\t\tconst association: IAssociation = {};\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst stage = this.getNodeParameter('stage', i) as string;\n\t\t\t\t\t\t\tif (stage) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealstage',\n\t\t\t\t\t\t\t\t\tvalue: stage,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.associatedCompany) {\n\t\t\t\t\t\t\t\tassociation.associatedCompanyIds = additionalFields.associatedCompany as number[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.associatedVids) {\n\t\t\t\t\t\t\t\tassociation.associatedVids = additionalFields.associatedVids as number[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealName) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealname',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dealName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealOwner) {\n\t\t\t\t\t\t\t\tconst dealOwner = additionalFields.dealOwner as IDataObject;\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: dealOwner.value,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.amount) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'amount',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.amount as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.dealType) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealtype',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.dealType as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.pipeline) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'pipeline',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.pipeline as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (additionalFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbody.associations = association;\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst body: IDeal = {};\n\t\t\t\t\t\t\tbody.properties = [];\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tif (updateFields.stage) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealstage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stage as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealName) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealname',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.dealName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealOwner) {\n\t\t\t\t\t\t\t\tconst dealOwner = updateFields.dealOwner as IDataObject;\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: dealOwner.value,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'closedate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.amount) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'amount',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.amount as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.dealType) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'dealtype',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.dealType as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.pipeline) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'pipeline',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.pipeline as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\tname: 'description',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.customPropertiesUi) {\n\t\t\t\t\t\t\t\tconst customProperties = (updateFields.customPropertiesUi as IDataObject)\n\t\t\t\t\t\t\t\t\t.customPropertiesValues as IDataObject[];\n\t\t\t\t\t\t\t\tif (customProperties) {\n\t\t\t\t\t\t\t\t\tfor (const customProperty of customProperties) {\n\t\t\t\t\t\t\t\t\t\tbody.properties.push({\n\t\t\t\t\t\t\t\t\t\t\tname: customProperty.property,\n\t\t\t\t\t\t\t\t\t\t\tvalue: customProperty.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tif (filters.includePropertyVersions) {\n\t\t\t\t\t\t\t\tqs.includePropertyVersions = filters.includePropertyVersions as boolean;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (filters.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = filters.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (filters.includeAssociations) {\n\t\t\t\t\t\t\t\tqs.includeAssociations = filters.includeAssociations as boolean;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//for version 2\n\t\t\t\t\t\t\tif (filters.propertiesCollection) {\n\t\t\t\t\t\t\t\tconst propertiesValues = filters.propertiesCollection // @ts-ignore\n\t\t\t\t\t\t\t\t\t.propertiesValues as IDataObject;\n\t\t\t\t\t\t\t\tconst properties = propertiesValues.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(propertiesValues.properties)\n\t\t\t\t\t\t\t\t\t? (properties as string).split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t\tqs.propertyMode = snakeCase(propertiesValues.propertyMode as string);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//for version > 2\n\t\t\t\t\t\t\tif (filters.properties) {\n\t\t\t\t\t\t\t\tconst properties = filters.properties as string | string[];\n\t\t\t\t\t\t\t\tqs.properties = !Array.isArray(properties) ? properties.split(',') : properties;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (filters.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tconst properties = filters.propertiesWithHistory as string | string[];\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = !Array.isArray(properties)\n\t\t\t\t\t\t\t\t\t? properties.split(',')\n\t\t\t\t\t\t\t\t\t: properties;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'deals',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.deals;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'getRecentlyCreatedUpdated') {\n\t\t\t\t\t\t\tconst endpoint = '/deals/v1/deal/recent/created';\n\t\t\t\t\t\t\tconst filters = this.getNodeParameter('filters', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (filters.since) {\n\t\t\t\t\t\t\t\tqs.since = new Date(filters.since as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (filters.includePropertyVersions) {\n\t\t\t\t\t\t\t\tqs.includePropertyVersions = filters.includePropertyVersions as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.count = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst dealId = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'dealId',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t{ extractValue: true },\n\t\t\t\t\t\t\t) as string;\n\t\t\t\t\t\t\tconst endpoint = `/deals/v1/deal/${dealId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: dealId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/api/crm/search\n\t\t\t\t\t\tif (operation === 'search') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst filtersGroupsUi = this.getNodeParameter('filterGroupsUi', i) as IDataObject;\n\t\t\t\t\t\t\tconst sortBy = additionalFields.sortBy || 'createdate';\n\t\t\t\t\t\t\tconst direction = additionalFields.direction || 'DESCENDING';\n\n\t\t\t\t\t\t\tconst body: IDataObject = {\n\t\t\t\t\t\t\t\tsorts: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpropertyName: sortBy,\n\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (filtersGroupsUi?.filterGroupsValues) {\n\t\t\t\t\t\t\t\tconst filterGroupValues = filtersGroupsUi.filterGroupsValues as IDataObject[];\n\t\t\t\t\t\t\t\tbody.filterGroups = [];\n\t\t\t\t\t\t\t\tfor (const filterGroupValue of filterGroupValues) {\n\t\t\t\t\t\t\t\t\tif (filterGroupValue.filtersUi) {\n\t\t\t\t\t\t\t\t\t\tconst filterValues = (filterGroupValue.filtersUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t\t.filterValues as IDataObject[];\n\t\t\t\t\t\t\t\t\t\tfor (const filter of filterValues) {\n\t\t\t\t\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t\t\t\t\t\t// Hacky way to get the filter value as we concat the values with a | and the type\n\t\t\t\t\t\t\t\t\t\t\tfilter.propertyName = filter.propertyName?.toString().split('|')[0];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t(body.filterGroups as IDataObject[]).push({ filters: filterValues });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\tif (body.filterGroups.length > 3) {\n\t\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t\t'You can only have 3 filter groups',\n\t\t\t\t\t\t\t\t\t\t{ itemIndex: i },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tObject.assign(body, additionalFields);\n\n\t\t\t\t\t\t\tconst endpoint = '/crm/v3/objects/deals/search';\n\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbody.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (resource === 'engagement') {\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/create_engagement\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst type = this.getNodeParameter('type', i) as string;\n\t\t\t\t\t\t\tconst metadata = this.getNodeParameter('metadata', i) as IDataObject;\n\t\t\t\t\t\t\tconst associations = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'additionalFields.associations',\n\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t) as IDataObject;\n\n\t\t\t\t\t\t\tif (!Object.keys(metadata).length) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'At least one metadata field needs to set',\n\t\t\t\t\t\t\t\t\t{ itemIndex: i },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst body: {\n\t\t\t\t\t\t\t\tengagement: { type: string };\n\t\t\t\t\t\t\t\tmetadata: IDataObject;\n\t\t\t\t\t\t\t\tassociations: IDataObject;\n\t\t\t\t\t\t\t} = {\n\t\t\t\t\t\t\t\tengagement: {\n\t\t\t\t\t\t\t\t\ttype: type.toUpperCase(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmetadata: {},\n\t\t\t\t\t\t\t\tassociations: {},\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (type === 'email') {\n\t\t\t\t\t\t\t\tbody.metadata = getEmailMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'task') {\n\t\t\t\t\t\t\t\tbody.metadata = getTaskMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'meeting') {\n\t\t\t\t\t\t\t\tbody.metadata = getMeetingMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (type === 'call') {\n\t\t\t\t\t\t\t\tbody.metadata = getCallMetadata(metadata);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\tbody.associations = getAssociations(associations);\n\n\t\t\t\t\t\t\tconst endpoint = '/engagements/v1/engagements';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get_engagement\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst engagementId = this.getNodeParameter('engagementId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/engagements/v1/engagements/${engagementId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'DELETE', endpoint, {}, qs);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: engagementId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get_engagement\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst engagementId = this.getNodeParameter('engagementId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/engagements/v1/engagements/${engagementId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://legacydocs.hubspot.com/docs/methods/engagements/get-all-engagements\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tconst endpoint = '/engagements/v1/engagements/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'results',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t\t\tresponseData = responseData.results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/forms_overview\n\t\t\t\t\tif (resource === 'form') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/v2/get_fields\n\t\t\t\t\t\tif (operation === 'getFields') {\n\t\t\t\t\t\t\tconst formId = this.getNodeParameter('formId', i) as string;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t`/forms/v2/fields/${formId}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/forms/submit_form_v3\n\t\t\t\t\t\tif (operation === 'submit') {\n\t\t\t\t\t\t\tconst formId = this.getNodeParameter('formId', i) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst context = (this.getNodeParameter('contextUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.contextValue as IDataObject;\n\t\t\t\t\t\t\tconst legalConsent = (this.getNodeParameter('lengalConsentUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.lengalConsentValues as IDataObject;\n\t\t\t\t\t\t\tconst legitimateInteres = (this.getNodeParameter('lengalConsentUi', i) as IDataObject)\n\t\t\t\t\t\t\t\t.legitimateInterestValues as IDataObject;\n\t\t\t\t\t\t\tconst { portalId } = await hubspotApiRequest.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t`/forms/v2/forms/${formId}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst body: IForm = {\n\t\t\t\t\t\t\t\tformId,\n\t\t\t\t\t\t\t\tportalId,\n\t\t\t\t\t\t\t\tlegalConsentOptions: {},\n\t\t\t\t\t\t\t\tfields: [],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (additionalFields.submittedAt) {\n\t\t\t\t\t\t\t\tbody.submittedAt = new Date(additionalFields.submittedAt as string).getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.skipValidation) {\n\t\t\t\t\t\t\t\tbody.skipValidation = additionalFields.skipValidation as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst consent: IDataObject = {};\n\t\t\t\t\t\t\tif (legalConsent) {\n\t\t\t\t\t\t\t\tif (legalConsent.consentToProcess) {\n\t\t\t\t\t\t\t\t\tconsent.consentToProcess = legalConsent.consentToProcess as boolean;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (legalConsent.text) {\n\t\t\t\t\t\t\t\t\tconsent.text = legalConsent.text as string;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (legalConsent.communicationsUi) {\n\t\t\t\t\t\t\t\t\tconsent.communications = (legalConsent.communicationsUi as IDataObject)\n\t\t\t\t\t\t\t\t\t\t.communicationValues as IDataObject;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbody.legalConsentOptions!.consent = consent;\n\t\t\t\t\t\t\tconst fields: IDataObject = items[i].json;\n\t\t\t\t\t\t\tfor (const key of Object.keys(fields)) {\n\t\t\t\t\t\t\t\tbody.fields?.push({ name: key, value: fields[key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (body.legalConsentOptions!.legitimateInterest) {\n\t\t\t\t\t\t\t\tObject.assign(body, {\n\t\t\t\t\t\t\t\t\tlegalConsentOptions: { legitimateInterest: legitimateInteres },\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (context) {\n\t\t\t\t\t\t\t\tclean(context);\n\t\t\t\t\t\t\t\tObject.assign(body, { context });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst uri = `https://api.hsforms.com/submissions/v3/integration/submit/${portalId}/${formId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', '', body, {}, uri);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/tickets-overview\n\t\t\t\t\tif (resource === 'ticket') {\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/create-ticket\n\t\t\t\t\t\tif (operation === 'create') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst pipelineId = this.getNodeParameter('pipelineId', i) as string;\n\t\t\t\t\t\t\tconst stageId = this.getNodeParameter('stageId', i) as string;\n\t\t\t\t\t\t\tconst ticketName = this.getNodeParameter('ticketName', i) as string;\n\t\t\t\t\t\t\tconst body: IDataObject[] = [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline',\n\t\t\t\t\t\t\t\t\tvalue: pipelineId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline_stage',\n\t\t\t\t\t\t\t\t\tvalue: stageId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\t\t\t\tname: 'subject',\n\t\t\t\t\t\t\t\t\tvalue: ticketName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tif (additionalFields.category) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_category',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.category as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closed_date',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.closeDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.createDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'createdate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(additionalFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'content',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.priority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_priority',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.priority as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.resolution) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_resolution',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.resolution as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.source) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'source_type',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.source as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.ticketOwnerId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: additionalFields.ticketOwnerId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets';\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'POST', endpoint, body);\n\n\t\t\t\t\t\t\tif (additionalFields.associatedCompanyIds) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const companyId of additionalFields.associatedCompanyIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: companyId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 26,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (additionalFields.associatedContactIds) {\n\t\t\t\t\t\t\t\tconst contactAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const contactId of additionalFields.associatedContactIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcontactAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: contactId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 16,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcontactAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/get_ticket_by_id\n\t\t\t\t\t\tif (operation === 'get') {\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\tqs.properties = additionalFields.properties as string[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = (additionalFields.propertiesWithHistory as string).split(\n\t\t\t\t\t\t\t\t\t',',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.includeDeleted) {\n\t\t\t\t\t\t\t\tqs.includeDeleted = additionalFields.includeDeleted as boolean;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'GET', endpoint, {}, qs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/get-all-tickets\n\t\t\t\t\t\tif (operation === 'getAll') {\n\t\t\t\t\t\t\tconst additionalFields = this.getNodeParameter('additionalFields', i);\n\t\t\t\t\t\t\tconst returnAll = this.getNodeParameter('returnAll', 0);\n\t\t\t\t\t\t\tif (additionalFields.properties) {\n\t\t\t\t\t\t\t\tqs.properties = additionalFields.properties as string[];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (additionalFields.propertiesWithHistory) {\n\t\t\t\t\t\t\t\tqs.propertiesWithHistory = (additionalFields.propertiesWithHistory as string).split(\n\t\t\t\t\t\t\t\t\t',',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = '/crm-objects/v1/objects/tickets/paged';\n\t\t\t\t\t\t\tif (returnAll) {\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'objects',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tqs.limit = this.getNodeParameter('limit', 0);\n\t\t\t\t\t\t\t\tresponseData = await hubspotApiRequestAllItems.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'objects',\n\t\t\t\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t\t\t\tendpoint,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\tqs,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresponseData = responseData.splice(0, qs.limit);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/delete-ticket\n\t\t\t\t\t\tif (operation === 'delete') {\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tawait hubspotApiRequest.call(this, 'DELETE', endpoint);\n\t\t\t\t\t\t\tresponseData =\n\t\t\t\t\t\t\t\tresponseData === undefined ? { vid: ticketId, deleted: true } : responseData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//https://developers.hubspot.com/docs/methods/tickets/update-ticket\n\t\t\t\t\t\tif (operation === 'update') {\n\t\t\t\t\t\t\tconst updateFields = this.getNodeParameter('updateFields', i);\n\t\t\t\t\t\t\tconst ticketId = this.getNodeParameter('ticketId', i, undefined, {\n\t\t\t\t\t\t\t\textractValue: true,\n\t\t\t\t\t\t\t}) as string;\n\t\t\t\t\t\t\tconst body: IDataObject[] = [];\n\t\t\t\t\t\t\tif (updateFields.pipelineId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.pipelineId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.stageId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_pipeline_stage',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.stageId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.ticketName) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'subject',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.ticketName as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.category) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_category',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.category as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.closeDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'closed_date',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.createDate) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'createdate',\n\t\t\t\t\t\t\t\t\tvalue: new Date(updateFields.createDate as string).getTime(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.description) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'content',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.description as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.priority) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_ticket_priority',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.priority as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.resolution) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hs_resolution',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.resolution as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.source) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'source_type',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.source as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (updateFields.ticketOwnerId) {\n\t\t\t\t\t\t\t\tbody.push({\n\t\t\t\t\t\t\t\t\tname: 'hubspot_owner_id',\n\t\t\t\t\t\t\t\t\tvalue: updateFields.ticketOwnerId as string,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst endpoint = `/crm-objects/v1/objects/tickets/${ticketId}`;\n\t\t\t\t\t\t\tresponseData = await hubspotApiRequest.call(this, 'PUT', endpoint, body);\n\n\t\t\t\t\t\t\tif (updateFields.associatedCompanyIds) {\n\t\t\t\t\t\t\t\tconst companyAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const companyId of updateFields.associatedCompanyIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcompanyAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: companyId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 26,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcompanyAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (updateFields.associatedContactIds) {\n\t\t\t\t\t\t\t\tconst contactAssociations: IDataObject[] = [];\n\t\t\t\t\t\t\t\tfor (const contactId of updateFields.associatedContactIds as IDataObject[]) {\n\t\t\t\t\t\t\t\t\tcontactAssociations.push({\n\t\t\t\t\t\t\t\t\t\tfromObjectId: responseData.objectId,\n\t\t\t\t\t\t\t\t\t\ttoObjectId: contactId,\n\t\t\t\t\t\t\t\t\t\tcategory: 'HUBSPOT_DEFINED',\n\t\t\t\t\t\t\t\t\t\tdefinitionId: 16,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tawait hubspotApiRequest.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t'PUT',\n\t\t\t\t\t\t\t\t\t'/crm-associations/v1/associations/create-batch',\n\t\t\t\t\t\t\t\t\tcontactAssociations,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t\t);\n\t\t\t\t\treturnData.push(...executionData);\n\t\t\t\t} catch (errorObject) {\n\t\t\t\t\tconst error = errorObject.cause.cause ? errorObject.cause : errorObject;\n\t\t\t\t\tif (\n\t\t\t\t\t\terror.cause.error?.validationResults &&\n\t\t\t\t\t\terror.cause.error.validationResults[0].error === 'INVALID_EMAIL'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst message = error.cause.error.validationResults[0].message as string;\n\t\t\t\t\t\tset(error, 'message', message);\n\t\t\t\t\t}\n\t\t\t\t\tif (error.cause.error?.message !== 'The resource you are requesting could not be found') {\n\t\t\t\t\t\tif (error.httpCode === '404' && error.description === 'resource not found') {\n\t\t\t\t\t\t\tconst message = `${error.node.parameters.resource} #${\n\t\t\t\t\t\t\t\terror.node.parameters[`${error.node.parameters.resource}Id`].value\n\t\t\t\t\t\t\t} could not be found. Check your ${error.node.parameters.resource} ID is correct`;\n\n\t\t\t\t\t\t\tset(error, 'message', message);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tjson: { error: (error as JsonObject).message },\n\t\t\t\t\t\t\tpairedItem: { item: i },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tset(error, 'context.itemIndex', i);\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":["set"]}