n8n/packages/@n8n/workflow-sdk
n8n-assistant[bot] ed9fa260fa
chore: Resolve master→3.x sync conflict (#34758)
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Stephen Wright <sjw948@gmail.com>
Co-authored-by: n8n-assistant[bot] <100856346+n8n-assistant[bot]@users.noreply.github.com>
Co-authored-by: Charlie Kolb <charlie@n8n.io>
Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Bernhard Wittmann <bernhard.wittmann@n8n.io>
Co-authored-by: Nikhil Kuriakose <nikhil.kuriakose@n8n.io>
Co-authored-by: Albert Alises <albert.alises@gmail.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Andreas Fitzek <andreas.fitzek@n8n.io>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: Robin Braumann <50590409+bjorger@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: yehorkardash <yehor.kardash@n8n.io>
Co-authored-by: Mike Repeć <mike.repec@n8n.io>
Co-authored-by: Yuliia Pominchuk <31064937+yuliia-pominchuk@users.noreply.github.com>
Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io>
Co-authored-by: Kai <kai.hartlage@n8n.io>
Co-authored-by: José Braulio González Valido <jose.gonzalez@n8n.io>
Co-authored-by: Michael Drury <me@michaeldrury.co.uk>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Lorent Lempereur <looorent@users.noreply.github.com>
Co-authored-by: Rodrigo Santos da Silva <rodrigo.silva@n8n.io>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Dmitrii <dmitrii.kulikov@n8n.io>
Co-authored-by: Savelii <savelii.sychov@n8n.io>
Co-authored-by: Arvin A <51036481+DeveloperTheExplorer@users.noreply.github.com>
Co-authored-by: Raúl Gómez Morales <raul00gm@gmail.com>
Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: Yen Su <49794855+yens1@users.noreply.github.com>
Co-authored-by: Nour Alhadi Mahmoud <nour.mahmoud@n8n.io>
Co-authored-by: Eugene <eugene@n8n.io>
Co-authored-by: LevSky22 <56281588+LevSky22@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Sam Wooler <swooler592@gmail.com>
Co-authored-by: Soham Ingle <sohamingle@gmail.com>
Co-authored-by: Vishesh Gupta <vishesh.gupta12@outlook.com>
Co-authored-by: Declan Carroll <declan@n8n.io>
Co-authored-by: Jan Kalkan <jan.kalkan@n8n.io>
Co-authored-by: n8n-assistant[bot] <n8n-assistant[bot]@users.noreply.github.com>
2026-07-23 10:05:19 +02:00
..
scripts test: Migrate @n8n/workflow-sdk from Jest to Vitest (no-changelog) (#31546) 2026-06-03 06:08:31 +00:00
src chore: Resolve master→3.x sync conflict (#34758) 2026-07-23 10:05:19 +02:00
test-fixtures feat: Remove dead nodes (#34327) 2026-07-22 10:43:54 +02:00
.gitignore test: Harden workflow-sdk debug artifact extension against Rolldown (#32089) 2026-06-15 11:17:43 +00:00
eslint.config.mjs perf(ai-builder): Defer heavy idle-boot dependencies (-27 MiB heap) (#30834) 2026-05-21 09:28:39 +00:00
package.json chore: Resolve master→3.x sync conflict (#34758) 2026-07-23 10:05:19 +02:00
README.md feat(ai-builder): Add code-base workflow builder (#24535) 2026-02-10 12:24:27 +00:00
tsconfig.build.json chore: Migrate the rest of packages/@n8n to typescript 7 (#34332) 2026-07-17 10:45:58 +03:00
tsconfig.json chore: Migrate the rest of packages/@n8n to typescript 7 (#34332) 2026-07-17 10:45:58 +03:00
vitest.config.ts test: Enable restoreMocks by default in shared vitest configs (#33526) 2026-07-03 10:03:01 +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