@limetech/n8n-nodes-lime 3.11.3 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +4 -2
  3. package/dist/nodes/lime-crm/LimeCrmNode.node.js +4 -1
  4. package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +1 -1
  5. package/dist/nodes/lime-crm/{LimeCrm.node.json → LimeCrmNode.node.json} +2 -2
  6. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js +1 -0
  7. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js.map +1 -1
  8. package/dist/nodes/lime-crm/methods/getLimetypeProperties.js +6 -2
  9. package/dist/nodes/lime-crm/methods/getLimetypeProperties.js.map +1 -1
  10. package/dist/nodes/lime-crm/methods/index.d.ts +1 -0
  11. package/dist/nodes/lime-crm/methods/index.js +3 -1
  12. package/dist/nodes/lime-crm/methods/index.js.map +1 -1
  13. package/dist/nodes/lime-crm/methods/resourceMapping.js +9 -3
  14. package/dist/nodes/lime-crm/methods/resourceMapping.js.map +1 -1
  15. package/dist/nodes/lime-crm/methods/searchLimetypes.d.ts +2 -0
  16. package/dist/nodes/lime-crm/methods/searchLimetypes.js +23 -0
  17. package/dist/nodes/lime-crm/methods/searchLimetypes.js.map +1 -0
  18. package/dist/nodes/lime-crm/resources/data/operations/bulkImportCommons.js +22 -6
  19. package/dist/nodes/lime-crm/resources/data/operations/bulkImportCommons.js.map +1 -1
  20. package/dist/nodes/lime-crm/resources/data/operations/createSingleObject.operation.js +22 -6
  21. package/dist/nodes/lime-crm/resources/data/operations/createSingleObject.operation.js.map +1 -1
  22. package/dist/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.js +22 -6
  23. package/dist/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.js.map +1 -1
  24. package/dist/nodes/lime-crm/resources/data/operations/getManyObjects.operation.js +40 -9
  25. package/dist/nodes/lime-crm/resources/data/operations/getManyObjects.operation.js.map +1 -1
  26. package/dist/nodes/lime-crm/resources/data/operations/getSingleFile.operation.js +22 -6
  27. package/dist/nodes/lime-crm/resources/data/operations/getSingleFile.operation.js.map +1 -1
  28. package/dist/nodes/lime-crm/resources/data/operations/getSingleObject.operation.js +22 -6
  29. package/dist/nodes/lime-crm/resources/data/operations/getSingleObject.operation.js.map +1 -1
  30. package/dist/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.js +22 -6
  31. package/dist/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.js.map +1 -1
  32. package/dist/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.js +22 -6
  33. package/dist/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.js.map +1 -1
  34. package/dist/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.js +22 -6
  35. package/dist/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.js.map +1 -1
  36. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js +1 -0
  37. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js.map +1 -1
  38. package/dist/tsconfig.build.tsbuildinfo +1 -1
  39. package/nodes/lime-crm/{LimeCrm.node.json → LimeCrmNode.node.json} +2 -2
  40. package/nodes/lime-crm/LimeCrmNode.node.ts +7 -3
  41. package/nodes/lime-crm/LimeCrmTrigger.node.ts +2 -0
  42. package/nodes/lime-crm/methods/getLimetypeProperties.ts +6 -2
  43. package/nodes/lime-crm/methods/index.ts +1 -0
  44. package/nodes/lime-crm/methods/resourceMapping.ts +9 -3
  45. package/nodes/lime-crm/methods/searchLimetypes.ts +33 -0
  46. package/nodes/lime-crm/resources/data/operations/bulkImportCommons.ts +22 -6
  47. package/nodes/lime-crm/resources/data/operations/createSingleObject.operation.ts +22 -6
  48. package/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.ts +22 -6
  49. package/nodes/lime-crm/resources/data/operations/getManyObjects.operation.ts +44 -9
  50. package/nodes/lime-crm/resources/data/operations/getSingleFile.operation.ts +22 -6
  51. package/nodes/lime-crm/resources/data/operations/getSingleObject.operation.ts +22 -6
  52. package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +22 -6
  53. package/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.ts +22 -6
  54. package/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.ts +22 -6
  55. package/nodes/lime-forms/LimeFormsTrigger.node.ts +2 -0
  56. package/package.json +1 -1
@@ -6,12 +6,12 @@
6
6
  "resources": {
7
7
  "credentialDocumentation": [
8
8
  {
9
- "url": "https://lime-crm.com/api-docs/"
9
+ "url": "https://platform.docs.lime-crm.com/en/latest/workflows-and-integrations/node-reference/"
10
10
  }
11
11
  ],
12
12
  "primaryDocumentation": [
13
13
  {
14
- "url": "https://lime-crm.com/api-docs/"
14
+ "url": "https://platform.docs.lime-crm.com/en/latest/workflows-and-integrations/node-reference/"
15
15
  }
16
16
  ]
17
17
  }
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  getFileProperties,
24
24
  getLimetypeProperties,
25
- getLimetypes,
25
+ searchLimetypes,
26
26
  getNoHasManyProperties,
27
27
  getRelationProperties,
28
28
  getCreateMappingColumns,
@@ -80,6 +80,8 @@ export class LimeCrmNode implements INodeType {
80
80
  description: INodeTypeDescription = {
81
81
  displayName: 'Lime CRM',
82
82
  name: 'limeCrm',
83
+ documentationUrl:
84
+ 'https://platform.docs.lime-crm.com/en/latest/workflows-and-integrations/node-reference/',
83
85
  icon: 'file:assets/lime-crm.svg',
84
86
  group: ['transform'],
85
87
  version: 1,
@@ -138,7 +140,7 @@ export class LimeCrmNode implements INodeType {
138
140
  * @remarks
139
141
  * These functions are used to populate dropdowns and lists in the node's
140
142
  * parameter editor. For details, see:
141
- * - {@link getLimetypes}
143
+ * - {@link searchLimetypes}
142
144
  * - {@link getFileProperties}
143
145
  * - {@link getLimetypeProperties}
144
146
  * - {@link getNoHasManyProperties}
@@ -147,13 +149,15 @@ export class LimeCrmNode implements INodeType {
147
149
  */
148
150
  methods = {
149
151
  loadOptions: {
150
- getLimetypes,
151
152
  getLimetypeProperties,
152
153
  getFileProperties,
153
154
  getNoHasManyProperties,
154
155
  getRelationProperties,
155
156
  getRelationPropertiesWithLookupField,
156
157
  },
158
+ listSearch: {
159
+ searchLimetypes,
160
+ },
157
161
  resourceMapping: {
158
162
  getUpdateMappingColumns,
159
163
  getCreateMappingColumns,
@@ -52,6 +52,8 @@ export class LimeCrmTrigger implements INodeType {
52
52
  description: INodeTypeDescription = {
53
53
  displayName: 'Lime CRM Trigger',
54
54
  name: 'limeCrmTrigger',
55
+ documentationUrl:
56
+ 'https://platform.docs.lime-crm.com/en/latest/workflows-and-integrations/node-reference/',
55
57
  icon: 'file:assets/lime-crm.svg',
56
58
  group: ['trigger'],
57
59
  version: 1,
@@ -18,7 +18,9 @@ import { getProperties } from '../transport/';
18
18
  * @group Load Options Methods
19
19
  */
20
20
  async function fetchAllProperties(nodeContext: ILoadOptionsFunctions) {
21
- const limetype = nodeContext.getNodeParameter('limetype', '') as string;
21
+ const limetype = nodeContext.getNodeParameter('limetype', '', {
22
+ extractValue: true,
23
+ }) as string;
22
24
  Logger.info(`Fetching file properties for Lime type: ${limetype}`);
23
25
  if (!limetype) return [];
24
26
  try {
@@ -143,7 +145,9 @@ export async function getRelationProperties(
143
145
  export async function getRelationPropertiesWithLookupField(
144
146
  this: ILoadOptionsFunctions
145
147
  ): Promise<INodePropertyOptions[]> {
146
- const limetype = this.getNodeParameter('limetype', '') as string;
148
+ const limetype = this.getNodeParameter('limetype', '', {
149
+ extractValue: true,
150
+ }) as string;
147
151
 
148
152
  if (!limetype) return [];
149
153
 
@@ -1,4 +1,5 @@
1
1
  export { getLimetypes } from './getLimetypes';
2
+ export { searchLimetypes } from './searchLimetypes';
2
3
  export {
3
4
  getFileProperties,
4
5
  getFilteredLimetypeProperties,
@@ -138,7 +138,9 @@ export function parseResourceMapperFields(
138
138
  export async function getCreateMappingColumns(
139
139
  this: ILoadOptionsFunctions
140
140
  ): Promise<ResourceMapperFields> {
141
- const limetype = this.getNodeParameter('limetype') as string;
141
+ const limetype = this.getNodeParameter('limetype', undefined, {
142
+ extractValue: true,
143
+ }) as string;
142
144
  return getMappingColumns(this, 'create', limetype);
143
145
  }
144
146
 
@@ -148,7 +150,9 @@ export async function getCreateMappingColumns(
148
150
  export async function getUpdateMappingColumns(
149
151
  this: ILoadOptionsFunctions
150
152
  ): Promise<ResourceMapperFields> {
151
- const limetype = this.getNodeParameter('limetype') as string;
153
+ const limetype = this.getNodeParameter('limetype', undefined, {
154
+ extractValue: true,
155
+ }) as string;
152
156
  return getMappingColumns(this, 'update', limetype);
153
157
  }
154
158
 
@@ -159,7 +163,9 @@ export async function getUpdateMappingColumns(
159
163
  export async function getRelationLookupMappingColumns(
160
164
  this: ILoadOptionsFunctions
161
165
  ): Promise<ResourceMapperFields> {
162
- const limetype = this.getNodeParameter('limetype') as string;
166
+ const limetype = this.getNodeParameter('limetype', undefined, {
167
+ extractValue: true,
168
+ }) as string;
163
169
  if (!limetype) {
164
170
  return { fields: [] };
165
171
  }
@@ -0,0 +1,33 @@
1
+ import { ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
2
+ import { getLimetypesFromApi } from '../transport';
3
+
4
+ /**
5
+ * Search available Limetypes for a `resourceLocator` list mode.
6
+ *
7
+ * @param filter - Optional text to filter Limetypes by their display name
8
+ * @returns Matching Limetypes as resource locator search results
9
+ *
10
+ * @public
11
+ * @group List Search Methods
12
+ */
13
+ export async function searchLimetypes(
14
+ this: ILoadOptionsFunctions,
15
+ filter?: string
16
+ ): Promise<INodeListSearchResult> {
17
+ const response = await getLimetypesFromApi(this);
18
+ if (!response.success) return { results: [] };
19
+
20
+ const results = response.data
21
+ .map((limetype) => ({
22
+ name: limetype.localname?.singular || limetype.name,
23
+ value: limetype.name,
24
+ }))
25
+ .filter((item) =>
26
+ filter
27
+ ? item.name.toLowerCase().includes(filter.toLowerCase())
28
+ : true
29
+ )
30
+ .sort((a, b) => a.name.localeCompare(b.name));
31
+
32
+ return { results };
33
+ }
@@ -57,13 +57,27 @@ export function getBulkImportProperties(
57
57
  {
58
58
  displayName: 'Limetype',
59
59
  name: 'limetype',
60
- type: 'options',
61
- typeOptions: {
62
- loadOptionsMethod: 'getLimetypes',
63
- },
60
+ type: 'resourceLocator',
61
+ default: { mode: 'list', value: '' },
64
62
  required: true,
65
- default: '',
66
63
  description: 'The type of object to import',
64
+ modes: [
65
+ {
66
+ displayName: 'From List',
67
+ name: 'list',
68
+ type: 'list',
69
+ typeOptions: {
70
+ searchListMethod: 'searchLimetypes',
71
+ searchable: true,
72
+ },
73
+ },
74
+ {
75
+ displayName: 'By Name',
76
+ name: 'name',
77
+ type: 'string',
78
+ placeholder: 'e.g. company',
79
+ },
80
+ ],
67
81
  displayOptions: {
68
82
  show: {
69
83
  resource: [DATA_RESOURCE],
@@ -217,7 +231,9 @@ export async function executeBulkImport(
217
231
  return undefined;
218
232
  }
219
233
 
220
- const limetype = context.getNodeParameter('limetype', i) as string;
234
+ const limetype = context.getNodeParameter('limetype', i, undefined, {
235
+ extractValue: true,
236
+ }) as string;
221
237
  const inputMethod = context.getNodeParameter('inputMethod', i) as string;
222
238
  const items = context.getInputData();
223
239
 
@@ -36,13 +36,27 @@ export const properties: INodeProperties[] = [
36
36
  {
37
37
  displayName: 'Limetype',
38
38
  name: 'limetype',
39
- type: 'options',
40
- typeOptions: {
41
- loadOptionsMethod: 'getLimetypes',
42
- },
39
+ type: 'resourceLocator',
40
+ default: { mode: 'list', value: '' },
43
41
  required: true,
44
- default: '',
45
42
  description: 'The type of entity to create',
43
+ modes: [
44
+ {
45
+ displayName: 'From List',
46
+ name: 'list',
47
+ type: 'list',
48
+ typeOptions: {
49
+ searchListMethod: 'searchLimetypes',
50
+ searchable: true,
51
+ },
52
+ },
53
+ {
54
+ displayName: 'By Name',
55
+ name: 'name',
56
+ type: 'string',
57
+ placeholder: 'e.g. company',
58
+ },
59
+ ],
46
60
  displayOptions: {
47
61
  show: {
48
62
  resource: [DATA_RESOURCE],
@@ -140,7 +154,9 @@ export const properties: INodeProperties[] = [
140
154
  * @public
141
155
  */
142
156
  export async function execute(this: IExecuteFunctions, i: number) {
143
- const limetype = this.getNodeParameter('limetype', i) as string;
157
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
158
+ extractValue: true,
159
+ }) as string;
144
160
  const inputMethod = this.getNodeParameter('inputMethod', i) as string;
145
161
 
146
162
  let objectData: IDataObject;
@@ -29,13 +29,27 @@ export const properties: INodeProperties[] = [
29
29
  {
30
30
  displayName: 'Limetype',
31
31
  name: 'limetype',
32
- type: 'options',
33
- typeOptions: {
34
- loadOptionsMethod: 'getLimetypes',
35
- },
32
+ type: 'resourceLocator',
33
+ default: { mode: 'list', value: '' },
36
34
  required: true,
37
- default: '',
38
35
  description: 'The type of entity to delete',
36
+ modes: [
37
+ {
38
+ displayName: 'From List',
39
+ name: 'list',
40
+ type: 'list',
41
+ typeOptions: {
42
+ searchListMethod: 'searchLimetypes',
43
+ searchable: true,
44
+ },
45
+ },
46
+ {
47
+ displayName: 'By Name',
48
+ name: 'name',
49
+ type: 'string',
50
+ placeholder: 'e.g. company',
51
+ },
52
+ ],
39
53
  displayOptions: {
40
54
  show: {
41
55
  resource: [DATA_RESOURCE],
@@ -80,7 +94,9 @@ export async function execute(
80
94
  this: IExecuteFunctions,
81
95
  i: number
82
96
  ): Promise<WorkflowResponse<Record<string, never>>> {
83
- const limetype = this.getNodeParameter('limetype', i) as string;
97
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
98
+ extractValue: true,
99
+ }) as string;
84
100
  const objectId = this.getNodeParameter('objectId', i) as string;
85
101
 
86
102
  const response = await deleteLimeobject(this, limetype, objectId);
@@ -90,13 +90,27 @@ export const properties: INodeProperties[] = [
90
90
  {
91
91
  displayName: 'Limetype',
92
92
  name: 'limetype',
93
- type: 'options',
94
- typeOptions: {
95
- loadOptionsMethod: 'getLimetypes',
96
- },
93
+ type: 'resourceLocator',
94
+ default: { mode: 'list', value: '' },
97
95
  required: true,
98
- default: '',
99
96
  description: 'The type of entity to query',
97
+ modes: [
98
+ {
99
+ displayName: 'From List',
100
+ name: 'list',
101
+ type: 'list',
102
+ typeOptions: {
103
+ searchListMethod: 'searchLimetypes',
104
+ searchable: true,
105
+ },
106
+ },
107
+ {
108
+ displayName: 'By Name',
109
+ name: 'name',
110
+ type: 'string',
111
+ placeholder: 'e.g. company',
112
+ },
113
+ ],
100
114
  displayOptions: {
101
115
  show: {
102
116
  resource: [DATA_RESOURCE],
@@ -211,6 +225,21 @@ export const properties: INodeProperties[] = [
211
225
  },
212
226
  },
213
227
  },
228
+ {
229
+ displayName: 'Offset',
230
+ name: 'offset',
231
+ type: 'number',
232
+ default: '',
233
+ placeholder: 'e.g. 200',
234
+ description:
235
+ 'Use together with Limit to manually control pagination when fetching data in batches. This is useful when the number of records exceeds tens of thousands and you want to keep each workflow iteration lightweight. Leave empty to fetch all objects at once, using automatic pagination under the hood.',
236
+ displayOptions: {
237
+ show: {
238
+ resource: [DATA_RESOURCE],
239
+ operation: ['getManyObjects'],
240
+ },
241
+ },
242
+ },
214
243
  {
215
244
  displayName: 'Order By',
216
245
  name: 'orderByInputMethod',
@@ -386,6 +415,7 @@ function getOrderBy(orderByCollection: OrderByCollection) {
386
415
  * @param filter - JSON string representing the filter conditions for the query
387
416
  * @param limit - Maximum number of objects to fetch in this request
388
417
  * @param orderBy - Array of objects defining the sorting of the results
418
+ * @param offset - Starting offset for fetching. Defaults to 0, which preserves automatic pagination from the beginning.
389
419
  *
390
420
  * @returns Array of fetched objects or an error response as an array.
391
421
  */
@@ -395,7 +425,8 @@ async function fetchLimeObjects(
395
425
  responseFormat: ResponseFormat,
396
426
  filter: string,
397
427
  limit: number | null,
398
- orderBy: Record<string, 'ASC' | 'DESC'>[]
428
+ orderBy: Record<string, 'ASC' | 'DESC'>[],
429
+ offset = 0
399
430
  ): Promise<WorkflowResponse<IncludedProperties[]>> {
400
431
  const allResults: IncludedProperties[] = [];
401
432
  const parsedFilter = JSON.parse(filter);
@@ -403,7 +434,7 @@ async function fetchLimeObjects(
403
434
  const targetLimit = unlimited ? Infinity : limit;
404
435
 
405
436
  let fetched = 0;
406
- let currentOffset = 0;
437
+ let currentOffset = offset;
407
438
 
408
439
  while (fetched < targetLimit) {
409
440
  const currentLimit =
@@ -458,7 +489,9 @@ async function fetchLimeObjects(
458
489
  * @public
459
490
  */
460
491
  export async function execute(this: IExecuteFunctions, i: number) {
461
- const limetype = this.getNodeParameter('limetype', i) as string;
492
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
493
+ extractValue: true,
494
+ }) as string;
462
495
  const responseFormatInputMethod = this.getNodeParameter(
463
496
  'responseFormatInputMethod',
464
497
  i
@@ -473,6 +506,7 @@ export async function execute(this: IExecuteFunctions, i: number) {
473
506
  i,
474
507
  DEFAULT_API_OBJECT_LIMIT
475
508
  ) as number;
509
+ const offset = (this.getNodeParameter('offset', i, 0) as number) || 0;
476
510
 
477
511
  let response;
478
512
  if (responseFormatInputMethod === 'fields') {
@@ -504,6 +538,7 @@ export async function execute(this: IExecuteFunctions, i: number) {
504
538
  response,
505
539
  filter,
506
540
  limit,
507
- orderBy
541
+ orderBy,
542
+ offset
508
543
  );
509
544
  }
@@ -59,13 +59,27 @@ export const properties: INodeProperties[] = [
59
59
  {
60
60
  displayName: 'Limetype',
61
61
  name: 'limetype',
62
- type: 'options',
63
- typeOptions: {
64
- loadOptionsMethod: 'getLimetypes',
65
- },
62
+ type: 'resourceLocator',
63
+ default: { mode: 'list', value: '' },
66
64
  required: true,
67
- default: '',
68
65
  description: 'The type of entity associated with the file',
66
+ modes: [
67
+ {
68
+ displayName: 'From List',
69
+ name: 'list',
70
+ type: 'list',
71
+ typeOptions: {
72
+ searchListMethod: 'searchLimetypes',
73
+ searchable: true,
74
+ },
75
+ },
76
+ {
77
+ displayName: 'By Name',
78
+ name: 'name',
79
+ type: 'string',
80
+ placeholder: 'e.g. company',
81
+ },
82
+ ],
69
83
  displayOptions: {
70
84
  show: {
71
85
  resource: [DATA_RESOURCE],
@@ -145,7 +159,9 @@ export async function execute(
145
159
  };
146
160
  }
147
161
  if (source == 'byLimeobject') {
148
- const limetype = this.getNodeParameter('limetype', i) as string;
162
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
163
+ extractValue: true,
164
+ }) as string;
149
165
  const property = this.getNodeParameter('property', i) as string;
150
166
 
151
167
  const fileResponse = await getFileContentByLimetype(
@@ -29,13 +29,27 @@ export const properties: INodeProperties[] = [
29
29
  {
30
30
  displayName: 'Limetype',
31
31
  name: 'limetype',
32
- type: 'options',
33
- typeOptions: {
34
- loadOptionsMethod: 'getLimetypes',
35
- },
32
+ type: 'resourceLocator',
33
+ default: { mode: 'list', value: '' },
36
34
  required: true,
37
- default: '',
38
35
  description: 'The type of entity to retrieve',
36
+ modes: [
37
+ {
38
+ displayName: 'From List',
39
+ name: 'list',
40
+ type: 'list',
41
+ typeOptions: {
42
+ searchListMethod: 'searchLimetypes',
43
+ searchable: true,
44
+ },
45
+ },
46
+ {
47
+ displayName: 'By Name',
48
+ name: 'name',
49
+ type: 'string',
50
+ placeholder: 'e.g. company',
51
+ },
52
+ ],
39
53
  displayOptions: {
40
54
  show: {
41
55
  resource: [DATA_RESOURCE],
@@ -98,7 +112,9 @@ export async function execute(
98
112
  this: IExecuteFunctions,
99
113
  i: number
100
114
  ): Promise<WorkflowFileResponse<Limeobject>> {
101
- const limetype = this.getNodeParameter('limetype', i) as string;
115
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
116
+ extractValue: true,
117
+ }) as string;
102
118
  const objectId = this.getNodeParameter('objectId', i) as string;
103
119
  const includeFileContent = this.getNodeParameter(
104
120
  'includeFileContent',
@@ -36,13 +36,27 @@ export const properties: INodeProperties[] = [
36
36
  {
37
37
  displayName: 'Limetype',
38
38
  name: 'limetype',
39
- type: 'options',
40
- typeOptions: {
41
- loadOptionsMethod: 'getLimetypes',
42
- },
39
+ type: 'resourceLocator',
40
+ default: { mode: 'list', value: '' },
43
41
  required: true,
44
- default: '',
45
42
  description: 'The type of entity to update',
43
+ modes: [
44
+ {
45
+ displayName: 'From List',
46
+ name: 'list',
47
+ type: 'list',
48
+ typeOptions: {
49
+ searchListMethod: 'searchLimetypes',
50
+ searchable: true,
51
+ },
52
+ },
53
+ {
54
+ displayName: 'By Name',
55
+ name: 'name',
56
+ type: 'string',
57
+ placeholder: 'e.g. company',
58
+ },
59
+ ],
46
60
  displayOptions: {
47
61
  show: {
48
62
  resource: [DATA_RESOURCE],
@@ -160,7 +174,9 @@ export async function execute(
160
174
  this: IExecuteFunctions,
161
175
  i: number
162
176
  ): Promise<WorkflowFileResponse<Limeobject>> {
163
- const limetype = this.getNodeParameter('limetype', i) as string;
177
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
178
+ extractValue: true,
179
+ }) as string;
164
180
  const id = this.getNodeParameter('id', i) as string;
165
181
  const inputType = this.getNodeParameter('inputType', i) as string;
166
182
 
@@ -60,13 +60,27 @@ export const properties: INodeProperties[] = [
60
60
  {
61
61
  displayName: 'Limetype',
62
62
  name: 'limetype',
63
- type: 'options',
64
- typeOptions: {
65
- loadOptionsMethod: 'getLimetypes',
66
- },
63
+ type: 'resourceLocator',
64
+ default: { mode: 'list', value: '' },
67
65
  required: true,
68
- default: '',
69
66
  description: 'The type of entity associated with the file',
67
+ modes: [
68
+ {
69
+ displayName: 'From List',
70
+ name: 'list',
71
+ type: 'list',
72
+ typeOptions: {
73
+ searchListMethod: 'searchLimetypes',
74
+ searchable: true,
75
+ },
76
+ },
77
+ {
78
+ displayName: 'By Name',
79
+ name: 'name',
80
+ type: 'string',
81
+ placeholder: 'e.g. company',
82
+ },
83
+ ],
70
84
  displayOptions: {
71
85
  show: {
72
86
  resource: [METADATA_RESOURCE],
@@ -133,7 +147,9 @@ export async function execute(
133
147
  if (source == 'byFile') {
134
148
  response = await getFileMetadata(this, id);
135
149
  } else if (source == 'byLimeobject') {
136
- const limetype = this.getNodeParameter('limetype', i) as string;
150
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
151
+ extractValue: true,
152
+ }) as string;
137
153
  const property = this.getNodeParameter('property', i) as string;
138
154
  response = await getFileMetadataByLimeobject(
139
155
  this,
@@ -26,13 +26,27 @@ export const properties: INodeProperties[] = [
26
26
  {
27
27
  displayName: 'Limetype',
28
28
  name: 'limetype',
29
- type: 'options',
30
- typeOptions: {
31
- loadOptionsMethod: 'getLimetypes',
32
- },
29
+ type: 'resourceLocator',
30
+ default: { mode: 'list', value: '' },
33
31
  required: true,
34
- default: '',
35
32
  description: 'The name of the entity type to get details for',
33
+ modes: [
34
+ {
35
+ displayName: 'From List',
36
+ name: 'list',
37
+ type: 'list',
38
+ typeOptions: {
39
+ searchListMethod: 'searchLimetypes',
40
+ searchable: true,
41
+ },
42
+ },
43
+ {
44
+ displayName: 'By Name',
45
+ name: 'name',
46
+ type: 'string',
47
+ placeholder: 'e.g. company',
48
+ },
49
+ ],
36
50
  displayOptions: {
37
51
  show: {
38
52
  resource: [METADATA_RESOURCE],
@@ -56,7 +70,9 @@ export async function execute(
56
70
  this: IExecuteFunctions,
57
71
  i: number
58
72
  ): Promise<WorkflowResponse<Limetype>> {
59
- const limetype = this.getNodeParameter('limetype', i) as string;
73
+ const limetype = this.getNodeParameter('limetype', i, undefined, {
74
+ extractValue: true,
75
+ }) as string;
60
76
 
61
77
  const response = await getLimetype(this, limetype);
62
78
  return response.data;
@@ -32,6 +32,8 @@ export class LimeFormsTrigger implements INodeType {
32
32
  description: INodeTypeDescription = {
33
33
  displayName: 'Lime CRM Forms Trigger',
34
34
  name: 'limeCrmFormsTrigger',
35
+ documentationUrl:
36
+ 'https://platform.docs.lime-crm.com/en/latest/workflows-and-integrations/node-reference/',
35
37
  group: ['trigger'],
36
38
  version: 1,
37
39
  icon: 'file:assets/lime-crm.svg',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/n8n-nodes-lime",
3
- "version": "3.11.3",
3
+ "version": "3.13.0",
4
4
  "description": "n8n node to connect to Lime CRM",
5
5
  "author": {
6
6
  "name": "Lime Technologies",