# Node version report: n8n 3.0.1

Instance: Simone Corso

Current release: 2.43.0–2.43.8

Execution mode: regular

| | |
|---|---|
| Node type/version pairs in use | 87 |
| At the target's default version | 47 |
| Behind the target's default version | 39 |
| Not available in the target | 1 |
| Operations covered by the test suite | 29 of 117 |
| Test workflows passed | 21 of 21 |

## Not available in the target release

Workflows using these nodes will not load or run after the upgrade.

| Node | In use | Operation | Target default | Steps behind | Nodes | Workflows | Test result |
|---|---|---|---|---|---|---|---|
| `@n8n/n8n-nodes-langchain.toolSerpApi` | 1 |  |  |  | 1 | 1 | not covered |

## Behind the target's default version

Older typeVersions keep running after an upgrade; the step count is the number of versions the target release ships between the one in use and its default.

| Node | In use | Operation | Target default | Steps behind | Nodes | Workflows | Test result |
|---|---|---|---|---|---|---|---|
| `n8n-nodes-base.googleSheets` | 4 | sheet · read | 4.7 | 7 | 2 | 1 | not covered |
| `n8n-nodes-base.googleSheets` | 4 | sheet · update | 4.7 | 7 | 2 | 1 | not covered |
| `n8n-nodes-base.httpRequest` | 4 |  | 4.5 | 5 | 2 | 2 | pass |
| `n8n-nodes-base.respondToWebhook` | 1 |  | 1.5 | 5 | 2 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.2 | message · post | 2.7 | 5 | 1 | 1 | not covered |
| `n8n-nodes-base.if` | 2 |  | 2.4 | 4 | 8 | 4 | not covered |
| `@n8n/n8n-nodes-langchain.chainLlm` | 1.5 |  | 1.9 | 4 | 2 | 1 | not covered |
| `n8n-nodes-base.respondToWebhook` | 1.1 |  | 1.5 | 4 | 2 | 2 | not covered |
| `n8n-nodes-base.slack` | 2.3 | message · post | 2.7 | 4 | 2 | 1 | not covered |
| `n8n-nodes-base.filter` | 2 |  | 2.4 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.formTrigger` | 2.2 |  | 2.6 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.3 | message · search | 2.7 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.httpRequest` | 4.2 |  | 4.5 | 3 | 21 | 7 | pass |
| `n8n-nodes-base.slack` | 2.4 | message · post | 2.7 | 3 | 1 | 1 | not covered |
| `n8n-nodes-base.switch` | 3.2 | rules | 3.5 | 3 | 1 | 1 | pass |
| `n8n-nodes-base.webhook` | 1.1 |  | 2.2 | 3 | 1 | 1 | not covered |
| `n8n-nodes-base.scheduleTrigger` | 1.2 |  | 1.4 | 2 | 3 | 3 | not covered |
| `n8n-nodes-base.webhook` | 2 |  | 2.2 | 2 | 3 | 3 | not covered |
| `n8n-nodes-base.executeWorkflowTrigger` | 1.1 |  | 1.3 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.if` | 2.2 |  | 2.4 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.set` | 3.3 | manual | 3.5 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.if` | 2.3 |  | 2.4 | 1 | 38 | 15 | pass |
| `n8n-nodes-base.httpRequest` | 4.4 |  | 4.5 | 1 | 31 | 13 | pass |
| `n8n-nodes-base.set` | 3.4 | manual | 3.5 | 1 | 29 | 21 | not covered |
| `n8n-nodes-base.executeWorkflowTrigger` | 1.2 |  | 1.3 | 1 | 11 | 11 | not covered |
| `n8n-nodes-base.scheduleTrigger` | 1.3 |  | 1.4 | 1 | 11 | 11 | not covered |
| `n8n-nodes-base.webhook` | 2.1 |  | 2.2 | 1 | 9 | 8 | not covered |
| `n8n-nodes-base.switch` | 3.4 | rules | 3.5 | 1 | 8 | 8 | pass |
| `@n8n/n8n-nodes-langchain.lmChatGoogleGemini` | 1.1 |  | 1.2 | 1 | 4 | 3 | not covered |
| `n8n-nodes-base.executeWorkflow` | 1.3 | call_workflow · once | 1.4 | 1 | 4 | 4 | not covered |
| `@n8n/n8n-nodes-langchain.vectorStoreSupabase` | 1.3 | insert | 1.4 | 1 | 3 | 3 | pass |
| `n8n-nodes-base.splitOut` | 1 |  | 1.1 | 1 | 3 | 3 | not covered |
| `n8n-nodes-base.filter` | 2.3 |  | 2.4 | 1 | 2 | 2 | pass |
| `n8n-nodes-base.rssFeedRead` | 1.1 |  | 1.2 | 1 | 2 | 2 | not covered |
| `@n8n/n8n-nodes-langchain.memoryBufferWindow` | 1.3 |  | 1.4 | 1 | 1 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.vectorStoreSupabase` | 1.3 | retrieve-as-tool | 1.4 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | csv | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | toJson · once | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | toJson · each | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.gmail` | 2.1 | message · send | 2.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.gmailTrigger` | 1.3 |  | 1.4 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.merge` | 3.1 | combine | 3.2 | 1 | 1 | 1 | pass |
| `n8n-nodes-base.notion` | 2.2 | page · create | 3 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.wait` | 1 |  | 1.1 | 1 | 1 | 1 | pass |

## Not covered by the suite

| Node | In use | Operation | Target default | Steps behind | Nodes | Workflows | Test result |
|---|---|---|---|---|---|---|---|
| `n8n-nodes-base.telegram` | 1.2 | message · sendMessage | 1.2 | 0 | 34 | 16 | not covered |
| `n8n-nodes-base.set` | 3.4 | manual | 3.5 | 1 | 29 | 21 | not covered |
| `n8n-nodes-base.stickyNote` | 1 |  | 1 | 0 | 23 | 19 | not covered |
| `n8n-nodes-base.dataTable` | 1.1 | row · insert | 1.1 | 0 | 17 | 7 | not covered |
| `n8n-nodes-base.whatsApp` | 1.1 | message · send | 1.1 | 0 | 13 | 6 | not covered |
| `n8n-nodes-base.limit` | 1 |  | 1 | 0 | 12 | 4 | not covered |
| `n8n-nodes-base.slack` | 2.7 | message · post | 2.7 | 0 | 12 | 1 | not covered |
| `n8n-nodes-base.executeWorkflowTrigger` | 1.2 |  | 1.3 | 1 | 11 | 11 | not covered |
| `n8n-nodes-base.manualTrigger` | 1 |  | 1 | 0 | 11 | 11 | not covered |
| `n8n-nodes-base.scheduleTrigger` | 1.3 |  | 1.4 | 1 | 11 | 11 | not covered |
| `n8n-nodes-base.respondToWebhook` | 1.5 |  | 1.5 | 0 | 10 | 7 | not covered |
| `@n8n/n8n-nodes-langchain.lmChatOpenRouter` | 1 |  | 1 | 0 | 9 | 8 | not covered |
| `n8n-nodes-base.dataTable` | 1.1 | row · get | 1.1 | 0 | 14 | 7 | not covered |
| `n8n-nodes-base.webhook` | 2.1 |  | 2.2 | 1 | 9 | 8 | not covered |
| `@n8n/n8n-nodes-langchain.toolWorkflow` | 2.2 |  | 2.2 | 0 | 8 | 1 | not covered |
| `n8n-nodes-base.googleSheets` | 4.7 | sheet · appendOrUpdate | 4.7 | 0 | 8 | 2 | not covered |
| `n8n-nodes-base.if` | 2 |  | 2.4 | 4 | 8 | 4 | not covered |
| `n8n-nodes-base.telegram` | 1.2 | message · sendAndWait | 1.2 | 0 | 8 | 5 | not covered |
| `n8n-nodes-base.merge` | 3.2 | append | 3.2 | 0 | 6 | 6 | not covered |
| `@n8n/n8n-nodes-langchain.lmChatMistralCloud` | 1 |  | 1 | 0 | 5 | 4 | not covered |
| `n8n-nodes-base.dataTable` | 1.1 | row · update | 1.1 | 0 | 5 | 3 | not covered |
| `n8n-nodes-base.supabase` | 1 | row · delete | 1 | 0 | 5 | 4 | not covered |
| `@n8n/n8n-nodes-langchain.lmChatGoogleGemini` | 1.1 |  | 1.2 | 1 | 4 | 3 | not covered |
| `@n8n/n8n-nodes-langchain.outputParserStructured` | 1.3 |  | 1.3 | 0 | 4 | 3 | not covered |
| `n8n-nodes-base.dataTable` | 1.1 | row · deleteRows | 1.1 | 0 | 4 | 1 | not covered |
| `n8n-nodes-base.executeWorkflow` | 1.3 | call_workflow · once | 1.4 | 1 | 4 | 4 | not covered |
| `n8n-nodes-base.slack` | 2.7 | channel · replies | 2.7 | 0 | 4 | 1 | not covered |
| `n8n-nodes-base.discord` | 2 | channel · create | 2 | 0 | 3 | 2 | not covered |
| `n8n-nodes-base.errorTrigger` | 1 |  | 1 | 0 | 3 | 3 | not covered |
| `n8n-nodes-base.gmail` | 2.2 | message · send | 2.2 | 0 | 3 | 2 | not covered |
| `n8n-nodes-base.googleSheets` | 4.7 | sheet · read | 4.7 | 0 | 3 | 3 | not covered |
| `n8n-nodes-base.scheduleTrigger` | 1.2 |  | 1.4 | 2 | 3 | 3 | not covered |
| `n8n-nodes-base.splitOut` | 1 |  | 1.1 | 1 | 3 | 3 | not covered |
| `n8n-nodes-base.summarize` | 1.1 |  | 1.1 | 0 | 3 | 3 | not covered |
| `n8n-nodes-base.supabase` | 1 | row · get | 1 | 0 | 3 | 2 | not covered |
| `n8n-nodes-base.webhook` | 2 |  | 2.2 | 2 | 3 | 3 | not covered |
| `n8n-nodes-base.whatsApp` | 1.1 | message · sendTemplate | 1.1 | 0 | 3 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.anthropic` | 1 | text · message | 1 | 0 | 2 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.chainLlm` | 1.5 |  | 1.9 | 4 | 2 | 1 | not covered |
| `n8n-nodes-base.aggregate` | 1 |  | 1 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.airtable` | 2.2 | record · search | 2.2 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.dataTable` | 1.1 | row · upsert | 1.1 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.gmail` | 2.2 | message · delete | 2.2 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.gmail` | 2.2 | message · getAll | 2.2 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.googleSheets` | 4 | sheet · read | 4.7 | 7 | 2 | 1 | not covered |
| `n8n-nodes-base.googleSheets` | 4 | sheet · update | 4.7 | 7 | 2 | 1 | not covered |
| `n8n-nodes-base.html` | 1.2 | generateHtmlTemplate | 1.2 | 0 | 2 | 2 | not covered |
| `n8n-nodes-base.respondToWebhook` | 1 |  | 1.5 | 5 | 2 | 1 | not covered |
| `n8n-nodes-base.respondToWebhook` | 1.1 |  | 1.5 | 4 | 2 | 2 | not covered |
| `n8n-nodes-base.rssFeedRead` | 1.1 |  | 1.2 | 1 | 2 | 2 | not covered |
| `n8n-nodes-base.slack` | 2.3 | message · post | 2.7 | 4 | 2 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.7 | channel · history | 2.7 | 0 | 2 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.memoryBufferWindow` | 1.3 |  | 1.4 | 1 | 1 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.toolSerpApi` | 1 |  |  |  | 1 | 1 | not covered |
| `@n8n/n8n-nodes-langchain.vectorStoreSupabase` | 1.3 | retrieve-as-tool | 1.4 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.airtable` | 2.2 | record · create | 2.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.airtable` | 2.2 | record · update | 2.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | csv | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | toJson · once | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.convertToFile` | 1.1 | toJson · each | 1.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.dateTime` | 2 | formatDate | 2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.executeWorkflowTrigger` | 1.1 |  | 1.3 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.filter` | 2 |  | 2.4 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.formTrigger` | 2.2 |  | 2.6 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.gmail` | 2.1 | message · send | 2.2 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.gmail` | 2.2 | draft · create | 2.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.gmailTrigger` | 1.3 |  | 1.4 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.googleCalendarTool` | 1.3 | event · getAll | 1.3 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.googleDrive` | 3 | file · download | 3 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.hackerNews` | 1 | all · getAll | 1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.html` | 1.2 | extractHtmlContent | 1.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.httpRequestTool` | 4.5 |  | 4.5 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.if` | 2.2 |  | 2.4 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.n8nTrainingCustomerDatastore` | 1 | getAllPeople | 1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.notion` | 2.2 | page · create | 3 | 1 | 1 | 1 | not covered |
| `n8n-nodes-base.readWriteFile` | 1.1 | read | 1.1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.readWriteFile` | 1.1 | write | 1.1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.scheduleTrigger` | 1.4 |  | 1.4 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.set` | 3.3 | manual | 3.5 | 2 | 1 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.2 | message · post | 2.7 | 5 | 1 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.3 | message · search | 2.7 | 4 | 1 | 1 | not covered |
| `n8n-nodes-base.slack` | 2.4 | message · post | 2.7 | 3 | 1 | 1 | not covered |
| `n8n-nodes-base.supabase` | 1 | row · update | 1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.telegram` | 1.2 | message · pinChatMessage | 1.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.telegram` | 1.2 | message · sendPhoto | 1.2 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.webhook` | 1.1 |  | 2.2 | 3 | 1 | 1 | not covered |
| `n8n-nodes-base.whatsAppTrigger` | 1 |  | 1 | 0 | 1 | 1 | not covered |
| `n8n-nodes-base.xml` | 1 | jsonToxml | 1 | 0 | 1 | 1 | not covered |

## Breaking changes from 2.43.0–2.43.8 to 3.0.1

From n8n's breaking change documents, limited to entries that name a node type in use.

- **3.0.0** (Read/Write Files from Disk, Supabase Vector Store, Default Data Loader, OpenAI Chat Model, HTTP Request Tool, Schedule Trigger, Convert to File, HTTP Request, Summarize, Split Out, Aggregate, Supabase, AI Agent, Limit, Sort, Code, HTML): Removed nodes.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md#removed-nodes)
- **3.0.0** (Execute Sub-workflow): Execute Sub-workflow node: Local File and URL sources removed.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md)
- **3.0.0** (Code): $evaluateExpression() removed from the Code node.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md)
- **3.0.0** (AI Agent): AI Agent node: Older agent modes removed.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md#ai-agent-node-older-agent-modes-removed)
- **3.0.0** (Schedule Trigger, Gmail Trigger, Gmail): Gmail Trigger node: Older versions run as version 1.4.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md)
- **3.0.0** (Slack): Slack API credential requires the signing secret.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md)
- **3.0.0** (Code): Changed defaults and removed variables.  [source](https://github.com/n8n-io/n8n-docs/blob/main/docs/changelog/v30-breaking-changes.md)

## Test executions

| Workflow | Source | Expectation | Result | Detail |
|---|---|---|---|---|
| Scenario: Code 2 invoice totals in JavaScript (`scCode2JsOrders1`) | suite | success | pass |  |
| Scenario: Filter 2.3 Italian or express orders (`scFilter23000001`) | suite | success | pass |  |
| Scenario: HTTP Request 4 order sync (`scHttpRequestV4o`) | suite | success | pass |  |
| Scenario: HTTP Request 4.2 order sync with forms (`scHttpRequestV42`) | suite | success | pass |  |
| Scenario: HTTP Request 4.4 order sync with form-urlencoded body (`scHttpRequestV44`) | suite | success | pass |  |
| Scenario: If 2.3 flag orders for manual review (`scIf23000000001`) | suite | success | pass |  |
| Scenario: Loop Over Items 3 invoices in batches of three (`scSplitBatch3001`) | suite | success | pass |  |
| Scenario: Merge 3.1 enrich CRM contacts with orders (`scMerge31000001a`) | suite | success | pass |  |
| Scenario: Merge 3.2 pair labels by position and wait for approval (`scMerge32000001a`) | suite | success | pass |  |
| Scenario: No Operation 1 passes items through (`scNoOp1000000001`) | suite | success | pass |  |
| Scenario: Set 3.5 enrich invoices (`scSet35000000001`) | suite | success | pass |  |
| Scenario: Sort 1 accounts by country then MRR (`scSort1000000001`) | suite | success | pass |  |
| Scenario: Switch 3.2 fan out tickets to every matching team (`scSwitch32000001`) | suite | success | pass |  |
| Scenario: Switch 3.4 classify tickets by subject (`scSwitch34000001`) | suite | success | pass |  |
| Scenario: Wait 1 pauses a reminder for one second (`scWait1000000001`) | suite | success | pass |  |
| Scenario: Wait 1.1 pauses a reminder for one second (`scWait1100000001`) | suite | success | pass |  |
| Smoke: LLM stub (OpenAI and Ollama protocols) (`smokeLlmStub0001`) | recipe | success | pass |  |
| Smoke: Redis (`smokeRedis000001`) | recipe | success | pass |  |
| Smoke: SSH (`smokeSsh00000001`) | recipe | success | pass |  |
| Smoke: Supabase (`smokeSupabase001`) | recipe | success | pass |  |
| Smoke: static files (`smokeStatic00001`) | recipe | success | pass |  |
