n8n/packages/@n8n/workflow-sdk
Mutasem Aldmour 5c3d271145
fix(workflow-sdk): Use actual map key after auto-rename in add() and to()
When two nodes share the same name, addNodeWithSubnodes() auto-renames
the second (e.g., "Process" → "Process 1"). However, add() and to() were
using node.name instead of the returned map key, causing subsequent
connections to target the wrong node.

- Capture addNodeWithSubnodes return value for _currentNode in add()
- Add InputTarget handling to workflow-level to() method
- Merge existing/new node paths in to() using idempotent addNodeWithSubnodes
- Add InputTarget overload to WorkflowBuilder interface

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:10:31 +01:00
..
scripts feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
src fix(workflow-sdk): Use actual map key after auto-rename in add() and to() 2026-02-13 08:10:31 +01:00
test-fixtures feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
.gitignore feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
eslint.config.mjs feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
jest.config.js feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
package.json perf(core): Optimize generate-node-defs with parallel writes and hash-based skip (#25626) 2026-02-11 13:50:50 +00:00
README.md feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
tsconfig.build.json feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
tsconfig.json feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00

Banner image

@n8n/workflow-sdk

TypeScript SDK for programmatically creating n8n workflows.

Features

  • Fluent builder API for workflow creation
  • Full type safety with TypeScript
  • Code generation from JSON workflows
  • Control flow support (If, Switch, Merge, Loop)
  • Built-in validation
  • AI/LangChain node integration

Usage

import { WorkflowBuilder, manual, httpRequest } from '@n8n/workflow-sdk';

const workflow = new WorkflowBuilder()
  .withName('My Workflow')
  .addTrigger(manual())
  .then(httpRequest({ url: 'https://api.example.com/data' }))
  .build();

License

You can find the license information here