n8n/packages/@n8n/workflow-sdk
José Braulio González Valido 6beed60969
fix(core): Extract workflow-sdk examples to a writable cache dir (#30433)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 09:10:23 +00:00
..
docs feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +00:00
examples feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +00:00
scripts feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +00:00
src fix(core): Extract workflow-sdk examples to a writable cache dir (#30433) 2026-05-14 09:10:23 +00:00
test-fixtures feat(core): Accept merge.input(n) inside ifElse/switch branch targets in workflow-sdk (#29716) 2026-05-07 07:46:06 +00:00
.gitignore feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +00:00
eslint.config.mjs refactor: Rename node-level builderHint.message to searchHint and propertyHint (#30062) 2026-05-08 13:32:50 +00:00
jest.config.js feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +00:00
package.json feat(core): Curate workflow examples for the builder sandbox (#30025) 2026-05-13 06:45:39 +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 chore: Prepare tsconfigs for tsgo (#29230) 2026-04-27 12:30:22 +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