@seranking/n8n-nodes-seranking 1.5.10 → 1.5.12

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.
@@ -302,6 +302,14 @@ exports.aiResultTrackerFields = [
302
302
  },
303
303
  },
304
304
  options: [
305
+ {
306
+ displayName: 'Group IDs',
307
+ name: 'groupIds',
308
+ type: 'string',
309
+ default: '',
310
+ placeholder: '12,18',
311
+ description: 'Comma-separated prompt group IDs to filter by',
312
+ },
305
313
  {
306
314
  displayName: 'Limit',
307
315
  name: 'limit',
@@ -333,6 +341,28 @@ exports.aiResultTrackerFields = [
333
341
  placeholder: 'best seo tool,seo rank tracker,website audit tool',
334
342
  description: 'Comma-separated list of keyword prompts to add (max 255 chars each)',
335
343
  },
344
+ {
345
+ displayName: 'Additional Fields',
346
+ name: 'additionalFields',
347
+ type: 'collection',
348
+ placeholder: 'Add Field',
349
+ default: {},
350
+ displayOptions: {
351
+ show: {
352
+ resource: ['aiResultTracker'],
353
+ operation: ['addPrompts'],
354
+ },
355
+ },
356
+ options: [
357
+ {
358
+ displayName: 'Group ID',
359
+ name: 'groupId',
360
+ type: 'number',
361
+ default: 0,
362
+ description: 'Target prompt group ID. Defaults to the site\'s default group.',
363
+ },
364
+ ],
365
+ },
336
366
  {
337
367
  displayName: 'Keyword-LLM Link IDs',
338
368
  name: 'k2siteLlmIds',
@@ -377,6 +407,14 @@ exports.aiResultTrackerFields = [
377
407
  placeholder: '2026-01-31',
378
408
  description: 'End date (YYYY-MM-DD). Defaults to current date.',
379
409
  },
410
+ {
411
+ displayName: 'Group IDs',
412
+ name: 'groupIds',
413
+ type: 'string',
414
+ default: '',
415
+ placeholder: '12,18',
416
+ description: 'Comma-separated prompt group IDs to filter by',
417
+ },
380
418
  {
381
419
  displayName: 'Limit',
382
420
  name: 'limit',
@@ -405,7 +443,7 @@ exports.aiResultTrackerFields = [
405
443
  },
406
444
  },
407
445
  default: 0,
408
- description: 'Value of the <code>k2site_llm_id</code> field from List Prompts (the SE Ranking docs call this parameter <code>keyword_id</code>, but the endpoint actually expects <code>k2site_llm_id</code>)',
446
+ description: 'Value of the <code>k2site_llm_id</code> field from List Prompts',
409
447
  },
410
448
  {
411
449
  displayName: 'Additional Fields',
@@ -79,13 +79,22 @@ async function AiResultTrackerOperations(index) {
79
79
  query.limit = additionalFields.limit;
80
80
  if (additionalFields.offset !== undefined)
81
81
  query.offset = additionalFields.offset;
82
- return await apiRequest_1.apiRequest.call(this, 'GET', `/sites/${siteId}/airt/llm/${llmId}/prompts`, {}, query, index);
82
+ let endpoint = `/sites/${siteId}/airt/llm/${llmId}/prompts`;
83
+ if (additionalFields.groupIds) {
84
+ const ids = additionalFields.groupIds.split(',').map((id) => id.trim());
85
+ endpoint += '?' + ids.map((id) => `group_ids[]=${encodeURIComponent(id)}`).join('&');
86
+ }
87
+ return await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, query, index);
83
88
  }
84
89
  case 'addPrompts': {
85
90
  const llmId = this.getNodeParameter('llmId', index);
86
91
  const promptsStr = this.getNodeParameter('prompts', index);
87
92
  const prompts = promptsStr.split(',').map((p) => p.trim()).filter((p) => p.length > 0);
88
- return await apiRequest_1.apiRequest.call(this, 'POST', `/sites/${siteId}/airt/llm/${llmId}/prompts`, { prompts }, {}, index);
93
+ const additionalFields = this.getNodeParameter('additionalFields', index, {});
94
+ const body = { prompts };
95
+ if (additionalFields.groupId)
96
+ body.group_id = additionalFields.groupId;
97
+ return await apiRequest_1.apiRequest.call(this, 'POST', `/sites/${siteId}/airt/llm/${llmId}/prompts`, body, {}, index);
89
98
  }
90
99
  case 'deletePrompts': {
91
100
  const llmId = this.getNodeParameter('llmId', index);
@@ -106,7 +115,12 @@ async function AiResultTrackerOperations(index) {
106
115
  query.limit = additionalFields.limit;
107
116
  if (additionalFields.offset !== undefined)
108
117
  query.offset = additionalFields.offset;
109
- return await apiRequest_1.apiRequest.call(this, 'GET', `/sites/${siteId}/airt/llm/${llmId}/prompts/rankings`, {}, query, index);
118
+ let endpoint = `/sites/${siteId}/airt/llm/${llmId}/prompts/rankings`;
119
+ if (additionalFields.groupIds) {
120
+ const ids = additionalFields.groupIds.split(',').map((id) => id.trim());
121
+ endpoint += '?' + ids.map((id) => `group_ids[]=${encodeURIComponent(id)}`).join('&');
122
+ }
123
+ return await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, query, index);
110
124
  }
111
125
  case 'getPromptAnswer': {
112
126
  const llmId = this.getNodeParameter('llmId', index);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seranking/n8n-nodes-seranking",
3
- "version": "1.5.10",
3
+ "version": "1.5.12",
4
4
  "description": "n8n connector for SE Ranking API - AI Search, Backlinks, Domain Analysis, Keyword Research, Website Audit, Project Management, Project Groups, AI Result Tracker, Keyword Groups, Competitors, URL Tags, Analytics Traffic, Account System, Sub-Account Management, General Data, Marketing Plan, Backlink Checker, Search Volume",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/seranking/n8n-nodes-seranking",