
n8n-workflow
Workflow base code for n8n
npm install n8n-workflowLicense
You can find the license information here
Workflow base code of n8n

Workflow base code for n8n
npm install n8n-workflowYou can find the license information here
local shell, update simplify output logic (#20957) (f282b02)QueryDeepPartialEntity (#20556) (dfb1851)__builtins__ dict in native Python runner (#20628) (09c8559)@n8n/eslint-plugin-community-nodes (#20266) (6cb36b5)Replace Node context menu option (#20287) (273840c)n8n-node not working on Windows (#20091) (c3fff03)test and authenticate to OpenWeatherMap, Azure Storage and Netlify credentials (#20221) (18a5924)globals and locals to denylist in native Python runner (#20172) (77d7408)SIGTERM (#20243) (8fa5b57)ctrl+s shortcut when renaming node (#20310) (324ee62)before query parameter when getting many posts or pages (#20041) (3963e97)X items total label when multiple run iterations (#19648) (61edb72)console.log output not being logged on browser (#19422) (1e2f421)0 waiting time input (#19159) (5968403)availableInMCP (#18646) (6432555)@sentry/node-native (#18586) (0f463c7)/module-settings behind auth (#18492) (df54c10)null handling in Python sandbox (#18189) (b5f47ec)execute method to declarative nodes even if they have methods property (#17796) (3f1016f)config.js (#17832) (b745cad)NodeCredentials component (#17564) (3ce9a99)What's New notification in executions demo view (#17742) (cebb1f6)AI_CREDITS_EXPERIMENT (#16840) (d1d5412)EASY_AI_WORKFLOW_EXPERIMENT (#16839) (3e04566)js module in Pyodide (#16957) (bde9008)N8N_SKIP_AUTH_ON_OAUTH_CALLBACK (#16944) (945098d)lintfix command (#17003) (5db122b)Posthog (#16788) (d76f05b)16px for better alignment (#16869) (7ebde66)gemini-2.5-flash (#16651) (3f6eef1)Array#includes method (#16360) (16b0297)--chat--message--font-size not applying correctly (#16310) (ab8a2b0)require.cache (#16072) (8c63ca7)waitingForNext execution state for slow networks (#16143) (5deab75)N8N_LOG_FILE_LOCATION (#15873) (1e5b905)false as a dependant value for public api json schema validation (#15858) (5a8899c)TaskRequester (#15768) (0398505)helpers.request in task runners (#15859) (7f8b943)N8N_CONFIG_FILES (#15406) (ec63a61)now when startedAt is null (#15283) (44ecad5)AI Agent appear before Magento 2 when typing agent (#15302) (d683a54)tournament for nodes test harness (#15346) (0699925)Workflow Tool (#15396) (2b05dbe)execute and execute-batch commands (#15147) (985f554)nodeExecuteBefore message (#14958) (a33e3a8)rowAdded event (#14731) (1593fe3)$evaluateExpression to resolve in task runners (#14641) (7c1be05)parentFolderId is present (#14618) (08e73d3)$evaluateExpression in Codemirror (#14643) (68a8761)Execute previous Node panel after disabled node in Schema view (#14443) (a12c952)null or undefined in type=json columns (#14672) (3add0b8)DynamicStructuredTool and DynamicTool name fields (#14604) (302258d)parentFolder when retrieving workflow (#14656) (bc12f66)indexURL to load the pyodide runtime (#14487) (860bb1e)execute and executeBatch commands (#14381) (84e85c9)AddNodes node type (#14317) (a245a5c)@n8n/n8n-extension-insights extension package (#14360) (b91be49)[@tool](https://github.com/tool) displayOption (#14318) (73748e3)url.includes to check for domain names (#13802) (d3bc80c)test step option in context menu for sub-nodes (#13816) (b6d5092)rewriteFramesIntegration prefix (no-changleog) (#13900) (1eec246)NODE_PATH to task runners (#13652) (906770a)= (#13699) (9e83ff5)index.html caching entirely (#13563) (afba8f9)$items in Code node when using task runner (#13368) (87b3c50)Array.prototype.toSorted (no-chanhelog) (#13463) (f2b15ea)Attempt to Convert Types switch (#13216) (617f841)json property on nodeSuccessData (#13219) (aedea7a)View Execution links for erroneous sub-executions (#13185) (11cf1cd)workflow-post-execute event for waiting executions (#13065) (1593b6c)Fixed for boolean and number parameters with invalid expressions (#12948) (118be24)composables package (#13077) (ef87da4)/workflows endpoint (#13029) (b60011a)workflowExecuteAfter hooks (#12731) (9d76210)hookFunctionsSave and hookFunctionsSaveWorker (#12740) (d410b8f)supportedNodes on generated types as well (#12514) (4a1a999)openselectivenodecreator custom action on new canvas (#12580) (2110e9a)index as top-level item key for Code node (#12469) (1b91000)__default__ jobs in scaling mode (#12402) (072664b)GET credentials/:id (#12447) (ecabe34)managed column to credentials table (#12275) (3cb7081)GET /credentials (#12220) (f56ad8c)NO_COLOR in logs (#12347) (1e60bbc)$getWorkflowStaticData on task runners (#12153) (b479f14)prepareBinaryData) with task runner (#12259) (0f1461f)Control + Left Mouse Button on Windows (#12104) (43009b6)Easy AI Workflow experiment (#12043) (67ed1d2)$item is used (#12036) (872535a)NodeOperationErrror (#11999) (e68c9da)+ key (#12022) (6af9c82)executionFinished push message (#11821) (0313570)crypto.randomUUID() to initialize node id if missing on new canvas (#11873) (bc4857a)Assistant:Messsage operation (#11825) (4dde287)response wrapper requirement from Subworkflow Tool output (#11785) (cd3598a)diagnostics.enabled default value (#11809) (5fa72b0)Execute Workflow node (#11706) (c265d44)email during startup if the SAML configuration in the database has been corrupted (#11600) (6439291)httpRequestWithAuthentication abortable (#11704) (0d8aada)executionFinished event to the browser with no run data if the execution has already been cleaned up (#11502) (d1153f5)projectId in range query middleware (#11590) (a6070af)n8nReady notification via postmessage on new canvas (#11558) (463d101)license-community-plus-registered telemetry event (#11430) (7a8dafe)LoggerProxy is not scoped (#11379) (f4ea943)remove-triggers-and-pollers command is not debounced (#11486) (529d4fc)evaluateExpression (#11397) (2e64464)intermediateSteps when using output parser with non-tool agent (#11363) (e61a853)PUT /credentials/:id should move the specified credential, not the first one in the database (#11365) (e6b2f8e)POST /credentials (#11340) (f495875)toSorted (#11204) (c728a2f)mfa.beforeSetup hook before enabling MFA (#11116) (25c1c32)info to error messages (#11245) (a7fc7fc)regular during worker startup (#11250) (c0aa28c)startedAt when executions start running (#11098) (722f4a8):focus-visible instead for :focus for buttons (#10921) (bf28d09)webhook process (#10781) (86f4877)Datatable component renders All option (#10525) (bc27beb)workflow-post-execute event (#10413) (d98e29e)sanitize-html with xss in XSS validator constraint (#10479) (5dea51a)GET /workflows in Public API (#10379) (5ac65b3)SIGINT for main (#10346) (5255793)new Promise (#10298) (7e95f9e)n8n.workflow.failed (#10253) (3e96b29)User saved credentials telemetry event for OAuth credentials (#10215) (40a5226)Queued in the UI, until they actually start (#10204) (44728d7)$secrets to resolve on credentials (#10093) (bf57f38)csrfSecret when returning oauth credentials to the frontend (#10075) (48f047e)closeFunction (#9980) (6107798)AuditEventRelay (#9839) (16d3083)ws to address CVE-2024-37890 (#9801) (f98c4b8)HooksService (#8962) (dda7901)project:viewer role (#9611) (6187cc5)n8n db:revert (#9473) (3b93aae)components/executions/workflow (#9448) (9c768a0)$vars and $secrets in expressions in credentials fields (#9289) (d92f994)view engine to webhook server to support forms (#9224) (24c3150)MoveSshKeysToDatabase migration (#9120) (cf435c3)settings.executionOrder in workflow creation (#9072) (0c90c7c)status on Axios errors is available to the BE (#9015) (744327c)isLeader check in WaitTracker constructor (#9100) (c2f4d7d)imap-simple to @n8n/imap (#8899) (9f87cc2)nodeCause to paired item error (#8976) (19d9e71)cleanupParameterData (no-chanhelog) (#8910) (33ab781)follow-redirects to address CVE-2024-28849 (#8902) (a10120f)output property (#8913) (024be62)isOwner from IUser interface (#8888) (6955e89)@n8n/chat@0.9.1 (#8918) (e0c303c)cleanupParameterData (no-chanhelog) (#8910) (33ab781)follow-redirects to address CVE-2024-28849 (#8902) (a10120f)output property (#8913) (024be62)isOwner from IUser interface (#8888) (6955e89)@n8n/chat@0.9.1 (#8918) (e0c303c)maxRedirects is used for any http request defining it (#8706) (246c988)closeFunction errors should not prevent a workflow from being deactivated (#8738) (7012577)/workflows/demo route and /nodes.json route (#8506) (4b01335)SHELL env variable on docker images (#8670) (e1a4fde)executions.process is still used in the configs (#8618) (cd8ca84)@n8n/typeorm to address postgres timestamp issues (#8627) (68498cb)updatedAt timestamps in source-control (#8485) (033fd34)n8n --help (#8440) (9f11eba)plus and minus (#8405) (ebf2b0d)moveNodeWorkflow mixin to useCanvasPanning composable (#8322) (b6d7757)moment imports with moment-timezone (#8337) (52a2e25)response.request only when it's a valid circular references (#8293) (05c43fa)Application Server Type (#8325) (e3cedf7)/templates/search endpoint (#8227) (4277e92)authentication type is body (#8201) (ac1c642)Execute --> Test (#8137) (df5d07b)moment import (#8185) (17a4e2e), closes #8184use permission (#8023) (329e5bf)returnIntermediateSteps for AI agents (#8113) (7806a65)/ is typed in a contenteditable element (#7968) (e8a493f)null before destructuring (#7729) (5d4a52d)init before checking leader or follower in multi-main scenario (#7621) (a994ba5)localStorage being blocked/unavailable (#7348) (c05bc67)UserStack design system component (#7559) (ce14f62)localStorage being blocked/unavailable (#7348) (c05bc67)UserStack design system component (#7559) (ce14f62)instanceId from the encryption key (no-changlog) (#7501) (a9fdd01)inviteAcceptUrl in response if email was sent (#7465) (55c6a1b)frontend.settings external hook execution (#7496) (774fe20).json on quoted node name in Code node (#7382) (86e7ec7), closes /linear.app/n8n/issue/PAY-635/autocomplete-only-supports-3-levels-of-children#comment-234f738NodeSSLError only for nodes that allow ignoring SSL issues (#6928) (a01c3fb)continueOnFail for expression error in Set (#6939) (d4fac05)import:workflow command (#6996) (8c38d85)null parse (#6934) (40d3a29)--tunnel option (#6898) (718e613)Continue On Fail is enabled (#6925) (96ff1f8)execution_data table on postgres (#6797) (dc295ac)ApiKey as a secret (#6786) (11a3965)GET /workflows (#6845) (dceff67), closes #6876BinaryDataManager.init (#6633) (329d22f)exec in docker images to forward signals correctly (#6732) (ed9f86b){"success":true} (#6703) (250175d)eslint-config to be externally consumable (#6694) (3566c13)ph-no-capture class from some elements (#6674) (c3455a4)node instead of root (#6365) (f636616)debian and rhel7 images (#6365) (f636616)WEBHOOK_TUNNEL_URL env variable (#6363)main now, instead of own (#6363)websocket now, instead of sse (#6363)node_modules folder (#6396) (a45a2c8)request library and N8N_USE_DEPRECATED_REQUEST_LIB env variable (#6413) (632ea27)executeSingle method on nodes (#4853) (9194d8b)grantType=clientCredentials (#6500) (25b9216)$if, $min and $max from code node autocomplete (#6460) (16f707d)lastNode.firstEntryBinary mode (#6463) (6ccab3e)$ in inline expression field reloading node parameters form (#6374) (4c0d4eb)item and items alias regression (#6331) (54e3838)command is empty (#6308) (011d577)Ask AI only on Code Node (#6336) (da856d1)@typescript-eslint/no-floating-promises (#6281) (e046f65)runData (#6130) (80831cd)item.json key in data pinning (#6135) (91fee0c)Object.keys on Buffer and other non-plain objects (#6131) (a3aba83)hasOwnProperty on augmented objects (#6124) (206b6b9)Authorized decorator, or use Authorized('none') (#6106) (59aee22)Show details summary (#6113) (90a62cc)Stop Listening button (#6125) (20a72bb)[empty] in parameter input hint to zero-length string (#6003) (8862e1e)loadOptionsDependsOn to RLC (#6101) (b17d5f9)hasOwnProperty on augmented objects (#6124) (2f015c0)Authorized decorator, or use Authorized('none') (#6106) (9d44991)Show details summary (#6113) (e12bafb)Stop Listening button (#6125) (dcbd2d2)getExecutionId available on all nodes types (#5990) (8373aab)getExecutionId available on all nodes types (#5990) (c42820e)null and undefined (#5989) (a3664de)workflowExecuteBefore hook when resuming executions from a waiting state (#5727) (6689451)augmentObject should clone Buffer/Uint8Array instead of wrapping them in a proxy (#5902) (a721734)augmentObject should use existing property descriptors whenever possible (#5872) (6a1b7c3)jsonStringify (#5789) (18efaf3)util.types.isProxy for tracking of augmented objects (#5836) (aacbb54)tab to accept completion (#5855) (1b8c35a)augmentObject should clone Buffer/Uint8Array instead of wrapping them in a proxy (#5902) (a877b02)augmentObject should use existing property descriptors whenever possible (#5872) (b1ee8f4)jsonStringify (#5789) (f5183c6)util.types.isProxy for tracking of augmented objects (#5836) (3e413f2)decode-uri-component to address CVE-2022-38900 (#5734) (8dd7f6e)http-cache-semantics to address CVE-2022-25881 (#5733) (f7401fb)luxon to address CVE-2023-22467 (#5731) (469ce32)simple-git to address CVE-2022-25912 (#5730) (4a4e2be)sqlite3 to address CVE-2022-43441 (#5732) (fd81c74)isPending check on the user entity (#5571) (a19ec6a)isPending check on the user entity (#5571) (43eec66).svg (#5525) (f58573d).svg (#5525) (0b568ee).svg (#5525) (a8ca2b1).svg (#5525) (27adea7)GET /workflows response (#5311) (a2c6ea9)PRAGMA foreign_keys (#5392) (3a435f7)Object global completions (#5407) (d7b3923)json field completions while typing (#5309) (07b941a)cli to fix Postgres and MySQL test runs (#5171) (a0c5232)jsonwebtoken to address CVE-2022-23540 (#5116) (97969fc)class-validator to address CVE-2019-18413 (#5139) (14a61f6)pairedItem from proxy completions (#5098) (320e646)undefined (#5038) (33d7a13)nodeGetter checks (#4883) (07b2f76)UNKNOWN ERROR in the response if an actual error message is available (#4859) (4cb4c5e)pairedItem to required n8n item keys (#4821) (915f144)own mode (#4832) (9485e2f)nodes.exclude and nodes.include work with lazy-loaded nodes (#4833) (85241fd)$items().length in Execute Once mode (#4755) (3d67df4)$items().length behavior in executeOnce mode (#4694) (b87c122)$input.first() and $input.last() (#4526) (0edd4bc)CodeNodeEditor linter parser to esprima-next (#4524) (5e0ded4)GET /workflows (#4510) (026fb50)deepCopy backward compatible (#4505) (b282c7e), closes #4508GET /login (#4459) (c66929f)jsonParse() options (#4423) (1732324)predefinedCredentialType in node graph item (#4379) (77233f2)main mode (#4421) (5745027)CodeNodeEditor linter (#4455) (b226aed)BASE_PATH for Vite dev mode (#4342) (24288a5)runData and pinData (#4323) (cd74c3e)N8N_BLOCK_ENV_ACCESS_IN_NODE (#4338) (5df09bb)Zoom Node: Fix issue with missing output items (#4315) (a82fd3f)
feat(Merge Node)!: Node tweaks n8n-4939 (#4321) (6a37071), closes #4321
Merge node: 'Combine' operation was added with 'Combine Mode' option, operations 'Merge By Fields', 'Merge By Position' and 'Multiplex' placed under 'Combine Mode' option. To update -go to the workflows that use the Merge node, select 'Combine' operation and then choose an option from 'Combination Mode' that matches an operation that was previously used. If you want to continue even on error, you can set "Continue on Fail" to true.
index.html (#4262) (cc2a2e4)pairedItem in combination with pinned data (#4257) (e30c78f)X-Powered-By: Express Header (#4224) (a8da9c3)BASE_URL replacement on windows (#4202) (5f0c656)ts-ignore and eslint-disable (#3958) (a73ac1d)USER and WORKDIR changes (#3992) (34a99fd)npm install succeeds (#3934) (2d6eea8)pairedItem for pinned data (#3843) (b1e7152)action to INodePropertyOptions (#3610) (3c65968)node-param-display-name-wrong-for-dynamic-multi-options (#3575) (2ccc7fb)user-management:reset command (#3403) (58ecadf)/executions-current with unsaved workflow (#3280) (7090a79)From Apache 2.0 with Commons Clause to Sustainable Use License
Note: for changelogs before 0.167.0, refer to the Release notes in the documentation.