n8n-nodes-innotes 1.0.9 → 1.0.10

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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * @author Marco
4
- * @date 2025-06-27
4
+ * @date 2025-06-28
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.jobFields = exports.jobOperations = void 0;
@@ -53,6 +53,12 @@ exports.jobOperations = [
53
53
  description: 'Delete a job',
54
54
  action: 'Delete a job',
55
55
  },
56
+ {
57
+ name: 'Exists',
58
+ value: 'exists',
59
+ description: 'Check if a job exists by ID or External ID',
60
+ action: 'Check if job exists',
61
+ },
56
62
  ],
57
63
  default: 'getAll',
58
64
  },
@@ -209,6 +215,21 @@ exports.jobFields = [
209
215
  default: '',
210
216
  description: 'The ID of the job',
211
217
  },
218
+ // Exists operation
219
+ {
220
+ displayName: 'ID',
221
+ name: 'id',
222
+ type: 'string',
223
+ required: true,
224
+ displayOptions: {
225
+ show: {
226
+ resource: ['job'],
227
+ operation: ['exists'],
228
+ },
229
+ },
230
+ default: '',
231
+ description: 'The ID to search for (will check both Job ID and External ID)',
232
+ },
212
233
  // Get All fields
213
234
  {
214
235
  displayName: 'Search Term',
@@ -1 +1 @@
1
- {"version":3,"sources":["../descriptions/JobDescription.ts"],"names":[],"mappings":"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","file":"JobDescription.js","sourcesContent":["/**\n * @author Marco\n * @date 2025-06-27\n */\n\nimport {INodeProperties} from 'n8n-workflow';\n\nexport const jobOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\tdescription: 'Create a new job',\n\t\t\t\taction: 'Create a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\tdescription: 'Get a job by ID',\n\t\t\t\taction: 'Get a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get All',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\tdescription: 'Get all jobs',\n\t\t\t\taction: 'Get all jobs',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Search',\n\t\t\t\tvalue: 'search',\n\t\t\t\tdescription: 'Search for jobs',\n\t\t\t\taction: 'Search for jobs',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\tdescription: 'Update a job',\n\t\t\t\taction: 'Update a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\tdescription: 'Delete a job',\n\t\t\t\taction: 'Delete a job',\n\t\t\t},\n\t\t],\n\t\tdefault: 'getAll',\n\t},\n];\n\nexport const jobFields: INodeProperties[] = [\n\t// Create fields\n\t{\n\t\tdisplayName: 'Job Name',\n\t\tname: 'name',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The name of the job position',\n\t},\n\t{\n\t\tdisplayName: 'Company Name',\n\t\tname: 'company_name',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The name of the company',\n\t},\n\t{\n\t\tdisplayName: 'Location',\n\t\tname: 'location',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job location',\n\t},\n\t{\n\t\tdisplayName: 'Description',\n\t\tname: 'description',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job description',\n\t},\n\t{\n\t\tdisplayName: 'Remote Setting',\n\t\tname: 'remote_setting',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Remote work setting (e.g., \"Remote\", \"Hybrid\", \"On-site\")',\n\t},\n\t{\n\t\tdisplayName: 'Company URL',\n\t\tname: 'company_url',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The company website URL',\n\t},\n\t{\n\t\tdisplayName: 'Status',\n\t\tname: 'status',\n\t\ttype: 'options',\n\t\ttypeOptions: {\n\t\t\tloadOptionsMethod: 'jobStatuses',\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job status to assign',\n\t},\n\t{\n\t\tdisplayName: 'External ID',\n\t\tname: 'ext_id',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'External identifier for the job',\n\t},\n\t{\n\t\tdisplayName: 'Picture URL',\n\t\tname: 'picture_url',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'URL to the job or company logo image',\n\t},\n\t{\n\t\tdisplayName: 'Tags',\n\t\tname: 'tags',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Tags to associate with this job (comma-separated)',\n\t},\n\n\t// Get operations\n\t{\n\t\tdisplayName: 'Job ID',\n\t\tname: 'jobId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['get', 'update', 'delete'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The ID of the job',\n\t},\n\n\t// Get All fields\n\t{\n\t\tdisplayName: 'Search Term',\n\t\tname: 'search',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Search term to filter jobs',\n\t},\n\t{\n\t\tdisplayName: 'External ID',\n\t\tname: 'ext_id',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'External ID to filter jobs',\n\t},\n\n\t// Search fields\n\t{\n\t\tdisplayName: 'Search Method',\n\t\tname: 'searchMethod',\n\t\ttype: 'options',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'General Search',\n\t\t\t\tvalue: 'general',\n\t\t\t\tdescription: 'Search across job title and company name (default behavior)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'External ID',\n\t\t\t\tvalue: 'ext_id',\n\t\t\t\tdescription: 'Search by specific external ID (exact match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Job Title',\n\t\t\t\tvalue: 'title',\n\t\t\t\tdescription: 'Search specifically in job titles (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Company Name',\n\t\t\t\tvalue: 'company',\n\t\t\t\tdescription: 'Search specifically in company names (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Location',\n\t\t\t\tvalue: 'location',\n\t\t\t\tdescription: 'Search specifically in job locations (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Description',\n\t\t\t\tvalue: 'description',\n\t\t\t\tdescription: 'Search in job descriptions (partial match, may be slower)',\n\t\t\t},\n\t\t],\n\t\tdefault: 'general',\n\t\tdescription: 'Choose which field to search in',\n\t},\n\t{\n\t\tdisplayName: 'Search Query',\n\t\tname: 'searchQuery',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Enter your search term. The search will be performed in the field specified by the Search Method above. Use partial matches for most fields, exact match for External ID.',\n\t},\n\t{\n\t\tdisplayName: 'Additional Filters',\n\t\tname: 'searchOptions',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Filter',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Remote Setting',\n\t\t\t\tname: 'remote_setting',\n\t\t\t\ttype: 'options',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'On-site',\n\t\t\t\t\t\tvalue: 'on-site',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Remote',\n\t\t\t\t\t\tvalue: 'remote',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Hybrid',\n\t\t\t\t\t\tvalue: 'hybrid',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by remote work setting',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status',\n\t\t\t\tname: 'status',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by job status',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by tags (comma-separated)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Limit',\n\t\t\t\tname: 'limit',\n\t\t\t\ttype: 'number',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tminValue: 1,\n\t\t\t\t\tmaxValue: 100,\n\t\t\t\t},\n\t\t\t\tdefault: 24,\n\t\t\t\tdescription: 'Maximum number of results to return',\n\t\t\t},\n\t\t],\n\t},\n\n\t// Update fields\n\t{\n\t\tdisplayName: 'Update Fields',\n\t\tname: 'updateFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Name',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Company Name',\n\t\t\t\tname: 'company_name',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Location',\n\t\t\t\tname: 'location',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Remote Setting',\n\t\t\t\tname: 'remote_setting',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Company URL',\n\t\t\t\tname: 'company_url',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status ID',\n\t\t\t\tname: 'status_id',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status',\n\t\t\t\tname: 'status',\n\t\t\t\ttype: 'options',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'jobStatuses',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Status name (takes precedence over Status ID)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Picture URL',\n\t\t\t\tname: 'picture_url',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'URL to the job or company logo image',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Tags to associate with this job (comma-separated)',\n\t\t\t},\n\t\t],\n\t},\n];\n\n"]}
1
+ {"version":3,"sources":["../descriptions/JobDescription.ts"],"names":[],"mappings":"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","file":"JobDescription.js","sourcesContent":["/**\n * @author Marco\n * @date 2025-06-28\n */\n\nimport {INodeProperties} from 'n8n-workflow';\n\nexport const jobOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\tdescription: 'Create a new job',\n\t\t\t\taction: 'Create a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\tdescription: 'Get a job by ID',\n\t\t\t\taction: 'Get a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get All',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\tdescription: 'Get all jobs',\n\t\t\t\taction: 'Get all jobs',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Search',\n\t\t\t\tvalue: 'search',\n\t\t\t\tdescription: 'Search for jobs',\n\t\t\t\taction: 'Search for jobs',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\tdescription: 'Update a job',\n\t\t\t\taction: 'Update a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\tdescription: 'Delete a job',\n\t\t\t\taction: 'Delete a job',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Exists',\n\t\t\t\tvalue: 'exists',\n\t\t\t\tdescription: 'Check if a job exists by ID or External ID',\n\t\t\t\taction: 'Check if job exists',\n\t\t\t},\n\t\t],\n\t\tdefault: 'getAll',\n\t},\n];\n\nexport const jobFields: INodeProperties[] = [\n\t// Create fields\n\t{\n\t\tdisplayName: 'Job Name',\n\t\tname: 'name',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The name of the job position',\n\t},\n\t{\n\t\tdisplayName: 'Company Name',\n\t\tname: 'company_name',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The name of the company',\n\t},\n\t{\n\t\tdisplayName: 'Location',\n\t\tname: 'location',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job location',\n\t},\n\t{\n\t\tdisplayName: 'Description',\n\t\tname: 'description',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job description',\n\t},\n\t{\n\t\tdisplayName: 'Remote Setting',\n\t\tname: 'remote_setting',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Remote work setting (e.g., \"Remote\", \"Hybrid\", \"On-site\")',\n\t},\n\t{\n\t\tdisplayName: 'Company URL',\n\t\tname: 'company_url',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The company website URL',\n\t},\n\t{\n\t\tdisplayName: 'Status',\n\t\tname: 'status',\n\t\ttype: 'options',\n\t\ttypeOptions: {\n\t\t\tloadOptionsMethod: 'jobStatuses',\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The job status to assign',\n\t},\n\t{\n\t\tdisplayName: 'External ID',\n\t\tname: 'ext_id',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'External identifier for the job',\n\t},\n\t{\n\t\tdisplayName: 'Picture URL',\n\t\tname: 'picture_url',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'URL to the job or company logo image',\n\t},\n\t{\n\t\tdisplayName: 'Tags',\n\t\tname: 'tags',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Tags to associate with this job (comma-separated)',\n\t},\n\n\t// Get operations\n\t{\n\t\tdisplayName: 'Job ID',\n\t\tname: 'jobId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['get', 'update', 'delete'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The ID of the job',\n\t},\n\n\t// Exists operation\n\t{\n\t\tdisplayName: 'ID',\n\t\tname: 'id',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['exists'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'The ID to search for (will check both Job ID and External ID)',\n\t},\n\n\t// Get All fields\n\t{\n\t\tdisplayName: 'Search Term',\n\t\tname: 'search',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Search term to filter jobs',\n\t},\n\t{\n\t\tdisplayName: 'External ID',\n\t\tname: 'ext_id',\n\t\ttype: 'string',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'External ID to filter jobs',\n\t},\n\n\t// Search fields\n\t{\n\t\tdisplayName: 'Search Method',\n\t\tname: 'searchMethod',\n\t\ttype: 'options',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'General Search',\n\t\t\t\tvalue: 'general',\n\t\t\t\tdescription: 'Search across job title and company name (default behavior)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'External ID',\n\t\t\t\tvalue: 'ext_id',\n\t\t\t\tdescription: 'Search by specific external ID (exact match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Job Title',\n\t\t\t\tvalue: 'title',\n\t\t\t\tdescription: 'Search specifically in job titles (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Company Name',\n\t\t\t\tvalue: 'company',\n\t\t\t\tdescription: 'Search specifically in company names (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Location',\n\t\t\t\tvalue: 'location',\n\t\t\t\tdescription: 'Search specifically in job locations (partial match)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Description',\n\t\t\t\tvalue: 'description',\n\t\t\t\tdescription: 'Search in job descriptions (partial match, may be slower)',\n\t\t\t},\n\t\t],\n\t\tdefault: 'general',\n\t\tdescription: 'Choose which field to search in',\n\t},\n\t{\n\t\tdisplayName: 'Search Query',\n\t\tname: 'searchQuery',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t\tdescription: 'Enter your search term. The search will be performed in the field specified by the Search Method above. Use partial matches for most fields, exact match for External ID.',\n\t},\n\t{\n\t\tdisplayName: 'Additional Filters',\n\t\tname: 'searchOptions',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Filter',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['search'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Remote Setting',\n\t\t\t\tname: 'remote_setting',\n\t\t\t\ttype: 'options',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'On-site',\n\t\t\t\t\t\tvalue: 'on-site',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Remote',\n\t\t\t\t\t\tvalue: 'remote',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Hybrid',\n\t\t\t\t\t\tvalue: 'hybrid',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by remote work setting',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status',\n\t\t\t\tname: 'status',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by job status',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Filter by tags (comma-separated)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Limit',\n\t\t\t\tname: 'limit',\n\t\t\t\ttype: 'number',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tminValue: 1,\n\t\t\t\t\tmaxValue: 100,\n\t\t\t\t},\n\t\t\t\tdefault: 24,\n\t\t\t\tdescription: 'Maximum number of results to return',\n\t\t\t},\n\t\t],\n\t},\n\n\t// Update fields\n\t{\n\t\tdisplayName: 'Update Fields',\n\t\tname: 'updateFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['job'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Name',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Company Name',\n\t\t\t\tname: 'company_name',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Location',\n\t\t\t\tname: 'location',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Remote Setting',\n\t\t\t\tname: 'remote_setting',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Company URL',\n\t\t\t\tname: 'company_url',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status ID',\n\t\t\t\tname: 'status_id',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Status',\n\t\t\t\tname: 'status',\n\t\t\t\ttype: 'options',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'jobStatuses',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Status name (takes precedence over Status ID)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Picture URL',\n\t\t\t\tname: 'picture_url',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'URL to the job or company logo image',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tdescription: 'Tags to associate with this job (comma-separated)',\n\t\t\t},\n\t\t],\n\t},\n];\n\n"]}
@@ -610,6 +610,45 @@ class InNotes {
610
610
  });
611
611
  return Array.isArray(response) ? response : [response];
612
612
  }
613
+ if (operation === 'exists') {
614
+ const id = executeFunctions.getNodeParameter('id', itemIndex);
615
+ try {
616
+ // First try to get by job ID
617
+ try {
618
+ await executeFunctions.helpers.httpRequestWithAuthentication.call(executeFunctions, 'inNotesApi', {
619
+ method: 'GET',
620
+ url: `${baseUrl}/api/job/${id}`,
621
+ headers: {
622
+ Accept: 'application/json',
623
+ },
624
+ });
625
+ // If we get here, the job exists by ID
626
+ return { exists: true, found_by: 'job_id', id };
627
+ }
628
+ catch (error) {
629
+ // Job not found by ID, try searching by ext_id
630
+ const searchResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(executeFunctions, 'inNotesApi', {
631
+ method: 'GET',
632
+ url: `${baseUrl}/api/job`,
633
+ qs: { ext_id: id },
634
+ headers: {
635
+ Accept: 'application/json',
636
+ },
637
+ });
638
+ // Check if any results were returned
639
+ const results = Array.isArray(searchResponse) ? searchResponse : [searchResponse];
640
+ if (results.length > 0 && results[0]) {
641
+ return { exists: true, found_by: 'ext_id', id };
642
+ }
643
+ // Not found by either ID or ext_id
644
+ return { exists: false, id };
645
+ }
646
+ }
647
+ catch (error) {
648
+ // If there's an error during the search, return false
649
+ return { exists: false, id, error: error.message };
650
+ }
651
+ }
613
652
  throw new n8n_workflow_1.NodeApiError(executeFunctions.getNode(), {
614
653
  message: `The operation "${operation}" is not supported for resource "job"!`,
615
654
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../nodes/InNotes/InNotes.node.ts"],"names":[],"mappings":"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","file":"InNotes.node.js","sourcesContent":["/**\n * @author Marco\n * @date 2025-06-28\n */\n\nimport {\n\tIDataObject,\n\tIExecuteFunctions,\n\tIHttpRequestMethods,\n\tILoadOptionsFunctions,\n\tINodeExecutionData,\n\tINodePropertyOptions,\n\tINodeType,\n\tINodeTypeDescription,\n\tNodeApiError,\n\tNodeConnectionType,\n} from 'n8n-workflow';\n\nimport {contactFields, contactOperations} from '../../descriptions/ContactDescription';\nimport {noteFields, noteOperations} from '../../descriptions/NoteDescription';\nimport {jobFields, jobOperations} from '../../descriptions/JobDescription';\nimport {statusFields, statusOperations} from '../../descriptions/StatusDescription';\nimport {tagFields, tagOperations} from '../../descriptions/TagDescription';\nimport {userFields, userOperations} from '../../descriptions/UserDescription';\n\nexport class InNotes implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'InNotes',\n\t\tname: 'inNotes',\n\t\ticon: 'file:Logo_128.png',\n\t\tgroup: ['output'],\n\t\tversion: 1,\n\t\tsubtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n\t\tdescription: 'Consume InNotes CRM API',\n\t\tdefaults: {\n\t\t\tname: 'InNotes',\n\t\t},\n\t\tinputs: [NodeConnectionType.Main],\n\t\toutputs: [NodeConnectionType.Main],\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'inNotesApi',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Resource',\n\t\t\t\tname: 'resource',\n\t\t\t\ttype: 'options',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Contact',\n\t\t\t\t\t\tvalue: 'contact',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Note',\n\t\t\t\t\t\tvalue: 'note',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Job',\n\t\t\t\t\t\tvalue: 'job',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Status',\n\t\t\t\t\t\tvalue: 'status',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Tag',\n\t\t\t\t\t\tvalue: 'tag',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'User',\n\t\t\t\t\t\tvalue: 'user',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'contact',\n\t\t\t},\n\t\t\t...contactOperations,\n\t\t\t...noteOperations,\n\t\t\t...jobOperations,\n\t\t\t...statusOperations,\n\t\t\t...tagOperations,\n\t\t\t...userOperations,\n\t\t\t...contactFields,\n\t\t\t...noteFields,\n\t\t\t...jobFields,\n\t\t\t...statusFields,\n\t\t\t...tagFields,\n\t\t\t...userFields,\n\t\t\t{\n\t\t\t\tdisplayName: 'Options',\n\t\t\t\tname: 'options',\n\t\t\t\ttype: 'collection',\n\t\t\t\tplaceholder: 'Add Option',\n\t\t\t\tdefault: {},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Batch Size',\n\t\t\t\t\t\tname: 'batchSize',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tdefault: 10,\n\t\t\t\t\t\tdescription: 'Number of items to process in each batch (to avoid rate limiting)',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\tmaxValue: 100,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Timeout Between Batches (ms)',\n\t\t\t\t\t\tname: 'timeoutBetweenBatches',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tdefault: 1000,\n\t\t\t\t\t\tdescription: 'Delay in milliseconds between processing batches (to avoid rate limiting)',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tminValue: 0,\n\t\t\t\t\t\t\tmaxValue: 30000,\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],\n\t};\n\n\tmethods = {\n\t\tloadOptions: {\n\t\t\tasync jobStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\ttry {\n\t\t\t\t\tconst credentials = await this.getCredentials('inNotesApi');\n\t\t\t\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\t\t\t\tconst response = await this.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\tconst statuses = Array.isArray(response) ? response : [response];\n\t\t\t\t\treturn statuses.map((status: any) => ({\n\t\t\t\t\t\tname: status.name,\n\t\t\t\t\t\tvalue: status.name,\n\t\t\t\t\t}));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new NodeApiError(this.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to load job statuses: ${(error as Error).message}`,\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: IDataObject[] = [];\n\t\tconst resource = this.getNodeParameter('resource', 0);\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\t// Get batch options\n\t\tconst options = this.getNodeParameter('options', 0, {}) as IDataObject;\n\t\tconst batchSize = options.batchSize as number || 10;\n\t\tconst timeoutBetweenBatches = options.timeoutBetweenBatches as number || 1000;\n\n\t\t// Create a node instance to access the methods\n\t\tconst nodeInstance = new InNotes();\n\n\t\t// Helper function to add delay between batches\n\t\tconst delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\n\t\t// Process items in batches\n\t\tfor (let batchStart = 0; batchStart < items.length; batchStart += batchSize) {\n\t\t\tconst batchEnd = Math.min(batchStart + batchSize, items.length);\n\t\t\tconst currentBatch = items.slice(batchStart, batchEnd);\n\n\t\t\t// Process current batch\n\t\t\tfor (let i = 0; i < currentBatch.length; i++) {\n\t\t\t\tconst actualIndex = batchStart + i;\n\t\t\t\ttry {\n\t\t\t\t\tlet responseData: IDataObject | IDataObject[] = {};\n\n\t\t\t\t\tif (resource === 'contact') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeContactOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'note') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeNoteOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'job') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeJobOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'status') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeStatusOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'tag') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeTagOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'user') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeUserOperation(this, actualIndex, operation);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(responseData)) {\n\t\t\t\t\t\treturnData.push(...responseData);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnData.push(responseData);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({ error: (error as Error).message });\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add delay between batches (except after the last batch)\n\t\t\tif (batchEnd < items.length && timeoutBetweenBatches > 0) {\n\t\t\t\tawait delay(timeoutBetweenBatches);\n\t\t\t}\n\t\t}\n\n\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t}\n\n\tprivate async executeContactOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst linkedin_key = executeFunctions.getNodeParameter('linkedin_key', itemIndex) as string;\n\t\t\tconst linkedin_user = executeFunctions.getNodeParameter('linkedin_user', itemIndex, '') as string;\n\t\t\tconst location = executeFunctions.getNodeParameter('location', itemIndex, '') as string;\n\t\t\tconst current_company = executeFunctions.getNodeParameter('current_company', itemIndex, '') as string;\n\t\t\tconst picture_url = executeFunctions.getNodeParameter('picture_url', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\t\t\tconst status_id = executeFunctions.getNodeParameter('status_id', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\tlinkedin_key,\n\t\t\t\t...(linkedin_user && { linkedin_user }),\n\t\t\t\t...(location && { location }),\n\t\t\t\t...(current_company && { current_company }),\n\t\t\t\t...(picture_url && { picture_url }),\n\t\t\t\t...(tags && { tags: tags.split(',').map((tag: string) => tag.trim()) }),\n\t\t\t\t...(status_id && { status_id }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\t\t\tconst search = executeFunctions.getNodeParameter('search', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tconst qs: IDataObject = {};\n\t\t\tif (search) qs.search = search;\n\t\t\tif (tags) qs.tags = tags;\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"contact\"!`,\n\t\t});\n\t}\n\n\tprivate async executeNoteOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst content = executeFunctions.getNodeParameter('content', itemIndex) as string;\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string | number;\n\t\t\tconst visibility = executeFunctions.getNodeParameter('visibility', itemIndex, '') as string;\n\t\t\tconst ext_table_name = executeFunctions.getNodeParameter('ext_table_name', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tcontent,\n\t\t\t\tcontact_id: contactId,\n\t\t\t\t...(visibility && { visibility }),\n\t\t\t\t...(ext_table_name && { ext_table_name }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string | number;\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\n\t\t\tconst qs: IDataObject = {\n\t\t\t\tcontact_id: contactId,\n\t\t\t};\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"note\"!`,\n\t\t});\n\t}\n\n\tprivate async executeJobOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst company_name = executeFunctions.getNodeParameter('company_name', itemIndex) as string;\n\t\t\tconst status = executeFunctions.getNodeParameter('status', itemIndex, '') as string;\n\t\t\tconst description = executeFunctions.getNodeParameter('description', itemIndex, '') as string;\n\t\t\tconst location = executeFunctions.getNodeParameter('location', itemIndex, '') as string;\n\t\t\tconst remote_setting = executeFunctions.getNodeParameter('remote_setting', itemIndex, '') as string;\n\t\t\tconst company_url = executeFunctions.getNodeParameter('company_url', itemIndex, '') as string;\n\t\t\tconst ext_id = executeFunctions.getNodeParameter('ext_id', itemIndex, '') as string;\n\t\t\tconst picture_url = executeFunctions.getNodeParameter('picture_url', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tlet status_id: string | undefined;\n\n\t\t\t// If status is provided, lookup the status ID\n\t\t\tif (status) {\n\t\t\t\ttry {\n\t\t\t\t\t// Get all job statuses\n\t\t\t\t\tconst statusResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// Find matching status by name (case-insensitive)\n\t\t\t\t\tconst statuses = Array.isArray(statusResponse) ? statusResponse : [statusResponse];\n\t\t\t\t\tconst matchingStatus = statuses.find((s: any) =>\n\t\t\t\t\t\ts.name && s.name.toLowerCase() === status.toLowerCase(),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (matchingStatus) {\n\t\t\t\t\t\tstatus_id = matchingStatus.id.toString();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\t\tmessage: `Status \"${status}\" not found. Available statuses: ${statuses.map((s: any) => s.name).join(', ')}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to lookup status \"${status}\": ${(error as Error).message}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\tcompany_name,\n\t\t\t\tstatus,\n\t\t\t\t...(description && { description }),\n\t\t\t\t...(location && { location }),\n\t\t\t\t...(remote_setting && { remote_setting }),\n\t\t\t\t...(company_url && { company_url }),\n\t\t\t\t...(status_id && { status_id }),\n\t\t\t\t...(ext_id && { ext_id }),\n\t\t\t\t...(picture_url && { picture_url }),\n\t\t\t\t...(tags && { tags: tags.split(',').map((tag: string) => tag.trim()) }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\t\t\tconst search = executeFunctions.getNodeParameter('search', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tconst qs: IDataObject = {};\n\t\t\tif (search) qs.search = search;\n\t\t\tif (tags) qs.tags = tags;\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\t// Handle status string lookup if provided\n\t\t\tif (updateFields.status && typeof updateFields.status === 'string') {\n\t\t\t\ttry {\n\t\t\t\t\t// Get all job statuses\n\t\t\t\t\tconst statusResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// Find matching status by name (case-insensitive)\n\t\t\t\t\tconst statuses = Array.isArray(statusResponse) ? statusResponse : [statusResponse];\n\t\t\t\t\tconst matchingStatus = statuses.find((s: any) =>\n\t\t\t\t\t\ts.name && s.name.toLowerCase() === (updateFields.status as string).toLowerCase(),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (matchingStatus) {\n\t\t\t\t\t\t// Replace status with status_id and remove status field\n\t\t\t\t\t\tupdateFields.status_id = matchingStatus.id.toString();\n\t\t\t\t\t\tdelete updateFields.status;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\t\tmessage: `Status \"${updateFields.status}\" not found. Available statuses: ${statuses.map((s: any) => s.name).join(', ')}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to lookup status \"${updateFields.status}\": ${(error as Error).message}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Process tags if provided as comma-separated string\n\t\t\tif (updateFields.tags && typeof updateFields.tags === 'string') {\n\t\t\t\tupdateFields.tags = (updateFields.tags).split(',').map((tag: string) => tag.trim());\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tif (operation === 'search') {\n\t\t\tconst searchMethod = executeFunctions.getNodeParameter('searchMethod', itemIndex) as string;\n\t\t\tconst searchQuery = executeFunctions.getNodeParameter('searchQuery', itemIndex) as string;\n\t\t\tconst searchOptions = executeFunctions.getNodeParameter('searchOptions', itemIndex, {}) as IDataObject;\n\n\t\t\tconst qs: IDataObject = {};\n\n\t\t\t// Handle different search methods\n\t\t\tswitch (searchMethod) {\n\t\t\tcase 'general':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tbreak;\n\t\t\tcase 'ext_id':\n\t\t\t\tqs.ext_id = searchQuery;\n\t\t\t\tbreak;\n\t\t\tcase 'title':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'title';\n\t\t\t\tbreak;\n\t\t\tcase 'company':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'company';\n\t\t\t\tbreak;\n\t\t\tcase 'location':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'location';\n\t\t\t\tbreak;\n\t\t\tcase 'description':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'description';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t}\n\n\t\t\t// Add additional filter parameters\n\t\t\tif (searchOptions.remote_setting) qs.remote_setting = searchOptions.remote_setting;\n\t\t\tif (searchOptions.status) qs.status = searchOptions.status;\n\t\t\tif (searchOptions.tags) qs.tags = searchOptions.tags;\n\n\t\t\t// Set limit with default value\n\t\t\tconst limit = (searchOptions.limit as number) || 24;\n\t\t\tqs.pageSize = limit;\n\t\t\tqs.page = 1;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"job\"!`,\n\t\t});\n\t}\n\n\tprivate async executeStatusOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst type = executeFunctions.getNodeParameter('type', itemIndex) as string;\n\t\t\tconst color = executeFunctions.getNodeParameter('color', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\ttype,\n\t\t\t\t...(color && { color }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst type = executeFunctions.getNodeParameter('type', itemIndex, 'contact') as string;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\tqs: { type },\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst statusId = executeFunctions.getNodeParameter('statusId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses/${statusId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst statusId = executeFunctions.getNodeParameter('statusId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses/${statusId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"status\"!`,\n\t\t});\n\t}\n\n\tprivate async executeTagOperation(executeFunctions: IExecuteFunctions, _itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/tags`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"tag\"! Supported operations: getAll`,\n\t\t});\n\t}\n\n\tprivate async executeUserOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'get') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getCv') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\t// Return only CV-related fields\n\t\t\tconst { cv, job_preferences, cv_updated_at } = response;\n\n\t\t\t// Parse job_preferences if it's a JSON string\n\t\t\tlet parsedPreferences = null;\n\t\t\tlet searchJobTitles = [];\n\t\t\tlet locations = [];\n\n\t\t\tif (job_preferences) {\n\t\t\t\ttry {\n\t\t\t\t\tparsedPreferences = typeof job_preferences === 'string'\n\t\t\t\t\t\t? JSON.parse(job_preferences)\n\t\t\t\t\t\t: job_preferences;\n\n\t\t\t\t\tsearchJobTitles = parsedPreferences.searchJobTitles || [];\n\t\t\t\t\tlocations = parsedPreferences.locations || [];\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// If parsing fails, keep empty arrays\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcv,\n\t\t\t\tjob_preferences: parsedPreferences,\n\t\t\t\tcv_updated_at,\n\t\t\t\tsearchJobTitles: searchJobTitles.join(', '),\n\t\t\t\tlocations: locations.join(', '),\n\t\t\t};\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"user\"! Supported operations: get, getCv, update`,\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../nodes/InNotes/InNotes.node.ts"],"names":[],"mappings":"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","file":"InNotes.node.js","sourcesContent":["/**\n * @author Marco\n * @date 2025-06-28\n */\n\nimport {\n\tIDataObject,\n\tIExecuteFunctions,\n\tIHttpRequestMethods,\n\tILoadOptionsFunctions,\n\tINodeExecutionData,\n\tINodePropertyOptions,\n\tINodeType,\n\tINodeTypeDescription,\n\tNodeApiError,\n\tNodeConnectionType,\n} from 'n8n-workflow';\n\nimport {contactFields, contactOperations} from '../../descriptions/ContactDescription';\nimport {noteFields, noteOperations} from '../../descriptions/NoteDescription';\nimport {jobFields, jobOperations} from '../../descriptions/JobDescription';\nimport {statusFields, statusOperations} from '../../descriptions/StatusDescription';\nimport {tagFields, tagOperations} from '../../descriptions/TagDescription';\nimport {userFields, userOperations} from '../../descriptions/UserDescription';\n\nexport class InNotes implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'InNotes',\n\t\tname: 'inNotes',\n\t\ticon: 'file:Logo_128.png',\n\t\tgroup: ['output'],\n\t\tversion: 1,\n\t\tsubtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n\t\tdescription: 'Consume InNotes CRM API',\n\t\tdefaults: {\n\t\t\tname: 'InNotes',\n\t\t},\n\t\tinputs: [NodeConnectionType.Main],\n\t\toutputs: [NodeConnectionType.Main],\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'inNotesApi',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Resource',\n\t\t\t\tname: 'resource',\n\t\t\t\ttype: 'options',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Contact',\n\t\t\t\t\t\tvalue: 'contact',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Note',\n\t\t\t\t\t\tvalue: 'note',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Job',\n\t\t\t\t\t\tvalue: 'job',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Status',\n\t\t\t\t\t\tvalue: 'status',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Tag',\n\t\t\t\t\t\tvalue: 'tag',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'User',\n\t\t\t\t\t\tvalue: 'user',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'contact',\n\t\t\t},\n\t\t\t...contactOperations,\n\t\t\t...noteOperations,\n\t\t\t...jobOperations,\n\t\t\t...statusOperations,\n\t\t\t...tagOperations,\n\t\t\t...userOperations,\n\t\t\t...contactFields,\n\t\t\t...noteFields,\n\t\t\t...jobFields,\n\t\t\t...statusFields,\n\t\t\t...tagFields,\n\t\t\t...userFields,\n\t\t\t{\n\t\t\t\tdisplayName: 'Options',\n\t\t\t\tname: 'options',\n\t\t\t\ttype: 'collection',\n\t\t\t\tplaceholder: 'Add Option',\n\t\t\t\tdefault: {},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Batch Size',\n\t\t\t\t\t\tname: 'batchSize',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tdefault: 10,\n\t\t\t\t\t\tdescription: 'Number of items to process in each batch (to avoid rate limiting)',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\tmaxValue: 100,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Timeout Between Batches (ms)',\n\t\t\t\t\t\tname: 'timeoutBetweenBatches',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tdefault: 1000,\n\t\t\t\t\t\tdescription: 'Delay in milliseconds between processing batches (to avoid rate limiting)',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tminValue: 0,\n\t\t\t\t\t\t\tmaxValue: 30000,\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],\n\t};\n\n\tmethods = {\n\t\tloadOptions: {\n\t\t\tasync jobStatuses(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {\n\t\t\t\ttry {\n\t\t\t\t\tconst credentials = await this.getCredentials('inNotesApi');\n\t\t\t\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\t\t\t\tconst response = await this.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\tconst statuses = Array.isArray(response) ? response : [response];\n\t\t\t\t\treturn statuses.map((status: any) => ({\n\t\t\t\t\t\tname: status.name,\n\t\t\t\t\t\tvalue: status.name,\n\t\t\t\t\t}));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new NodeApiError(this.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to load job statuses: ${(error as Error).message}`,\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: IDataObject[] = [];\n\t\tconst resource = this.getNodeParameter('resource', 0);\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\t// Get batch options\n\t\tconst options = this.getNodeParameter('options', 0, {}) as IDataObject;\n\t\tconst batchSize = options.batchSize as number || 10;\n\t\tconst timeoutBetweenBatches = options.timeoutBetweenBatches as number || 1000;\n\n\t\t// Create a node instance to access the methods\n\t\tconst nodeInstance = new InNotes();\n\n\t\t// Helper function to add delay between batches\n\t\tconst delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n\n\t\t// Process items in batches\n\t\tfor (let batchStart = 0; batchStart < items.length; batchStart += batchSize) {\n\t\t\tconst batchEnd = Math.min(batchStart + batchSize, items.length);\n\t\t\tconst currentBatch = items.slice(batchStart, batchEnd);\n\n\t\t\t// Process current batch\n\t\t\tfor (let i = 0; i < currentBatch.length; i++) {\n\t\t\t\tconst actualIndex = batchStart + i;\n\t\t\t\ttry {\n\t\t\t\t\tlet responseData: IDataObject | IDataObject[] = {};\n\n\t\t\t\t\tif (resource === 'contact') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeContactOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'note') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeNoteOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'job') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeJobOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'status') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeStatusOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'tag') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeTagOperation(this, actualIndex, operation);\n\t\t\t\t\t} else if (resource === 'user') {\n\t\t\t\t\t\tresponseData = await nodeInstance.executeUserOperation(this, actualIndex, operation);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(responseData)) {\n\t\t\t\t\t\treturnData.push(...responseData);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnData.push(responseData);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({ error: (error as Error).message });\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add delay between batches (except after the last batch)\n\t\t\tif (batchEnd < items.length && timeoutBetweenBatches > 0) {\n\t\t\t\tawait delay(timeoutBetweenBatches);\n\t\t\t}\n\t\t}\n\n\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t}\n\n\tprivate async executeContactOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst linkedin_key = executeFunctions.getNodeParameter('linkedin_key', itemIndex) as string;\n\t\t\tconst linkedin_user = executeFunctions.getNodeParameter('linkedin_user', itemIndex, '') as string;\n\t\t\tconst location = executeFunctions.getNodeParameter('location', itemIndex, '') as string;\n\t\t\tconst current_company = executeFunctions.getNodeParameter('current_company', itemIndex, '') as string;\n\t\t\tconst picture_url = executeFunctions.getNodeParameter('picture_url', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\t\t\tconst status_id = executeFunctions.getNodeParameter('status_id', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\tlinkedin_key,\n\t\t\t\t...(linkedin_user && { linkedin_user }),\n\t\t\t\t...(location && { location }),\n\t\t\t\t...(current_company && { current_company }),\n\t\t\t\t...(picture_url && { picture_url }),\n\t\t\t\t...(tags && { tags: tags.split(',').map((tag: string) => tag.trim()) }),\n\t\t\t\t...(status_id && { status_id }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\t\t\tconst search = executeFunctions.getNodeParameter('search', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tconst qs: IDataObject = {};\n\t\t\tif (search) qs.search = search;\n\t\t\tif (tags) qs.tags = tags;\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/contacts/${contactId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"contact\"!`,\n\t\t});\n\t}\n\n\tprivate async executeNoteOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst content = executeFunctions.getNodeParameter('content', itemIndex) as string;\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string | number;\n\t\t\tconst visibility = executeFunctions.getNodeParameter('visibility', itemIndex, '') as string;\n\t\t\tconst ext_table_name = executeFunctions.getNodeParameter('ext_table_name', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tcontent,\n\t\t\t\tcontact_id: contactId,\n\t\t\t\t...(visibility && { visibility }),\n\t\t\t\t...(ext_table_name && { ext_table_name }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst contactId = executeFunctions.getNodeParameter('contactId', itemIndex) as string | number;\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\n\t\t\tconst qs: IDataObject = {\n\t\t\t\tcontact_id: contactId,\n\t\t\t};\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst noteId = executeFunctions.getNodeParameter('noteId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/note/${noteId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"note\"!`,\n\t\t});\n\t}\n\n\tprivate async executeJobOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst company_name = executeFunctions.getNodeParameter('company_name', itemIndex) as string;\n\t\t\tconst status = executeFunctions.getNodeParameter('status', itemIndex, '') as string;\n\t\t\tconst description = executeFunctions.getNodeParameter('description', itemIndex, '') as string;\n\t\t\tconst location = executeFunctions.getNodeParameter('location', itemIndex, '') as string;\n\t\t\tconst remote_setting = executeFunctions.getNodeParameter('remote_setting', itemIndex, '') as string;\n\t\t\tconst company_url = executeFunctions.getNodeParameter('company_url', itemIndex, '') as string;\n\t\t\tconst ext_id = executeFunctions.getNodeParameter('ext_id', itemIndex, '') as string;\n\t\t\tconst picture_url = executeFunctions.getNodeParameter('picture_url', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tlet status_id: string | undefined;\n\n\t\t\t// If status is provided, lookup the status ID\n\t\t\tif (status) {\n\t\t\t\ttry {\n\t\t\t\t\t// Get all job statuses\n\t\t\t\t\tconst statusResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// Find matching status by name (case-insensitive)\n\t\t\t\t\tconst statuses = Array.isArray(statusResponse) ? statusResponse : [statusResponse];\n\t\t\t\t\tconst matchingStatus = statuses.find((s: any) =>\n\t\t\t\t\t\ts.name && s.name.toLowerCase() === status.toLowerCase(),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (matchingStatus) {\n\t\t\t\t\t\tstatus_id = matchingStatus.id.toString();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\t\tmessage: `Status \"${status}\" not found. Available statuses: ${statuses.map((s: any) => s.name).join(', ')}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to lookup status \"${status}\": ${(error as Error).message}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\tcompany_name,\n\t\t\t\tstatus,\n\t\t\t\t...(description && { description }),\n\t\t\t\t...(location && { location }),\n\t\t\t\t...(remote_setting && { remote_setting }),\n\t\t\t\t...(company_url && { company_url }),\n\t\t\t\t...(status_id && { status_id }),\n\t\t\t\t...(ext_id && { ext_id }),\n\t\t\t\t...(picture_url && { picture_url }),\n\t\t\t\t...(tags && { tags: tags.split(',').map((tag: string) => tag.trim()) }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'get') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex, false) as boolean;\n\t\t\tconst search = executeFunctions.getNodeParameter('search', itemIndex, '') as string;\n\t\t\tconst tags = executeFunctions.getNodeParameter('tags', itemIndex, '') as string;\n\n\t\t\tconst qs: IDataObject = {};\n\t\t\tif (search) qs.search = search;\n\t\t\tif (tags) qs.tags = tags;\n\n\t\t\tif (!returnAll) {\n\t\t\t\tconst limit = executeFunctions.getNodeParameter('limit', itemIndex, 24);\n\t\t\t\tqs.pageSize = limit;\n\t\t\t\tqs.page = 1;\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\t// Handle status string lookup if provided\n\t\t\tif (updateFields.status && typeof updateFields.status === 'string') {\n\t\t\t\ttry {\n\t\t\t\t\t// Get all job statuses\n\t\t\t\t\tconst statusResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\t\t\tqs: { type: 'job' },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// Find matching status by name (case-insensitive)\n\t\t\t\t\tconst statuses = Array.isArray(statusResponse) ? statusResponse : [statusResponse];\n\t\t\t\t\tconst matchingStatus = statuses.find((s: any) =>\n\t\t\t\t\t\ts.name && s.name.toLowerCase() === (updateFields.status as string).toLowerCase(),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (matchingStatus) {\n\t\t\t\t\t\t// Replace status with status_id and remove status field\n\t\t\t\t\t\tupdateFields.status_id = matchingStatus.id.toString();\n\t\t\t\t\t\tdelete updateFields.status;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\t\tmessage: `Status \"${updateFields.status}\" not found. Available statuses: ${statuses.map((s: any) => s.name).join(', ')}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (error instanceof NodeApiError) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\t\t\t\tmessage: `Failed to lookup status \"${updateFields.status}\": ${(error as Error).message}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Process tags if provided as comma-separated string\n\t\t\tif (updateFields.tags && typeof updateFields.tags === 'string') {\n\t\t\t\tupdateFields.tags = (updateFields.tags).split(',').map((tag: string) => tag.trim());\n\t\t\t}\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst jobId = executeFunctions.getNodeParameter('jobId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job/${jobId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tif (operation === 'search') {\n\t\t\tconst searchMethod = executeFunctions.getNodeParameter('searchMethod', itemIndex) as string;\n\t\t\tconst searchQuery = executeFunctions.getNodeParameter('searchQuery', itemIndex) as string;\n\t\t\tconst searchOptions = executeFunctions.getNodeParameter('searchOptions', itemIndex, {}) as IDataObject;\n\n\t\t\tconst qs: IDataObject = {};\n\n\t\t\t// Handle different search methods\n\t\t\tswitch (searchMethod) {\n\t\t\tcase 'general':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tbreak;\n\t\t\tcase 'ext_id':\n\t\t\t\tqs.ext_id = searchQuery;\n\t\t\t\tbreak;\n\t\t\tcase 'title':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'title';\n\t\t\t\tbreak;\n\t\t\tcase 'company':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'company';\n\t\t\t\tbreak;\n\t\t\tcase 'location':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'location';\n\t\t\t\tbreak;\n\t\t\tcase 'description':\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t\tqs.searchField = 'description';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tqs.searchTerm = searchQuery;\n\t\t\t}\n\n\t\t\t// Add additional filter parameters\n\t\t\tif (searchOptions.remote_setting) qs.remote_setting = searchOptions.remote_setting;\n\t\t\tif (searchOptions.status) qs.status = searchOptions.status;\n\t\t\tif (searchOptions.tags) qs.tags = searchOptions.tags;\n\n\t\t\t// Set limit with default value\n\t\t\tconst limit = (searchOptions.limit as number) || 24;\n\t\t\tqs.pageSize = limit;\n\t\t\tqs.page = 1;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\tqs,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'exists') {\n\t\t\tconst id = executeFunctions.getNodeParameter('id', itemIndex) as string;\n\n\t\t\ttry {\n\t\t\t\t// First try to get by job ID\n\t\t\t\ttry {\n\t\t\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/job/${id}`,\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\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// If we get here, the job exists by ID\n\t\t\t\t\treturn { exists: true, found_by: 'job_id', id };\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// Job not found by ID, try searching by ext_id\n\t\t\t\t\tconst searchResponse = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\t\t\texecuteFunctions,\n\t\t\t\t\t\t'inNotesApi',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\t\t\turl: `${baseUrl}/api/job`,\n\t\t\t\t\t\t\tqs: { ext_id: id },\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// Check if any results were returned\n\t\t\t\t\tconst results = Array.isArray(searchResponse) ? searchResponse : [searchResponse];\n\t\t\t\t\tif (results.length > 0 && results[0]) {\n\t\t\t\t\t\treturn { exists: true, found_by: 'ext_id', id };\n\t\t\t\t\t}\n\n\t\t\t\t\t// Not found by either ID or ext_id\n\t\t\t\t\treturn { exists: false, id };\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// If there's an error during the search, return false\n\t\t\t\treturn { exists: false, id, error: (error as Error).message };\n\t\t\t}\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"job\"!`,\n\t\t});\n\t}\n\n\tprivate async executeStatusOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'create') {\n\t\t\tconst name = executeFunctions.getNodeParameter('name', itemIndex) as string;\n\t\t\tconst type = executeFunctions.getNodeParameter('type', itemIndex) as string;\n\t\t\tconst color = executeFunctions.getNodeParameter('color', itemIndex, '') as string;\n\n\t\t\tconst body: IDataObject = {\n\t\t\t\tname,\n\t\t\t\ttype,\n\t\t\t\t...(color && { color }),\n\t\t\t};\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\tbody,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst type = executeFunctions.getNodeParameter('type', itemIndex, 'contact') as string;\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses`,\n\t\t\t\t\tqs: { type },\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst statusId = executeFunctions.getNodeParameter('statusId', itemIndex) as string | number;\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses/${statusId}`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'delete') {\n\t\t\tconst statusId = executeFunctions.getNodeParameter('statusId', itemIndex) as string | number;\n\n\t\t\tawait executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/statuses/${statusId}`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn { success: true };\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"status\"!`,\n\t\t});\n\t}\n\n\tprivate async executeTagOperation(executeFunctions: IExecuteFunctions, _itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'getAll') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/tags`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn Array.isArray(response) ? response : [response];\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"tag\"! Supported operations: getAll`,\n\t\t});\n\t}\n\n\tprivate async executeUserOperation(executeFunctions: IExecuteFunctions, itemIndex: number, operation: string): Promise<IDataObject | IDataObject[]> {\n\t\tconst credentials = await executeFunctions.getCredentials('inNotesApi');\n\t\tconst baseUrl = credentials.baseUrl as string;\n\n\t\tif (operation === 'get') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tif (operation === 'getCv') {\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'GET' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\t// Return only CV-related fields\n\t\t\tconst { cv, job_preferences, cv_updated_at } = response;\n\n\t\t\t// Parse job_preferences if it's a JSON string\n\t\t\tlet parsedPreferences = null;\n\t\t\tlet searchJobTitles = [];\n\t\t\tlet locations = [];\n\n\t\t\tif (job_preferences) {\n\t\t\t\ttry {\n\t\t\t\t\tparsedPreferences = typeof job_preferences === 'string'\n\t\t\t\t\t\t? JSON.parse(job_preferences)\n\t\t\t\t\t\t: job_preferences;\n\n\t\t\t\t\tsearchJobTitles = parsedPreferences.searchJobTitles || [];\n\t\t\t\t\tlocations = parsedPreferences.locations || [];\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// If parsing fails, keep empty arrays\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcv,\n\t\t\t\tjob_preferences: parsedPreferences,\n\t\t\t\tcv_updated_at,\n\t\t\t\tsearchJobTitles: searchJobTitles.join(', '),\n\t\t\t\tlocations: locations.join(', '),\n\t\t\t};\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\tconst updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex);\n\n\t\t\tconst response = await executeFunctions.helpers.httpRequestWithAuthentication.call(\n\t\t\t\texecuteFunctions,\n\t\t\t\t'inNotesApi',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'PUT' as IHttpRequestMethods,\n\t\t\t\t\turl: `${baseUrl}/api/user`,\n\t\t\t\t\tbody: updateFields,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn response;\n\t\t}\n\n\t\tthrow new NodeApiError(executeFunctions.getNode(), {\n\t\t\tmessage: `The operation \"${operation}\" is not supported for resource \"user\"! Supported operations: get, getCv, update`,\n\t\t});\n\t}\n}\n"]}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-innotes",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "N8N node for InNotes CRM API integration",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-innotes",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "N8N node for InNotes CRM API integration",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",