AutomationFlowsAI & RAG › Keep RAG System Updated with Google Drive File Changes to Supabase Vector Db

Keep RAG System Updated with Google Drive File Changes to Supabase Vector Db

Byedisantosa @edsan on n8n.io

This n8n workflow ensures data freshness in the RAG system by handling modifications to existing files. It complements the "Document Ingestion" workflow by triggering whenever a file in the monitored Google Drive folder is updated.

Event trigger★★★★☆ complexityAI-powered22 nodesSupabaseGoogle DriveHTTP RequestText Splitter Recursive Character Text SplitterOpenAI EmbeddingsDocument Default Data LoaderGoogle Drive TriggerSupabase Vector Store
AI & RAG Trigger: Event Nodes: 22 Complexity: ★★★★☆ AI nodes: yes Added:
Keep RAG System Updated with Google Drive File Changes to Supabase Vector Db — n8n workflow card showing Supabase, Google Drive, HTTP Request integration

This workflow corresponds to n8n.io template #9934 — we link there as the canonical source.

This workflow follows the Documentdefaultdataloader → OpenAI Embeddings recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "YVAwvooLBNvqFhyp",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "RAG System V2 - Update Doc",
  "tags": [
    {
      "id": "X3XA7mO6MQZQ8uNT",
      "name": "RAG",
      "createdAt": "2024-12-23T14:38:50.002Z",
      "updatedAt": "2024-12-23T14:38:50.002Z"
    },
    {
      "id": "bQac7pgkCzmq5Nt5",
      "name": "template",
      "createdAt": "2025-01-14T11:43:47.391Z",
      "updatedAt": "2025-01-14T11:43:47.391Z"
    },
    {
      "id": "pms2jtgY49JCgVDW",
      "name": "chatbot",
      "createdAt": "2024-12-19T04:39:23.549Z",
      "updatedAt": "2024-12-19T04:39:23.549Z"
    }
  ],
  "nodes": [
    {
      "id": "f57918de-1d00-432b-b352-b6013118664a",
      "name": "Set File ID",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        2200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "10646eae-ae46-4327-a4dc-9987c2d76173",
              "name": "file_id",
              "type": "string",
              "value": "={{ $('File Updated').item.json.id }}"
            },
            {
              "id": "f4536df5-d0b1-4392-bf17-b8137fb31a44",
              "name": "file_type",
              "type": "string",
              "value": "={{ $('File Updated').item.json.mimeType }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2899dfbc-2fba-4f35-9805-384dc30eebab",
      "name": "Delete Old Doc Rows",
      "type": "n8n-nodes-base.supabase",
      "position": [
        600,
        2200
      ],
      "parameters": {
        "tableId": "documents",
        "operation": "delete",
        "filterType": "string",
        "filterString": "=metadata->>file_id=like.*{{ $('Set File ID').item.json.file_id }}*"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "aae30af6-491e-48f7-89cb-b6dd2ed5ed9e",
      "name": "Download File",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1540,
        2360
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Set File ID').item.json.file_id }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "text/plain"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 3
    },
    {
      "id": "efdfe418-a0bc-4db1-87e2-5558f00a48ec",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "onError": "continueRegularOutput",
      "position": [
        380,
        2200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "928b5cae-77cd-48a2-81ef-2f76dc441b0a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('File Updated').item.json.mimeType }}",
              "rightValue": "application/vnd.google-apps.document"
            },
            {
              "id": "6368b5ad-32b0-491d-a27d-5cc3ad5c2a11",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ ((Date.now() - Date.parse($('File Updated').item.json.createdTime)) / 1000) }}",
              "rightValue": 60
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "19edee69-a34b-48c7-8f2e-c2547fb226ff",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2300,
        2300
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "93ddcfd1-9320-4808-b636-ae28664f41a8",
      "name": "Summarize",
      "type": "n8n-nodes-base.summarize",
      "position": [
        2500,
        2300
      ],
      "parameters": {
        "options": {},
        "fieldsToSummarize": {
          "values": [
            {
              "field": "data",
              "aggregation": "concatenate"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f864d1f7-39a2-4d36-9dc5-d75fcc08ba7d",
      "name": "Extract PDF Text1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2100,
        1960
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "32d1f985-b143-451e-a6d1-bf3da9f568a1",
      "name": "Extract from Excel1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2100,
        2300
      ],
      "parameters": {
        "options": {},
        "operation": "xlsx"
      },
      "typeVersion": 1
    },
    {
      "id": "2ea2790c-f4ab-4c59-b4b6-0a22e8047f48",
      "name": "Convert to Google Doc2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2100,
        2500
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/drive/v3/files/{{ $('Set File ID').item.json.file_id }}/copy",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $('Set File ID').item.json.name }}"
            },
            {
              "name": "mimeType",
              "value": "application/vnd.google-apps.document"
            }
          ]
        },
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "69166736-3369-4a33-8543-fae475344593",
      "name": "Delete File1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2300,
        2500
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Set File ID').item.json.file_id }}"
        },
        "options": {},
        "operation": "deleteFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "e2574cdd-5d41-4be1-bca5-370d2a8e2ee2",
      "name": "Recursive Character Text Splitter1",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        3080,
        2420
      ],
      "parameters": {
        "options": {},
        "chunkSize": 2000,
        "chunkOverlap": 200
      },
      "typeVersion": 1
    },
    {
      "id": "7dfe4ffd-0fda-4f7d-a005-4e4e9a62048e",
      "name": "Embeddings OpenAI2",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        2820,
        2280
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "394d1238-bf7c-4882-b3ac-6db474140854",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        1820
      ],
      "parameters": {
        "color": 5,
        "width": 3507,
        "height": 1028,
        "content": "# Watch Trigger (Drive) - Files Updated\n## Workflow ini jalan jika ada File yang diupdate/diedit/dimodifikasi.\n# Cara Kerja\n## Cek file yang barusan diupdate -> cek tipe/format file nya lalu konvert jika perlu -> exkstrak teksnya -> upload ke vectord database\n"
      },
      "typeVersion": 1
    },
    {
      "id": "270a7c5d-b9e1-48c1-aa0d-76677c15ab34",
      "name": "Enhanced Default Data Loader2",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        3000,
        2200
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "=file_id",
                "value": "={{ $('Set File ID').item.json.file_id }}"
              },
              {
                "name": "=version",
                "value": "={{ $('Set Version').item.json.message.content.version }}"
              },
              {
                "name": "=creator",
                "value": "={{ $('File Updated').item.json.owners[0].displayName }}"
              },
              {
                "name": "=created_at",
                "value": "={{ $('File Updated').item.json.createdTime }}"
              },
              {
                "name": "=last_modified",
                "value": "={{ $('File Updated').item.json.modifiedTime }}"
              },
              {
                "name": "=folder_path",
                "value": "DOCUMENTS"
              },
              {
                "name": "=file_name",
                "value": "={{ $('File Updated').item.json.name }}"
              },
              {
                "name": "=file_extension",
                "value": "={{ $('File Updated').item.json.mimeType }}"
              }
            ]
          }
        },
        "jsonData": "={{ $json.data || $json.text || $json.concatenated_data }}",
        "jsonMode": "expressionData"
      },
      "typeVersion": 1
    },
    {
      "id": "a82a1191-9271-473a-b4b5-a57217c013b7",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1380,
        2200
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "423cdd3c-a1a8-406f-abb3-5c6f0d04d669",
      "name": "File Updated",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        40,
        2200
      ],
      "parameters": {
        "event": "fileUpdated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1M9h9OnDSWa0kV7_Yj7fdSFHhM57pMPX8",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1M9h9OnDSWa0kV7_Yj7fdSFHhM57pMPX8",
          "cachedResultName": "DOCUMENTS"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2fd0b826-577d-44d7-a3a9-2024bc4ec4cd",
      "name": "Insert into Supabase Vectorstore",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
      "position": [
        2780,
        1960
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "queryName": "match_documents"
        },
        "tableName": {
          "__rl": true,
          "mode": "id",
          "value": "documents"
        }
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "49523689-c6f0-444f-a8b3-ea6a1b4eda39",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        1800,
        2180
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "PDF",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/pdf"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Text File",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "fc193b06-363b-4699-a97d-e5a850138b0e",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/vnd.google-apps.document"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Excel",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2ae7faa7-a936-4621-a680-60c512163034",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Windows Doc(1)",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "7ddfa924-1c26-4ee3-9890-5c9d2b96717a",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Windows Doc(2)",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "f53caf8b-7a8f-4d1e-98f4-deaf0e0171f0",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/msword"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Windows Doc(3)",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "cd9ca627-d00d-4c30-903a-41f603c8e36f",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Set File ID').item.json.file_type }}",
                    "rightValue": "application/vnd.ms-word"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": 2
        }
      },
      "typeVersion": 3
    },
    {
      "id": "c4ea8b5a-695e-438a-8764-96247168dc5b",
      "name": "Extract from Text File1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2100,
        2120
      ],
      "parameters": {
        "options": {},
        "operation": "text"
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "8632f57f-e05e-4cd6-a84e-4111c106702c",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        760,
        2200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0e1b5c79-46a7-49d6-a4ad-934a9f2441a8",
      "name": "Set Version",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        980,
        2200
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "Your goal is to take the incoming version number and add 1 to it. \n\n[Examples]\nInput: v1\nOutput: v2\n\nInput: v2\nOutput: v3\n\nInput: v4\nOutput: v5 \n\nThe output field should always be called \"version\""
            },
            {
              "content": "=incoming version number: {{ $json.metadata.version }}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "55b08438-df0c-4a13-98d0-bcb632d3d8be",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        2900
      ],
      "parameters": {
        "width": 560,
        "content": "## CREDITS\n### This Workflow Is Originally by Nate Herk.\n[Check his community here](https://www.skool.com/ai-automation-society-plus/about)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "fba7627e-45c8-4121-8f6a-123ca7d6c8d0",
  "connections": {
    "If": {
      "main": [
        [],
        [
          {
            "node": "Delete Old Doc Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "Set Version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Extract PDF Text1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from Text File1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from Excel1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert to Google Doc2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert to Google Doc2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert to Google Doc2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Summarize",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize": {
      "main": [
        [
          {
            "node": "Insert into Supabase Vectorstore",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set File ID": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Version": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "File Updated": {
      "main": [
        [
          {
            "node": "Set File ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract PDF Text1": {
      "main": [
        [
          {
            "node": "Insert into Supabase Vectorstore",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI2": {
      "ai_embedding": [
        [
          {
            "node": "Insert into Supabase Vectorstore",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Delete Old Doc Rows": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from Excel1": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Google Doc2": {
      "main": [
        [
          {
            "node": "Delete File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from Text File1": {
      "main": [
        [
          {
            "node": "Insert into Supabase Vectorstore",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enhanced Default Data Loader2": {
      "ai_document": [
        [
          {
            "node": "Insert into Supabase Vectorstore",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter1": {
      "ai_textSplitter": [
        [
          {
            "node": "Enhanced Default Data Loader2",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This n8n workflow ensures data freshness in the RAG system by handling modifications to existing files. It complements the "Document Ingestion" workflow by triggering whenever a file in the monitored Google Drive folder is updated.

Source: https://n8n.io/workflows/9934/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Your AI workforce is ready. Are you?

Google Sheets Tool, Mcp Trigger, Google Drive +29
AI & RAG

This intelligent chatbot leverages cutting-edge financial APIs and AI-driven analysis to deliver comprehensive stock research reports. Get instant access to professional-grade investment analysis that

Tool Think, Supabase Vector Store, OpenAI Embeddings +15
AI & RAG

RAG_Ingest. Uses httpRequest, vectorStoreSupabase, documentDefaultDataLoader, textSplitterRecursiveCharacterTextSplitter. Event-driven trigger; 73 nodes.

HTTP Request, Supabase Vector Store, Document Default Data Loader +4
AI & RAG

This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th

OpenAI, Gmail, Text Classifier +16
AI & RAG

Automate Outreach Prospect automates finding, enriching, and messaging potential partners (like restaurants, malls, and bars) using Apify Google Maps scraping, Perplexity enrichment, OpenAI LLMs, Goog

@Devlikeapro/N8N Nodes Waha, Google Drive Trigger, @Apify/N8N Nodes Apify +14