> For the complete documentation index, see [llms.txt](https://docs.n8n.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.n8n.io/changelog/release-notes.md).

# Release notes

This page is a running log of feature-level updates from each n8n release: what shipped in the editor and the integration nodes, one line per feature, newest first.

The same entries are also published as an [RSS feed](https://raw.githubusercontent.com/n8n-io/n8n-docs/main/feeds/release-notes.xml), so you can subscribe and get new entries directly in your reader.

Use this page alongside n8n's other two release resources depending on what you need:

* [Changelog](/changelog/readme.md): a curated, narrative summary of the most important new features as they're rolled out.
* **Release notes** (this page): a listing of all feature-level updates in each release.
* [GitHub releases](https://github.com/n8n-io/n8n/releases): full change detail of each release, linked to commits, including bug fixes and minor changes.

{% hint style="info" %}
Entries are generated from merged pull requests and reviewed before publishing. Publishing here doesn't guarantee a feature is available to you yet: some ship behind a feature flag you may need to enable, and others roll out gradually to Cloud or self-hosted instances before reaching everyone.
{% endhint %}

## How to update n8n

The steps to update your n8n depend on which n8n platform you use. Refer to the documentation for your n8n:

* [Cloud](/deploy/use-n8n-cloud/update-your-version.md)
* Self-hosted options:
  * [npm](/deploy/host-n8n/install-options/install-with-npm.md)
  * [Docker](/deploy/host-n8n/install-options/install-with-docker.md)

## Semantic versioning in n8n <a href="#semantic-versioning-in-n8n" id="semantic-versioning-in-n8n"></a>

n8n uses [semantic versioning](https://semver.org/). All version numbers are in the format `MAJOR.MINOR.PATCH`. Version numbers increment as follows:

* MAJOR version when making incompatible changes which can require user action.
* MINOR version when adding functionality in a backward-compatible manner.
* PATCH version when making backward-compatible bug fixes.

***

## `n8n 2.31` Notion node overhauled with new API, plus 17 other features <a href="#n8n231" id="n8n231"></a>

**Released:** 2026-07-14

* [Microsoft Excel Node: Rename node to Microsoft Excel (OneDrive)](https://github.com/n8n-io/n8n/pull/33963): The Microsoft Excel node has been renamed to "Microsoft Excel (OneDrive)" to clarify that it operates on workbooks stored in OneDrive. The node's description and in-node notice were updated accordingly, and "OneDrive" was added as a search alias. This is a display-only change; the node's underlying type identifier is unchanged, so existing workflows continue to work without modification.
* [AWS Bedrock Chat Model Node: Expand inference parameters](https://github.com/n8n-io/n8n/pull/33668): The AWS Bedrock Chat Model node now supports five additional optional inference parameters: Top P, Max Retries, Additional Model Request Fields (for model-specific JSON parameters like Claude's top\_k or Nova's inferenceConfig), Latency Optimization, and Guardrail settings. These give users finer control over Bedrock models without switching providers. All new fields are optional and default to prior behavior when unset; invalid JSON in Additional Model Request Fields shows a clear error.
* [AWS IAM Node: Add Assume Role authentication to Cognito and IAM nodes](https://github.com/n8n-io/n8n/pull/32016): The AWS IAM and AWS Cognito nodes now support an Authentication option to choose between AWS (IAM) and AWS (Assume Role) credentials, matching other AWS nodes like S3, Lambda, and SNS. Existing workflows and credentials continue to work unchanged, defaulting to the previous IAM access-key authentication.
* [Remove preview label from Instance-level MCP settings](https://github.com/n8n-io/n8n/pull/34084): Instance-level MCP settings are now generally available. The "preview" label has been removed from the MCP settings sidebar item and the MCP settings page heading, along with its explanatory tooltip, reflecting that the feature is no longer in preview.
* [Zendesk Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/33734): The Zendesk OAuth2 credential now supports custom OAuth scopes. Previously scopes were hardcoded to "read write" and couldn't be changed. A new Custom Scopes toggle lets users enable an editable Enabled Scopes field to request additional Zendesk permissions, and these custom scopes are preserved when reconnecting the credential rather than being reset to defaults.
* [Form Trigger Node: Add "Show Headers" option](https://github.com/n8n-io/n8n/pull/30205): The Form Trigger node now has a new "Show Headers" option, which, when enabled, includes the HTTP request headers from a form submission in the node's output data. Sensitive headers like authorization and cookie values are automatically redacted in execution logs, matching existing Webhook node behavior.
* [Google BigQuery Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/33822): The Google BigQuery OAuth2 credential now supports custom OAuth2 scopes. By default it continues using the required BigQuery scopes, but users can toggle on Custom Scopes to reveal an editable Enabled Scopes field, pre-filled with the defaults, to request additional or narrower permissions. Custom scopes now persist across reconnects instead of resetting to defaults, matching behavior already available for other Google and Slack/Discord OAuth2 credentials.
* [Form Node: Support multiple files when returning binary from form ending](https://github.com/n8n-io/n8n/pull/33780): The Form node's "Return Binary File" completion mode now supports returning multiple files. In the Input Data Field Name(s) setting, you can specify several binary field names separated by commas, and each will be downloaded when the form completion page loads, instead of only the single file supported previously.
* [Link to data tables referenced by ID in resource locator](https://github.com/n8n-io/n8n/pull/33654): In the Data Table node's resource locator, selecting a table by ID now shows a clickable external-link icon, just like list mode. n8n looks up the table across all projects you can access, and only shows the link when it exists and is visible to you. Expressions that resolve to a concrete table ID are also supported.
* [MCP Server Trigger Node: Present credential-connect link via elicitation](https://github.com/n8n-io/n8n/pull/33868): When the MCP Server Trigger blocks a tool call because a required credential isn't connected, the connection link is now presented through the client's native URL elicitation UI (for clients that support it, like ones advertising elicitation.url), instead of appearing as plain text some clients flag as suspicious. Clients without this capability, or if elicitation fails, still receive the original plain-text response with the connection URL, so existing behavior is unaffected for them.
* [Merge Node: Add `NODES_MERGE_SQL_SANDBOX_MEMORY_LIMIT_MB` variable](https://github.com/n8n-io/n8n/pull/33652): Added a new environment variable, NODES\_MERGE\_SQL\_SANDBOX\_MEMORY\_LIMIT\_MB, letting admins configure the memory limit in MB, default 64, for the sandbox used by the Merge node's SQL-based combine mode. This helps avoid out-of-memory errors when processing large datasets in the SQL sandbox by allowing the limit to be increased as needed.
* [Open logs panel on artifact execution and make execute button secondary](https://github.com/n8n-io/n8n/pull/34049): When the AI Assistant shows a workflow artifact, the logs panel now opens automatically as soon as an execution starts (whether triggered by you or the agent), making it easier to watch data flow through nodes. The embedded 'Execute workflow' button is now styled as a secondary action, since the conversation is the main focus. Regular editor behavior is unchanged.
* [Merge Node: Add queryParameters option](https://github.com/n8n-io/n8n/pull/33385): The Merge node's Combine by SQL mode now supports a Query Parameters option, letting you bind values separately from the SQL query text using ? placeholders, similar to the Postgres and MySQL nodes. This helps avoid injecting expression values directly into the query string, improving safety and readability. A notice was added explaining how to use query parameters, with a link to documentation.
* [Notion Node: Migrate to new API and overhaul the node](https://github.com/n8n-io/n8n/pull/33749): The Notion node has been overhauled with a new v3, migrating to Notion API 2026-03-11, which replaces database queries with data sources. It adds a Data Source resource (Get, Search), markdown get/update operations for pages and blocks, JSON block support, file downloads for database pages, and a reorderable block builder. The Notion Trigger now also supports data sources. Database IDs are no longer accepted for database-page query/create; a data source must be selected instead.
* [Add Group/Ungroup context menu actions](https://github.com/n8n-io/n8n/pull/33839): You can now group and ungroup nodes directly from the canvas context menu. Right-clicking a valid node selection shows a new Group option (disabled when the selection can't form a valid group), and right-clicking a group shows Rename group and Ungroup nodes options, making it easier to organize workflows without keyboard shortcuts.
* [Rocketchat Node: Add Subscriptions & IM ops](https://github.com/n8n-io/n8n/pull/31432): The Rocket.Chat node now supports a Subscriptions resource, letting you retrieve all subscriptions or mark a room as read, and a Direct Message (IM) resource to fetch messages from a direct message room, with optional pagination via Return All/Limit. These additions extend the node's API coverage beyond the existing Chat operations.
* [Rename private credentials to end-user credentials](https://github.com/n8n-io/n8n/pull/33629): Renamed "private credentials" to "end-user credentials" throughout the app for consistency. Tooltips, dialogs, credential-type cards, connect-screen text, node/workflow issue messages, and backend errors now use the new terminology. "Private" pills are replaced with an identity icon across the credentials list, node picker, credential header, and canvas badges. Deleting or switching a connected end-user credential to Fixed now shows a type-to-confirm dialog with a correctly pluralized count of affected people, and unsupported-trigger warnings now name the specific trigger.
* [Improve node group selection UX](https://github.com/n8n-io/n8n/pull/33893): Node groups on the canvas now behave like nodes for selection and context menus. Selecting a title bar or all members selects the whole group with a single selection ring, and selection persists through collapse/expand. Group context menus mirror multi-selection actions worded for the group, with new Expand/Collapse all groups and Expand/Collapse selected options, plus keyboard shortcuts. Selection rectangles now fully wrap groups.

***

## `n8n 2.30` Service Principal authentication across Microsoft nodes, plus 12 other features <a href="#n8n230" id="n8n230"></a>

**Released:** 2026-07-07

* [Add certificate authentication to the Microsoft Entra Service Principal credential](https://github.com/n8n-io/n8n/pull/33420): The Microsoft Entra Service Principal credential now supports certificate-based authentication as an alternative to Client Secret. Choose Certificate to reveal Private Key and Certificate (PEM) fields; n8n signs a client assertion (RS256 JWT with SHA-1 thumbprint) for the OAuth token exchange. Client Secret remains the default, and existing credentials continue working unchanged. All nodes using this credential automatically gain certificate support with no changes needed.
* [Include response timestamp in Send and Wait responses](https://github.com/n8n-io/n8n/pull/33283): Send and Wait (Human-in-the-Loop) responses now include a respondedAt field with an ISO-8601 timestamp of when n8n received the reply. It applies to approval, free-text, and custom-form response types, and works automatically across all nodes using Send and Wait, including Slack, Telegram, Discord, WhatsApp, Google Chat, Gmail, Outlook, Email, Microsoft Teams, and the Chat Trigger node. The addition is optional and does not change existing output fields.
* [Deprecate $getPairedItem in the expression editor](https://github.com/n8n-io/n8n/pull/33549): The undocumented $getPairedItem expression helper is now flagged as deprecated in the expression editor, showing an error message when used. It continues to work as before during actual workflow execution, so existing workflows are unaffected; this change only warns users in the editor UI to discourage further use of the helper.
* [Improve data table node](https://github.com/n8n-io/n8n/pull/28199): The Data Table node's "Update" table operation has been renamed to "Rename" to better reflect that it only renames a table. A new "Clear" operation lets you delete all rows from a data table while keeping its structure and ID intact. This clear action is also available via the public API as DELETE /data-tables/{dataTableId}/rows/clear.
* [Microsoft To Do Node: Add Service Principal (app-only) authentication](https://github.com/n8n-io/n8n/pull/33081): The Microsoft To Do node now supports Microsoft Entra Service Principal (app-only) authentication, in addition to existing OAuth2 credentials. Since app-only Graph access has no personal '/me' context, a required User field (UPN or object ID) specifies whose task lists and tasks to manage. Existing OAuth2 workflows are unaffected and continue to work exactly as before.
* [Make data table artifacts editable when AI is not running](https://github.com/n8n-io/n8n/pull/33210): Data table artifacts shown in the AI Assistant are now editable once the agent finishes working: you can edit cells, add or delete rows, and manage columns directly in the preview panel. The grid locks automatically while the agent is streaming, sending a message, or running in the background, and refreshes after each agent edit. Permissions follow the same rules as the main data table view, and read-only source-control branches remain uneditable. Also fixed two edge cases where paste and column dragging could bypass read-only restrictions.
* [Microsoft Teams Node: Add Service Principal (app-only) authentication](https://github.com/n8n-io/n8n/pull/33105): The Microsoft Teams action node and Trigger node now support authenticating via a Microsoft Entra Service Principal (app-only) credential, alongside existing Teams OAuth2 and generic Microsoft Graph OAuth2 options. This enables app-only automation for listing teams, channel operations, Planner tasks, and channel message retrieval, plus New Channel/Channel Message/Team Member triggers. Chat-related resources and some operations remain unavailable under this credential, with clear in-node notices and friendly errors. Existing OAuth2 workflows are unaffected.
* [Render AI Assistant reasoning as separate blocks in the run timeline](https://github.com/n8n-io/n8n/pull/33676): AI Assistant chat now shows reasoning as separate collapsible blocks placed where they actually occurred during a run, instead of merging all reasoning into one block at the top of the message. As the assistant streams through multiple steps and tool calls, each reasoning stage appears interleaved in order, both live and after reloading the page. Older conversations still display their reasoning as a single top block.
* [Kafka Node: Add mTLS (client certificate) authentication](https://github.com/n8n-io/n8n/pull/33236): The Kafka credential now supports mutual TLS (mTLS) authentication, letting n8n connect to brokers that require a client certificate. When SSL is enabled, you can optionally provide a CA certificate, client certificate, and client private key, plus an 'Ignore SSL Issues' toggle for testing. This applies consistently to the Kafka node, Kafka Trigger, and credential test. Existing SSL and SASL credentials are unaffected, and invalid or incomplete certificate/key pairs now fail with a clear error instead of an opaque TLS handshake failure.
* [Show private credential icon on execution list runs](https://github.com/n8n-io/n8n/pull/32957): Execution lists now show an icon when a run used a private (end-user-resolved) credential, even if the node using it errored. The icon appears in both the workflow-level executions sidebar and the global project executions table, with a tooltip explaining it ran using end-user credentials. This helps identify executions involving dynamically resolved credentials at a glance.
* [NDV one-line credential row with connect/connected/disconnect states](https://github.com/n8n-io/n8n/pull/33371): The credential section in the node editing view (NDV) has been redesigned into a compact one-line row showing the credential name, a private-credential indicator, and a clear connection status. Users see a red dot with 'Not connected' and a Connect button, or a green dot with a 'Connected' dropdown offering Modify and Disconnect. Disconnecting now shows a confirmation dialog with a 'Don't show again' option, making it clearer to separate template editing from personal account connection.
* [Read-only credential view and connect banner for private credentials](https://github.com/n8n-io/n8n/pull/33055): Users with read-only access to private credentials now see the full credential form with disabled fields instead of an empty modal. A new credential:connect permission lets members without edit rights authorize or reconnect OAuth credentials directly, without triggering a misleading save. This capability is now assignable in the custom-role editor, and the read-only notice for team-owned credentials has been reworded for clarity.
* [Microsoft Excel Node: Add Service Principal (app-only) authentication](https://github.com/n8n-io/n8n/pull/33014): The Microsoft Excel node now supports Microsoft Entra Service Principal (app-only) authentication alongside existing OAuth2 credentials. Since app-only Graph access has no personal drive context, a new "Access As" option lets you target a specific user, drive, or site by ID. Existing OAuth2-based Excel workflows continue to work unchanged, as the authentication selector defaults to the prior OAuth2 credential. Workbook search/list is not supported under this new credential type; workbooks must be referenced by ID.

***

## `n8n 2.29` Microsoft Entra Service Principal authentication support, plus 13 other features <a href="#n8n229" id="n8n229"></a>

**Released:** 2026-06-30

* [Add AI disclaimer to Instance AI chat](https://github.com/n8n-io/n8n/pull/33101): The Instance AI chat now displays a small, muted disclaimer beneath the message composer reading "AI can make mistakes. Check important info." This appears only within an active chat thread, reminding users to verify important information from AI responses, consistent with similar notices in other AI chat tools.
* [Add instance role permission grouping config and selector](https://github.com/n8n-io/n8n/pull/32907): Added internal groundwork for a future instance role permission editor, introducing a grouping config that organizes permission scopes by resource (e.g. Members, Roles, API keys, Tags) into simpler options like View/Manage. Also reorganized the roles feature folder structure internally. This is not yet exposed in any user-facing screen and has no visible effect for users in this release.
* [Add Microsoft Entra Service Principal credential](https://github.com/n8n-io/n8n/pull/32759): Added a new Microsoft Entra Service Principal credential for app-only authentication to Microsoft Graph using a client secret (OAuth2 client\_credentials grant). It supports Global, US Gov, US Gov DOD, and China cloud environments, automatically requests the correct token host and scope, and caches/refreshes access tokens. This credential is not yet wired to any node; certificate-based sign-in is planned for a future release.
* [Snowflake Node: Add optional origin hostname support](https://github.com/n8n-io/n8n/pull/29653): The Snowflake credential now supports an optional Origin Hostname field, letting users specify a custom host for connections that go through a proxy or require an explicit hostname instead of the default account-derived address. Existing connections are unaffected if the field is left blank, and standard Snowflake setups continue to work as before.
* [Update AI Assistant input disclaimer copy](https://github.com/n8n-io/n8n/pull/33213): Updated the disclaimer text shown below the AI Assistant input field. It now reads "Preview version. AI can make mistakes; always verify responses." instead of the previous "AI can make mistakes. Check important info." This clarifies that the AI Assistant is a preview feature and encourages users to verify its responses.
* [Slack Node: Add schedule message and look up user by email operations](https://github.com/n8n-io/n8n/pull/31243): The Slack node now supports four new operations: looking up a user by email address, scheduling a message to be sent at a future date/time, deleting a previously scheduled message, and retrieving a list of pending scheduled messages with optional channel/date filters. These are additive operations with no changes to existing workflows or node versioning.
* [GitHub Node: Add GitHub App API credential](https://github.com/n8n-io/n8n/pull/31235): The GitHub and GitHub Trigger nodes now support authenticating via a GitHub App credential, in addition to the existing personal access token and OAuth2 options. Users can configure App ID, Installation ID, and a private key; n8n handles JWT signing and installation access token retrieval automatically, refreshing tokens as needed for API requests.
* [Microsoft Outlook Node: Add Service Principal (app-only) authentication](https://github.com/n8n-io/n8n/pull/33098): The Microsoft Outlook node (v2) and Outlook Trigger now support Microsoft Entra Service Principal (app-only) authentication, alongside existing OAuth2 options. When selected, a required Mailbox field (UPN or object ID) specifies which mailbox to act on, since app-only Graph access has no '/me'. All resources—messages, drafts, contacts, calendars, events, folders, and attachments—work against the chosen mailbox, and the trigger polls it too. Existing OAuth2 workflows are unaffected.
* [Show AI Assistant disclaimer only after the AI responds](https://github.com/n8n-io/n8n/pull/33234): In the AI Assistant panel, the input disclaimer ('Preview version. AI can make mistakes; always verify responses.') now only appears once the assistant has produced a visible response. It stays hidden on an empty thread and while your first message is still being processed, reducing clutter before there's actually an AI reply to caveat.
* [xAI Grok Chat Model Node: Add reasoning effort and priority options](https://github.com/n8n-io/n8n/pull/32931): The xAI Grok Chat Model node now supports two new options: Reasoning Effort (none, low, medium, high) to control how much the model thinks before responding, and Enable Priority to request higher scheduling priority via xAI's priority processing tier. Both settings are sent as part of the request to the xAI API and only apply on reasoning-capable Grok models that support them.
* [Add instance role create/edit/view page behind env flag](https://github.com/n8n-io/n8n/pull/32942): Added a create, edit, and read-only view for instance-level (global) custom roles, available behind the N8N\_ENV\_FEAT\_CUSTOM\_INSTANCE\_ROLES flag on Enterprise licenses with Custom Roles. Admins can define custom instance roles with selected scopes, base them on presets matching system roles, and manage them via duplicate and delete actions, while system roles remain view-only. Requires the appropriate role:manage permission.
* [Allow assigning custom instance roles and restyle the Users page role dropdown](https://github.com/n8n-io/n8n/pull/33029): Custom instance roles can now be assigned to users throughout the admin experience: in the Invite Users modal, the Users table role dropdown, the reinvite flow, and personal settings, where they display correctly once assigned. Roles not covered by the current license appear disabled rather than hidden. The Users page role dropdown has also been restyled to match the project-roles dropdown design, with shared underlying components reducing duplicated logic.
* [Microsoft OneDrive Node: Add Service Principal (app-only) authentication](https://github.com/n8n-io/n8n/pull/32911): The Microsoft OneDrive node and trigger now support an app-only Microsoft Entra Service Principal credential, letting workflows run without a signed-in user by targeting a specific User, Drive, or Site. A new Move operation is added for files and folders. Search is disabled with this credential (Graph limitation), showing a clear message instead of a raw error. Existing OAuth2-based workflows are unaffected.
* [Add reusable PrivateCredentialIcon component](https://github.com/n8n-io/n8n/pull/32866): Workflows with private (dynamically resolved) credentials now show a compact key icon with a tooltip on workflow cards, replacing the previous badge. Also fixed a bug where searching credential types in the 'Add credential' modal could throw a 'Maximum call stack size exceeded' error in development mode; search now filters reliably by credential name.

***

## `n8n 2.28` GitHub node adds pull request resource, plus 27 other features <a href="#n8n228" id="n8n228"></a>

**Released:** 2026-06-23

* [Microsoft Teams Node: Accept the generic Microsoft OAuth2 (Graph) credential](https://github.com/n8n-io/n8n/pull/32455): The Microsoft Teams action node and Trigger now support a new Authentication option, letting you choose between the existing Teams-specific OAuth2 credential (default) or the generic Microsoft OAuth2 (Graph) credential. This lets enterprises using Entra-managed Graph app registrations authenticate Teams workflows centrally. Existing workflows continue to work unchanged since the Teams credential remains the default.
* [AWS Transcribe Node: Add AWS Assume Role authentication](https://github.com/n8n-io/n8n/pull/32017): The AWS Transcribe node now supports AWS Assume Role authentication, in addition to standard AWS (IAM) credentials. A new Authentication dropdown lets users choose between AWS (IAM) and AWS (Assume Role), with requests signed using temporary credentials obtained via role assumption when selected. Existing workflows using static IAM credentials continue to work unchanged, as IAM remains the default authentication method.
* [Compression Node: Add tar and tar.gz support](https://github.com/n8n-io/n8n/pull/32547): The Compression node now supports tar archives. Decompress handles .tar, .tar.gz and .tgz files, which previously produced empty output silently; unsupported formats like .rar now raise a clear error. Compress adds two new output formats, Tar and Tar (Gzip), bundling input binary fields into a single archive with the same File Name/output field UX as Zip. Includes size, entry-count, path-traversal and symlink safeguards matching the existing zip handling.
* [Google Calendar Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/32661): Google Calendar OAuth2 credentials now support a Custom Scopes toggle. By default, scopes remain unchanged for existing credentials, but users can enable the option to reveal an editable Enabled Scopes field, pre-filled with the current defaults, allowing them to request additional or different OAuth permissions when connecting. Manually entered scopes now persist across credential reconnects.
* [Google Cloud Storage Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/32659): The Google Cloud Storage node's OAuth2 credential now supports a Custom Scopes toggle. By default it behaves exactly as before, but enabling the toggle reveals an editable Enabled Scopes field pre-filled with the standard scopes, letting users request additional or different permissions. Manually entered scopes are preserved across reconnects, matching behavior already available for credentials like Strava, Wordpress, Figma, and Discord.
* [Google Sheets Trigger Node: Add Service Account credential support](https://github.com/n8n-io/n8n/pull/32312): The Google Sheets Trigger node now supports Service Account authentication in addition to OAuth2, matching the regular Google Sheets node. Select Service Account and choose a Google Service Account credential to enable server-to-server, non-interactive authentication. Existing OAuth2 workflows are unaffected, remaining the default with saved settings preserved. Row update detection now works correctly under Service Account auth by requesting the minimal additional Drive read-only scope needed.
* [Microsoft To Do Node: Accept the generic Microsoft OAuth2 (Graph) credential](https://github.com/n8n-io/n8n/pull/32492): The Microsoft To Do node now supports a new Authentication dropdown, letting you choose between the existing node-specific OAuth2 credential (default) or the generic Microsoft OAuth2 (Graph) credential. This lets enterprise or Entra-managed tenants authenticate To Do using a centrally administered Graph app registration with the Tasks.ReadWrite scope. Existing saved workflows continue working unchanged, as the default remains the original credential type.
* [Microsoft To Do Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/32538): The Microsoft To Do OAuth2 credential now supports custom scopes. A new Custom Scopes toggle lets users reveal an editable Enabled Scopes field, pre-filled with the default scopes (openid offline\_access Tasks.ReadWrite), so additional Microsoft Graph permissions can be requested. When the toggle is off, behavior is unchanged and existing credentials keep working as before.
* [Rename n8n Connect usage table header from Model to Resource](https://github.com/n8n-io/n8n/pull/32448): In Settings → n8n Connect, the usage history table column previously labeled "Model" is now labeled "Resource" to better reflect non-model providers such as Firecrawl. This is a label-only change; the underlying data and API field remain the same.
* [AI Agent Node: Add binary PDF passthrough for models with native PDF support](https://github.com/n8n-io/n8n/pull/28038): AI Agent node now supports a new 'Automatically Passthrough Binary PDFs' option, alongside the existing image passthrough option. When enabled, binary PDF attachments are converted to base64 and sent to the model as file content, letting agents connected to models with native PDF support (e.g. Google Gemini) read PDF documents directly without extracting text first. A configurable size limit (default 50 MB) prevents oversized files from being sent.
* [Improve credential saving UX for OAuth credentials](https://github.com/n8n-io/n8n/pull/32653): Improved the credential saving experience for OAuth credentials. The Save button is now always visible instead of hidden until an account is connected, and stays disabled until required fields are filled and a change is made. Save/Saved states now transition smoothly, a success toast appears on every save, and the "Connect your account" banner has moved below the private credentials toggle, removing a redundant standalone connect button.
* [Microsoft Excel 365 Node: Accept the generic Microsoft OAuth2 (Graph) credential](https://github.com/n8n-io/n8n/pull/32434): The Microsoft Excel 365 node (v2) now supports the generic Microsoft OAuth2 (Graph) credential alongside the existing Excel-specific credential. A new Authentication dropdown lets you choose between them, defaulting to the original Excel OAuth2 credential so existing workflows continue to work unchanged. This aligns Excel 365 with other Microsoft nodes adopting shared Graph authentication.
* [Microsoft Graph Security Node: Support authenticating with the generic Microsoft OAuth2 credential](https://github.com/n8n-io/n8n/pull/32529): The Microsoft Graph Security node now offers an Authentication option letting you choose between the existing node-specific Graph Security OAuth2 credential (default, unchanged) or the generic Microsoft OAuth2 credential, useful for enterprise/Entra-managed tenants using a single centrally administered Graph app registration. Existing workflows continue working without changes. The generic option requires the SecurityEvents.ReadWrite.All offline\_access scope with admin consent.
* [Microsoft Outlook Node: Accept the generic Microsoft OAuth2 (Graph) credential](https://github.com/n8n-io/n8n/pull/32531): The Microsoft Outlook v2 action node and Outlook Trigger now also accept the generic Microsoft OAuth2 (Graph) credential, in addition to the existing Outlook-specific OAuth2 credential. This lets you reuse a single Microsoft Graph credential across Outlook, OneDrive, and Excel nodes. Existing workflows using the Outlook-specific credential continue to work unchanged, as this is fully backward compatible.
* [Telegram Node: Add rich message and message draft operations](https://github.com/n8n-io/n8n/pull/32173): The Telegram node now supports three new Message operations: Send Message Draft, Send Rich Message, and Send Rich Message Draft. Message drafts stream a live 'generating...' preview to users, while rich messages let you send richly formatted content (headings, lists, tables, media, quotes) via Markdown or HTML without manually building the underlying object structure. These operations reuse existing Chat ID and additional-fields settings, and require no node version upgrade.
* [Add rotate action for API keys](https://github.com/n8n-io/n8n/pull/32342): You can now rotate your own API keys from Settings > n8n API. Choosing Rotate from the row menu re-issues the key's secret while keeping its name, scopes and expiration, immediately invalidating the old secret. A confirmation dialog warns that the current key stops working, then the new key is shown once for copying. Rotate is unavailable for expired keys or keys owned by other users.
* [GitHub Node: Add Pull Request resource with create, update, merge, comments, diff and patch](https://github.com/n8n-io/n8n/pull/32261): The GitHub node now includes a dedicated Pull Request resource. It supports creating pull requests (including cross-fork and draft PRs), updating title/body/state/base branch, closing and reopening, fetching a single PR, adding and editing comments, retrieving raw diffs and patches, and merging with merge, squash, or rebase methods, including merge-queue handling.
* [Google Sheets Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/32660): The Google Sheets OAuth2 credential now supports a Custom Scopes toggle. When enabled, an Enabled Scopes field appears, pre-filled with the current defaults, letting users request additional OAuth scopes beyond what n8n normally asks for. Existing credentials are unaffected: default behavior and scopes remain unchanged unless the toggle is turned on. Custom scopes also persist across credential reconnects.
* [Add owner filter to API keys "All" tab](https://github.com/n8n-io/n8n/pull/32430): Admins with API key management permissions can now filter the API keys "All" tab by owner, using a new multi-select control next to the search box. It supports live search, per-owner key counts, a clear/reset option, and defaults to showing all owners. The filter is hidden on the Mine tab and only applies for users with the appropriate permission.
* [Add Roles settings area with instance roles tab](https://github.com/n8n-io/n8n/pull/32775): Behind the N8N\_ENV\_FEAT\_CUSTOM\_INSTANCE\_ROLES flag, the Settings menu entry 'Project roles' is renamed to 'Roles' and now opens a tabbed page with Instance roles (default) and Project roles tabs. The instance roles tab lists system and custom instance roles with member counts, locking system roles from destructive actions while allowing duplicate/delete on custom ones. Old /settings/project-roles links redirect to the new page. Behavior is unchanged when the flag is off.
* [LoneScale Node: Add Contact (enrich, source) and Company (search) resources](https://github.com/n8n-io/n8n/pull/32009): The LoneScale node now supports three new operations: Contact Enrich (add email, phone, or profile data to a contact), Contact Source (find contacts at a company matching given personas and filters), and Company Search (look up a company by domain, LinkedIn ID, slug, or name, with optional enrichment). Existing List and Item resources and the LoneScale Trigger node are unchanged, and the same LoneScale API credential is reused.
* [Phantombuster Node: Add Launch Sync operation](https://github.com/n8n-io/n8n/pull/31101): The Phantombuster node's Agent resource now supports a Launch Sync operation, which calls the /agents/launch-sync endpoint to run an agent and return its result in a single node execution, without needing a separate fetch step. It streams and parses NDJSON output, automatically reconnects if the stream disconnects before completing, and surfaces agent errors directly in the workflow.
* [Surface execution data size in the executions view](https://github.com/n8n-io/n8n/pull/32505): The Executions view now shows the total execution data size (JSON plus binary data, e.g. 144KB) in the execution detail header, alongside the running time and execution ID. The segment is hidden when there is no recorded data size. This is a frontend-only change; the underlying size data was already tracked and served by the API.
* [Webhook Node: Add "Only Run If" option to filter requests](https://github.com/n8n-io/n8n/pull/28872): The Webhook node now supports an "Only Run If" option that lets you filter incoming requests with an expression evaluated against the request data (body, headers, params, query). Requests that don't match the condition receive a 200 response without triggering an execution, reducing no-op runs. If the expression fails to evaluate, the request is allowed through and a warning is logged.
* [Render workflow history and template previews natively](https://github.com/n8n-io/n8n/pull/32468): Workflow previews in the template detail page and workflow history panel now render natively instead of in an iframe, removing the postMessage handshake. Previews load faster and more reliably, display read-only, and never show pin data. Template previews also correctly resolve community node icons and shapes.
* [Investigate failed executions on Instance AI editor hand-offs](https://github.com/n8n-io/n8n/pull/32675): Instance AI editor hand-offs now recognize failed executions: opening the assistant from a node error or a failed canvas run starts a new thread asking the agent to investigate, instead of a blank greeting. Fixed a bug where using Ask AI Assistant from a node's error view could leave a blank screen due to the node detail view not closing before navigation. Also, credential setup questions in a new tab no longer misleadingly reference a node name, while in-thread credential questions still do.
* [Open the current workflow and credentials in Instance AI from the editor](https://github.com/n8n-io/n8n/pull/32398): When Instance AI is enabled, the editor's AI entry points now hand off to Instance AI instead of the built-in builder panel. Clicking the canvas AI button, 'Build with AI', or 'Ask AI Assistant' on a node error opens a new Instance AI thread with the current workflow (and its execution) attached as an artifact. In credential setup, 'Ask AI Assistant' opens Instance AI in a new tab with a setup question, or appends to the current thread if already inside an Instance AI artifact.
* [Redesign API key scope picker with grouped tree](https://github.com/n8n-io/n8n/pull/32167): The API key create/edit modal now uses a redesigned scope picker instead of a multi-select dropdown. Choose All, Read only, or Custom via a radio group, see a live count of selected scopes, and browse a searchable, grouped tree organized by domain (workflows, credentials, data tables, projects, folders/tags, members, instance operations) with tri-state group checkboxes and read/write badges per scope.

***

## `n8n 2.27.4` Google Ads node upgraded to API v21 <a href="#n8n2274" id="n8n2274"></a>

**Released:** 2026-06-24

* [Google Ads Node: Upgrade API from v20 to v21](https://github.com/n8n-io/n8n/pull/32791): The Google Ads node now uses Google Ads API v21 instead of the deprecated v20, updating all endpoint URLs used for credential testing, campaign search, and related requests. This ensures continued compatibility with Google Ads as v20 is phased out.

***

## `n8n 2.27` Create variables and data tables from add menu, plus 17 other features <a href="#n8n227" id="n8n227"></a>

**Released:** 2026-06-16

* [Add docs links for data redaction](https://github.com/n8n-io/n8n/pull/32220): Data redaction settings and prompts now include 'Learn more' links to the official documentation. Links have been added to the Security settings' data redaction section, workflow settings redaction tooltips, the redacted-data state shown in the node input/output panels and logs, and the reveal-data warning modal. All links open the execution data redaction docs in a new tab, making it easier for users to understand redaction behavior and enforcement options.
* [JWT Node: Support custom header claims for the Sign operation](https://github.com/n8n-io/n8n/pull/31918): The JWT node's Sign operation now supports an optional Header Claims (JSON) field, letting you add custom JWT header parameters such as x5t, x5c, or kid. Explicit values override the auto-generated alg/typ/kid. This enables use cases like Microsoft Entra (Azure AD) certificate client assertions. Leaving the field empty (the default) preserves existing behavior with no impact on current workflows.
* [Kafka Node: Add Schema Registry credential type](https://github.com/n8n-io/n8n/pull/32026): The Kafka node and Kafka Trigger now support a new optional Schema Registry credential, enabling connections to authenticated Confluent Schema Registries (e.g. Confluent Cloud) via HTTP Basic Auth. Existing workflows using the plain Schema Registry URL parameter continue to work unchanged. Also improves error handling: misconfiguration now fails with clear messages, and registry errors are logged without leaking sensitive data.
* [Microsoft OneDrive Node: Support the generic Microsoft OAuth2 credential](https://github.com/n8n-io/n8n/pull/32295): The Microsoft OneDrive node and trigger now support the generic Microsoft OAuth2 API credential, in addition to the existing OneDrive-specific credential. A new Authentication option lets you choose which credential to use, so you can reuse a single Microsoft Graph credential (with appropriate scopes like Files.ReadWrite.All) across OneDrive and other Microsoft nodes. Existing workflows default to the previous credential and are unaffected.
* [Allow creating variables and data tables from the universal add menu](https://github.com/n8n-io/n8n/pull/32079): You can now create variables and data tables directly from the global "+" add menu, with submenus to choose the scope (Global, Personal, or a team project); options are disabled based on permissions or read-only branches. The Variables tab is now also visible in personal projects. Additionally, on a fresh instance with no workflows, the empty-state view now also checks for existing credentials, variables, and data tables before showing the simplified layout.
* [Force Microsoft account selection on OAuth for all Microsoft credentials](https://github.com/n8n-io/n8n/pull/32015): Microsoft OAuth2 connections now always show Microsoft's account chooser when signing in, instead of silently reusing the browser's active session. This makes it easier to connect a credential to a specific account, such as a shared mailbox or shared SharePoint site. Affects Outlook, SharePoint, OneDrive, Teams, Dynamics, Entra, Excel, Graph Security, To Do, and Azure Storage credentials. Existing authorized credentials are unaffected; only new connections or re-authentications show the chooser. Azure Monitor OAuth2 is not affected.
* [GitHub Node: Introduce get members operation on organization resource](https://github.com/n8n-io/n8n/pull/23822): The GitHub node now supports a new Get Members operation under the Organization resource, letting users retrieve all members of a specified GitHub organization. It supports pagination via the existing Return All and Limit options, consistent with other list operations in the node.
* [Pipedrive Trigger Node: Allow lead entities to be triggered upon](https://github.com/n8n-io/n8n/pull/23977): The Pipedrive Trigger node now includes Lead as a selectable entity type, letting workflows trigger on lead-related events directly without needing a workaround. Previously, Lead was missing from the entity options list.
* [Show the workflow name on the OAuth consent screen](https://github.com/n8n-io/n8n/pull/32362): When authorizing OAuth access to a per-workflow MCP resource, the consent screen now names the specific workflow being authorized (e.g. "{client} requests access to workflow {workflowName}") instead of showing only generic instance-wide permissions, improving transparency and phishing resistance. Instance-wide MCP authorizations remain unchanged. If the target workflow becomes unavailable before consent, users now see a clear error instead of a broken screen.
* [Use an action menu for API key row actions](https://github.com/n8n-io/n8n/pull/32339): In Settings → n8n API, each API key row now uses a single kebab (three-dot) action menu instead of separate inline buttons. Keys you own show Edit and Revoke; keys owned by others show View and Revoke, opening the read-only or edit modal accordingly. This tidies up the row layout and aligns the action menu with the rest of n8n's UI.
* [MCP Server Trigger Node: Add n8n OAuth2 authentication option](https://github.com/n8n-io/n8n/pull/32326): The MCP Server Trigger node (v2+) now supports 'n8n OAuth2' as an authentication option, letting workflows require a valid OAuth 2.1 bearer token scoped to the workflow's MCP endpoint. Requests without a valid token receive 401 with a discovery header, or 503 if the OAuth server is unavailable. Requires the oauth-server module; works with dedicated webhook processes in queue mode. Older v1 nodes cannot use this option.
* [Open API key modal in read-only mode for non-owners](https://github.com/n8n-io/n8n/pull/32254): In Settings → API, clicking on another user's API key row now opens a read-only modal instead of jumping straight to a delete confirmation. The modal displays the owner's email in the title, shows disabled Label and Scopes fields, and offers Close and Revoke actions. Revoke still triggers the existing confirmation dialog and delete flow. Viewing and editing your own API keys is unchanged.
* [Rewrite icon picker with search, full Lucide set, emoji sections, and color/skin tone pickers](https://github.com/n8n-io/n8n/pull/25649): The icon picker used for projects has been rewritten with a searchable interface covering all 1,626 Lucide icons and 1,914 categorized emojis. New additions include debounced search, virtualized scrolling for smooth performance, an icon color picker, a skin tone picker for emojis, categorized browsing, and a shuffle button. Icons and emojis now load lazily for faster picker opening, and selected colors are saved with the icon.
* [Computer use supports reading local pdf and image files](https://github.com/n8n-io/n8n/pull/30704): Computer Use can now read PDF and image files (PNG, JPEG, GIF, WebP) from the local filesystem, letting AI models analyze them directly, with results displayed inline in the tool response viewer. The maximum file size for read and write operations has also been increased from 512 KB to 1 MB. Unsupported binary formats, like audio and video, still return an error.
* [Redesign API key created modal](https://github.com/n8n-io/n8n/pull/32256): The API key created confirmation modal has been redesigned. It now shows an updated title, a hint, and the new key displayed inline in a single-line bordered field with the first and last 30 characters shown separated by an ellipsis, plus a copy icon button. Clicking copy still copies the full key. This replaces the previous card-based layout with a hover-reveal copy box.
* [Calendly Trigger Node: Deprecate API key auth and default to OAuth2](https://github.com/n8n-io/n8n/pull/28367): The Calendly Trigger node has been updated since Calendly discontinued API key authentication. The node is now versioned: the new default version (v2) only supports OAuth2 authentication, removing the broken API key option entirely, while the previous version (v1) is preserved for existing workflows with the API key option now labeled as deprecated. New nodes default to OAuth2 for reliable operation.
* [LmChatAnthropic Node: Add streaming option](https://github.com/n8n-io/n8n/pull/30991): The Anthropic Chat Model node now has an opt-in 'Stream Responses' option under Options. When enabled, responses are streamed via Server-Sent Events instead of a single non-streamed request. It's disabled by default, so existing workflows behave unchanged, and the final output format returned to the agent remains the same.
* [Reposition nodes on group collapse/expand](https://github.com/n8n-io/n8n/pull/32128): Expanding a group on the canvas now automatically pushes overlapping nodes and groups out of the way, and they return to their original spots on collapse. These pushes are purely visual until you drag a pushed node, drag the expanded group, or ungroup it, at which point the new positions are saved. Group expand/collapse state is remembered per workflow. New groups start expanded without pushing neighbors; imported or pasted groups start collapsed.

***

## `n8n 2.26` AWS Assume Role support for Bedrock, plus 6 other features <a href="#n8n226" id="n8n226"></a>

**Released:** 2026-06-09

* [Add pagination to MCP workflows table](https://github.com/n8n-io/n8n/pull/31780): The workflows table on the MCP settings page now supports pagination with selectable page sizes, replacing the previous fixed limit of 200 workflows. Previously, workflows beyond that limit couldn't be accessed or managed for MCP access; now all workflows are reachable through paged navigation, and the table properly reflects total workflow counts.
* [Add support for NVIDIA Nemotron Embeddings Node](https://github.com/n8n-io/n8n/pull/31797): Added a new NVIDIA Nemotron Embeddings node for generating embeddings using NVIDIA NeMo Retriever models via build.nvidia.com or a self-hosted NIM. It reuses the existing NVIDIA Nemotron credential, automatically sets the required input\_type field (passage for indexing, query for retrieval), offers a curated searchable model list plus free-text model IDs for self-hosted use, and supports batch size, dimensions, strip-new-lines, and timeout options.
* [NVIDIA Nemotron Chat Model Node: Restrict model selector to supported models](https://github.com/n8n-io/n8n/pull/31698): The NVIDIA Nemotron Chat Model node's Model selector now only shows supported Nemotron chat models, using an explicit allow-list instead of a substring match. This prevents non-chat models, like reward or embedding models, from appearing in the dropdown. If the API is unreachable, the same allow-list is shown as a static fallback. The default model remains nvidia/llama-3.3-nemotron-super-49b-v1.
* [Trello Node: Add OAuth1 credential support](https://github.com/n8n-io/n8n/pull/30369): The Trello and Trello Trigger nodes now support connecting via Trello's OAuth 1.0a flow, in addition to the existing API Key authentication (which remains the default, so existing workflows are unaffected). An Authentication selector lets you choose the method; the trigger's webhook creation, deletion, and signature verification are handled correctly for both. This also fixes a bug in n8n's generic OAuth1 implementation where the access-token exchange request was left unsigned.
* [Add AWS Assume Role support for Bedrock nodes](https://github.com/n8n-io/n8n/pull/28663): The AWS Bedrock Chat Model and Embeddings AWS Bedrock nodes now support 'AWS (Assume Role)' as an authentication option, alongside standard IAM credentials. This lets workflows use short-lived STS sessions via a role ARN and external ID instead of static AWS keys, matching Assume Role support already available on other AWS nodes. Existing workflows are unaffected and default to the prior IAM authentication path.
* [Add Mine and All tabs to the API keys settings](https://github.com/n8n-io/n8n/pull/31239): The Settings > API keys page has been redesigned with Mine and All tabs for users who can manage API keys, a sortable, paginated table, and a toolbar with label search and a Create API key button. New columns show owner and expiration, row actions appear on hover, and revoking another user's key shows tailored confirmation copy. Backend endpoints now support ownership, label, and sort filters.
* [Google Cloud Storage Node: Add service account authentication](https://github.com/n8n-io/n8n/pull/30928): The Google Cloud Storage node now supports authenticating with a Google service account (via the existing Google API credential), in addition to OAuth2. This is useful for automated workloads where OAuth2 sessions expire frequently, and applies to project search, object listing, and resumable file uploads. A new Authentication option lets you choose between OAuth2 and Service Account (recommended).

***

## `n8n 2.25.1` Web search for agents, plus 13 other features <a href="#n8n2251" id="n8n2251"></a>

**Released:** 2026-06-02

* [Crypto Node: Add HMAC-SHA1 support](https://github.com/n8n-io/n8n/pull/29740): The Crypto node's Hash and HMAC actions (V1 and V2) now include SHA1 as a selectable algorithm, useful for interoperability with legacy APIs, webhook signature verification, and older integrity checks. This is a UI addition only, with no changes to credentials, execution logic, or existing defaults (V2 still defaults to SHA256, V1 to MD5). The Sign action's algorithm list is unaffected.
* [Microsoft OneDrive Node: Allow custom OAuth scopes (CE-949)](https://github.com/n8n-io/n8n/pull/31255): The Microsoft OneDrive OAuth2 credential now includes a Custom Scopes toggle, letting users override the default OAuth scopes (openid offline\_access Files.ReadWrite.All) to grant additional Microsoft Graph permissions or restrict scopes for their tenant. When disabled, behavior is unchanged. When enabled, an editable Enabled Scopes field appears, pre-filled with defaults, along with a warning that changes may cause the node to malfunction.
* [Microsoft Outlook Node: Allow custom OAuth scopes (CE-950)](https://github.com/n8n-io/n8n/pull/31262): The Microsoft Outlook OAuth2 credential now supports custom OAuth scopes. A new Custom Scopes toggle lets you edit the list of enabled scopes directly, with a warning that changing them may affect node functionality. By default the toggle is off and existing credentials keep working with the previous default scope list unchanged. This matches the same custom-scope option already available for Microsoft Excel, Teams, OneDrive, and SharePoint credentials.
* [Microsoft SharePoint Node: Allow custom OAuth scopes](https://github.com/n8n-io/n8n/pull/31256): The Microsoft SharePoint OAuth2 credential now supports custom OAuth scopes. A new 'Custom Scopes' toggle reveals an editable 'Enabled Scopes' field, letting users add or modify scopes (e.g. Sites.Read.All) while preserving dynamic subdomain substitution. Default authentication behavior is unchanged when the toggle is off, matching existing functionality already available for Microsoft Excel and Entra credentials.
* [Add private credential badge, callout, and not-connected validation in NDV](https://github.com/n8n-io/n8n/pull/31204): The NDV credential picker now shows a Private badge on credentials that use per-user (resolvable) authentication, both in the closed picker and dropdown. A notice below the picker indicates whether your account is connected, with a Connect link to open the credential edit modal if not. Nodes using a private credential that isn't connected for the current user now also show a canvas warning triangle with an explanatory tooltip. Static credentials are unaffected.
* [Form Trigger Node: Add n8n user authentication option](https://github.com/n8n-io/n8n/pull/30539): Form Trigger nodes (typeVersion 2.6+) now support an 'n8n User Auth' option, requiring visitors to be logged into the same n8n instance to view or submit a form. Unauthenticated GET requests redirect to sign-in; POSTs are rejected with 401. Submitted data includes the logged-in user's id, email, first and last name by default, with a new 'Include User in Output' option to opt out. Works across all n8n login methods and multi-step forms.
* [Refine plan review with chat-input edits](https://github.com/n8n-io/n8n/pull/31124): Refined the plan review experience in the AI assistant. Requesting changes to a plan now happens directly in the chat input, in a focused 'Plan edits' mode, instead of a separate textarea on the plan card. The plan card now shows three clear actions—Deny, Ask for edits, Approve—plus status indicators like 'Plan approved', 'Plan denied', 'Updating plan…', and a 'Building plan…' indicator while the plan is still generating.
* [Show data redaction scope dropdown to unlicensed users](https://github.com/n8n-io/n8n/pull/30966): In Settings > Security & policies, the Redact executions scope dropdown now appears for unlicensed users, matching the Enforce data redaction toggle. It shows an Upgrade badge, is disabled, and includes a tooltip linking to the upgrade page. If a license expires, the dropdown still displays the previously saved scope value for admins, and no changes are sent while it's disabled.
* [Validate private credentials only run under manual triggers](https://github.com/n8n-io/n8n/pull/31211): n8n now warns in the editor when a node uses a private (per-user) credential but the workflow contains a non-manual trigger, such as a webhook, schedule, form, or chat trigger. Since private credentials only resolve under a manual user identity, this would previously fail silently at runtime. The warning suggests switching to a Manual trigger or using a static credential instead.
* [Add N8nMarkdown editor to @n8n/design-system and Agents](https://github.com/n8n-io/n8n/pull/29988): Added a new rich-text Markdown editor to the design system, with formatting toolbar controls for bold, italic, strikethrough, headings, lists, task lists, code blocks, blockquotes, and undo/redo, plus raw Markdown and readonly modes. The AI Agent instructions editor now uses this new component. Chat message Markdown rendering was also updated to share the same underlying styles for consistent formatting across the product.
* [Default workflow resolver to n8n system resolver](https://github.com/n8n-io/n8n/pull/31116): In workflow settings, the credential resolver dropdown now displays "n8n private credentials" as the default selection when no resolver has been explicitly chosen, instead of appearing empty. This is display-only: selecting the system resolver does not save a credentialResolverId, so the workflow continues to rely on the backend's default fallback rather than being pinned to a specific seeded resolver.
* [Show private credential connection state in credentials list](https://github.com/n8n-io/n8n/pull/31117): The project Credentials tab now shows per-user connection status for private, resolvable credentials (used with dynamic credentials). If you haven't connected a private credential, a Connect button appears, letting you complete the OAuth flow directly from the list without opening the edit modal. Once authorized, a Connected label is shown. The project chip and actions menu remain visible in both states.
* [Add fallback web search for agents](https://github.com/n8n-io/n8n/pull/31010): Agents can now perform web search, using native provider tools where available or falling back to Brave/SearXNG via existing credentials, configurable from the Advanced panel. Also fixed skill loading so agents no longer guess incorrect file paths like SKILL.md, improved reliability of web search and memory defaults, added validation for unknown credential types, and normalized web search tool names in chat.
* [Introduce new project/folder actions menu](https://github.com/n8n-io/n8n/pull/30614): Added a new actions menu on project and folder breadcrumbs, letting users bulk-enable or disable MCP access for all workflows within a project or folder, with a confirmation toast summarizing updated, unchanged, and skipped workflows. The underlying bulk MCP toggle endpoint now correctly reports workflows left unchanged separately from those actually updated, giving more accurate feedback.

***

## `n8n 2.23` Quick access to new AI chat, plus 9 other features <a href="#n8n223" id="n8n223"></a>

**Released:** 2026-05-27

* [Gumroad Trigger Node: Add OAuth2 authentication](https://github.com/n8n-io/n8n/pull/29974): The Gumroad Trigger node now supports OAuth2 authentication in addition to the existing access token credential. A new Authentication selector lets you choose Access Token or OAuth2, with a new Gumroad OAuth2 API credential requesting only the minimal view\_sales scope by default, plus an optional Custom Scopes toggle for broader access. Existing workflows are unaffected, as Authentication defaults to Access Token.
* [Add new AI chat to universal create dropdown](https://github.com/n8n-io/n8n/pull/30719): Added a New AI chat entry to the universal create (+) dropdown, letting users quickly start a new Instance AI chat from anywhere. It appears as the last item in the menu, but only when the Instance AI module is active, enabled, and the user has permission. Additionally, the existing new-thread button in the Instance AI sidebar now works as a link, supporting middle-click and cmd/ctrl-click to open the chat in a new tab.
* [Execute Workflow Node: Return items from every run of the sub-workflow's last node](https://github.com/n8n-io/n8n/pull/30716): The Execute Workflow Trigger now controls what a sub-workflow returns when its final node runs multiple times (e.g. with Loop Over Items). A new v1.2 trigger returns items from every run, concatenated per branch, by default. Existing v1/v1.1 triggers keep the old last-run-only behavior, with a new 'Items to Return' option to opt into merging all runs. LangChain Tool/Retriever Workflow callers always keep last-run-only output.
* [Make plan approval UX clearer](https://github.com/n8n-io/n8n/pull/31054): The plan approval card now morphs its primary button between Allow and Request changes depending on whether feedback is typed, and adds a separate Deny button. Denying a plan cancels it outright and tells the AI agent to stop, rather than revise, giving users a clearer way to reject a plan entirely versus asking for changes.
* [Odoo Node: Add v2 with resource locators, field mapping, and API key auth](https://github.com/n8n-io/n8n/pull/30796): The Odoo node now has a new v2, available alongside the unchanged v1. V2 adds API key authentication for Odoo 19+ using its REST-style /json/2 endpoint, while legacy username/password credentials continue to work via /jsonrpc for Odoo 14-18. It also introduces resource locators for picking records from searchable lists, and a resource mapper that dynamically loads fields from Odoo for create/update operations. Supported resources are Contact, Opportunity, Activity, and Custom Resource; the Note resource is no longer available.
* [Open workflow artifact when builder spawns to edit it](https://github.com/n8n-io/n8n/pull/30862): When asking the Instance AI to edit an existing workflow, the artifacts panel and canvas preview now open as soon as the workflow-builder sub-agent starts, rather than waiting for the first edit result. This removes the blank-panel delay users previously saw between requesting an edit and seeing the workflow appear. Creating new workflows is unaffected, since no workflow id exists yet at spawn time.
* [Oracle DB Vector Store Node: Add support for vectorstore and embedding node support](https://github.com/n8n-io/n8n/pull/29014): Added two new nodes for Oracle Database AI workflows: an Oracle Vector Store node supporting Insert, Load, Retrieve, and Retrieve-as-tool modes with distance-strategy selection and metadata filtering (with deep merge of node-level and runtime filters), and an Oracle ONNX Embeddings node for generating embeddings using models loaded in the database, selectable via a resource locator. Both use pooled Oracle connections for efficient resource handling. Requires an ONNX model preloaded in Oracle Database.
* [Per-user OAuth connection banner for resolvable credentials](https://github.com/n8n-io/n8n/pull/30994): For shared, resolvable OAuth credentials, the credential edit modal now shows each user's own OAuth connection status instead of a shared status. If a teammate has connected a shared credential, other users viewing the same credential still see a 'Connect' prompt rather than a false 'Account connected' banner, until they connect it themselves. Static (non-resolvable) OAuth credentials are unaffected.
* [Lock workflow redaction settings when enforced at instance level](https://github.com/n8n-io/n8n/pull/30520): When instance-level redaction enforcement is enabled (behind the REDACTION\_ENFORCEMENT feature flag), the Workflow Settings drawer now locks both data redaction selects, showing a lock icon and an 'Enforced at instance level' tooltip. This overrides per-workflow edit permissions, so editors can no longer change redaction settings when enforcement is active. Behavior is unchanged when enforcement is off or the flag is unset. Backend support for enforcement is pending a follow-up release.
* [Require production redaction when enabling manual redaction](https://github.com/n8n-io/n8n/pull/30913): In Workflow Settings, the 'Redact manual execution data' option now requires 'Redact production execution data' to also be set to Redact. If production redaction isn't enabled, the manual redaction control is disabled with an explanatory tooltip. Switching production redaction off automatically resets manual redaction back to default. This prevents workflows from being saved in an inconsistent state where manual data is redacted but production data isn't.

***

## `n8n 2.22.5-exp` Quick MCP access toggle on workflow cards <a href="#n8n2225-exp" id="n8n2225-exp"></a>

**Released:** 2026-06-01

* [Surface MCP access toggle on workflow cards](https://github.com/n8n-io/n8n/pull/30683): For a subset of users (50% via A/B test), workflow cards in the workflows list now show an inline switch to enable or remove MCP access directly, instead of requiring the 3-dot menu. If instance-level MCP is off, clicking the switch opens the onboarding modal to enable it; non-admins see a disabled switch with guidance to contact an admin. The MCP access error message shown to MCP clients was also updated to mention this new toggle.

***

## `n8n 2.22` Crypto node adds encryption and decryption, plus 10 other features <a href="#n8n222" id="n8n222"></a>

**Released:** 2026-05-19

* [Crypto Node: Add encryption and decryption actions](https://github.com/n8n-io/n8n/pull/30540): The Crypto node now supports Encrypt and Decrypt actions. Symmetric mode uses a passphrase with scrypt key derivation and an authenticated cipher such as AES-256-GCM, AES-192-GCM, AES-128-GCM, or ChaCha20-Poly1305, producing versioned base64 output. Asymmetric mode uses RSA-OAEP-SHA256 with public or private keys for encrypt and decrypt respectively. Three new credential fields for passphrase, public key, and private key support these actions. Decryption failures return a generic error to avoid leaking details.
* [Facebook Graph API Node: Add OAuth2 support](https://github.com/n8n-io/n8n/pull/27112): The Facebook Graph API and Facebook Trigger nodes now support OAuth2 authentication as an alternative to access tokens. Two new credential types, Facebook Graph OAuth2 API and Facebook Graph (App) OAuth2 API, let users authenticate via OAuth2 with configurable scopes, while existing access token credentials remain supported. New Graph API versions v24.0 and v25.0 were also added to the node's version selector.
* [Microsoft Teams Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29490): The Microsoft Teams Trigger node now verifies incoming webhook notifications using Microsoft Graph's clientState mechanism. When creating subscriptions, the node auto-generates a secret and sends it as clientState; incoming notifications are checked against this stored secret, and unverified requests are rejected with a 401 response. Existing subscriptions created without a stored secret continue to work unverified, ensuring backward compatibility while improving security against spoofed webhook calls.
* [AWS Node: Add IRSA to AWS AssumeRole system credential strategies](https://github.com/n8n-io/n8n/pull/22316): AWS nodes now support IAM Roles for Service Accounts (IRSA) as an automatic credential source. When AWS\_ROLE\_ARN and AWS\_WEB\_IDENTITY\_TOKEN\_FILE environment variables are set, n8n reads the web identity token and calls STS AssumeRoleWithWebIdentity to obtain temporary credentials, letting workflows running in EKS authenticate to AWS without static keys, alongside existing pod identity, container metadata, and instance metadata strategies.
* [AWS SNS Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/30456): The AWS SNS Trigger node now verifies incoming webhook requests using certificate-based RSA signature verification, as required by AWS SNS. It checks the message topic, downloads and validates the signing certificate, and confirms the RSA signature before processing. Requests with invalid or missing signatures are rejected with a 401 Unauthorized response, improving security by preventing spoofed notifications from triggering workflows.
* [Box Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29483): The Box Trigger node can now verify incoming webhook requests using HMAC-SHA256 signature checks, per Box's V2 webhook signing spec. Optional primary and secondary signature keys can be set on the Box OAuth2 credential; requests with invalid or expired signatures are rejected with a 401 response. Existing workflows without signing keys configured continue to work unchanged.
* [Snowflake Node: Add OAuth2 credential support](https://github.com/n8n-io/n8n/pull/29391): The Snowflake node now supports OAuth2 authentication (PKCE flow) as an alternative to username/password and key-pair credentials. Add a new Snowflake OAuth2 API credential with your account, warehouse, database, and schema, then connect via OAuth2 to authorize and run queries using the resulting token. Role is specified through OAuth scopes rather than a separate field.
* [Add Workflow Publish Timeline tab to Workflow History](https://github.com/n8n-io/n8n/pull/26907): Workflow History now includes a Publish Timeline tab showing a chronological view of when a workflow was published or unpublished, including version names and who made the change. The tab only appears for workflows that have been published at least once, and shows an empty state otherwise. A new 'View timeline' item was added to the Publish dropdown menu to link directly to this tab.
* [Move MCP Client Tool into the MCP category](https://github.com/n8n-io/n8n/pull/30441): The AI > Tools panel has been reorganized: the MCP Client Tool node now appears under the renamed 'MCP servers' section instead of Recommended Tools, and it's listed first among MCP servers with a divider. Section titles and descriptions were updated for clarity, and a search bar now appears under MCP servers once more than 8 servers are available.
* [NocoDB Node: Add new data apis and use new api version](https://github.com/n8n-io/n8n/pull/18626): The NocoDB node has been updated to a new version 4, supporting NocoDB API versions v0.200 and v0.260. Existing row operations (Create, Update, Delete, Get, Get Many) remain supported, while the new v0.260 API adds Create or Update (upsert), Row Count, Row Upload, Base Get/Get Many, and linked-row list, link, and unlink operations.
* [Add instance-level data redaction policy UI](https://github.com/n8n-io/n8n/pull/30303): Added a new Data Redaction section to Settings → Security & Policies, letting admins enforce redaction across executions and choose the scope (manual, production, or both). Available only behind an environment feature flag, requires a license including data redaction, and is disabled on env-managed instances. Note: this UI is frontend-only in this release; the backend API wiring is planned as a follow-up.

***

## `n8n 2.21` Webhook signature verification added across trigger nodes, plus 23 other features <a href="#n8n221" id="n8n221"></a>

**Released:** 2026-05-12

* [Figma Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29262): The Figma Trigger node now verifies incoming webhook requests by checking the passcode generated at webhook creation using constant-time comparison. Requests with a missing or incorrect passcode are rejected with 401 Unauthorized, helping prevent spoofed webhook calls. Webhooks created before this change continue to work unchanged, since verification is skipped when no passcode was stored.
* [Taiga Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29487): The Taiga Trigger node now verifies incoming webhook requests using the X-TAIGA-WEBHOOK-SIGNATURE header and the per-webhook key stored in workflow data. Requests with an invalid signature are rejected with a 401 Unauthorized response, improving security against forged webhook calls. Existing workflows without a stored key continue to work unchanged, ensuring backward compatibility.
* [Acuity Scheduling Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29261): The Acuity Scheduling Trigger node now verifies incoming webhook requests by checking an HMAC SHA-256 signature against the x-acuity-signature header, using the configured API key as the shared secret. Requests with invalid signatures are rejected with a 401 Unauthorized response. Verification is skipped when using OAuth2 authentication or when no API key is available, preserving backward compatibility with existing setups.
* [Asana Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29258): The Asana Trigger node now verifies incoming webhook requests by checking the X-Hook-Signature header against an HMAC SHA-256 digest computed with the secret exchanged during webhook setup. Requests with missing or invalid signatures are rejected with a 401 Unauthorized response, improving security against spoofed or tampered webhook calls. Existing webhooks created before this change continue to work unaffected, since verification is skipped when no secret is stored.
* [Cal Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29484): The Cal Trigger node now verifies incoming Cal.com webhook requests using HMAC SHA-256 signatures via the X-Cal-Signature-256 header. A signing secret is automatically generated when the webhook is created and stored in workflow data, protecting against unauthorized or spoofed requests. Requests with invalid signatures are rejected with a 401 response. Existing webhooks created before this update continue to work without changes.
* [Cap eval concurrency slider at admin-set limit](https://github.com/n8n-io/n8n/pull/29807): The evaluation results page's concurrency slider now respects the admin-configured N8N\_CONCURRENCY\_EVALUATION\_LIMIT environment variable. Previously the slider always allowed values from 1–10, even if the backend would silently clamp the actual concurrency lower. Now the slider's maximum adjusts to match the configured limit (still capped at 10), so users can see and select only values the backend will actually honor. Stored preferences from before a limit was applied are preserved and reappear if the cap is later raised.
* [Customer.io Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29480): The Customer.io Trigger node now verifies incoming reporting webhook requests using HMAC-SHA256 signature validation against the X-CIO-Signature header. A new optional Webhook Signing Key field has been added to the Customer.io API credential, found in the Customer.io dashboard under Integrations > Reporting webhooks. Requests with invalid signatures are rejected with a 401 response, and replay attacks are mitigated via a 5-minute timestamp window. Existing workflows without a signing key configured continue to work unchanged.
* [Figma Trigger Node: Add OAuth2 authentication support](https://github.com/n8n-io/n8n/pull/30079): The Figma Trigger node now supports OAuth2 authentication in addition to the existing personal access token. A new authentication selector lets users choose between Access Token (default, preserving existing workflows) or OAuth2, using a new Figma OAuth2 credential with default scopes for webhook management and an option to customize scopes.
* [Formstack Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29495): The Formstack Trigger node now verifies incoming webhook requests using HMAC SHA-256 signatures. When a webhook is created, n8n generates a secret and registers it with Formstack; incoming requests are checked against the X-FS-Signature header, rejecting invalid requests with a 401 response. Existing webhooks without a stored secret continue to work without verification, and the secret is cleaned up when the webhook is deleted.
* [GitLab Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29260): The GitLab Trigger node now verifies incoming webhook requests. When a webhook is created, n8n generates a random secret token and registers it with GitLab; incoming requests are checked against the X-Gitlab-Token header using constant-time comparison, rejecting mismatches with 401 Unauthorized. Existing webhooks without a stored secret continue to work unchanged, so this improves security without breaking current setups.
* [MailerLite Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29491): The MailerLite Trigger node now verifies incoming webhook requests using HMAC-SHA256 signature validation. When creating a webhook, n8n stores the secret provided by MailerLite and checks it against the Signature header on each incoming request, rejecting invalid requests with a 401 response. Existing workflows created before this change continue working without interruption, since verification is skipped when no secret is stored.
* [Mautic Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29658): The Mautic Trigger node now verifies incoming webhook requests. On webhook creation, n8n generates a random HMAC-SHA256 secret and registers it with Mautic; incoming requests are checked against the Webhook-Signature header using constant-time comparison, rejecting invalid requests with a 401. Existing webhooks without a stored secret keep working unchanged, so this improves security without breaking current setups.
* [Microsoft Outlook Node: Add location and attendees fields to calendar events](https://github.com/n8n-io/n8n/pull/29844): The Microsoft Outlook node's Create and Update Event operations now support Location and Attendees fields under Additional Fields. Location accepts free text such as a room name, address, or meeting link. Attendees is a multi-value field for adding one or more people with email, optional name, and a Required/Optional/Resource type. Both fields are optional and don't affect existing workflows.
* [Onfleet Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29485): The Onfleet Trigger node now supports verifying incoming webhook requests using HMAC-SHA512 signatures. A new optional Signing Secret field has been added to the Onfleet API credential; when set, n8n validates the signature header against the request body and rejects mismatches with a 401 response. If no secret is configured, verification is skipped, so existing workflows continue to work unchanged. Onfleet's setup validation requests still bypass signature checks.
* [Strava Node: Allow custom OAuth2 scopes](https://github.com/n8n-io/n8n/pull/29972): Strava's OAuth2 credential now supports custom scopes. A new 'Custom Scopes' toggle reveals an editable 'Enabled Scopes' field, letting users request additional permissions such as profile:read\_all or read\_all beyond the default activity:read\_all and activity:write. Existing credentials keep working unchanged, since default behavior is preserved when the toggle is off.
* [Trello Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29252): The Trello Trigger node now verifies incoming webhook requests using HMAC-SHA1 signature validation. The OAuth Secret field on the Trello API credential is now editable, allowing users to enter their Power-Up secret so n8n can confirm requests genuinely originate from Trello. Requests with an invalid signature are rejected with a 401 response. Workflows without a configured secret continue to function as before, unaffected.
* [Add fully dynamic disclaimer to Quick Connect offer](https://github.com/n8n-io/n8n/pull/29852): Quick Connect offers configured via N8N\_QUICK\_CONNECT\_OPTIONS can now include an optional disclaimer with text and a link, letting admins add terms or legal notices to Quick Connect prompts. The disclaimer appears below the existing offer text in the credential edit view, node details view, community node info, and node creator actions panel, with the link text and URL configurable per offer.
* [Microsoft Outlook Node: Add support for recurring event instances](https://github.com/n8n-io/n8n/pull/29802): The Microsoft Outlook node's Get Many Events operation now includes an 'Include Recurring Event Instances' toggle. When enabled, it uses Microsoft Graph's calendarView endpoint with a specified start and end date to expand recurring events into individual occurrences, instead of returning only the series master event. The toggle defaults to off, preserving previous behavior.
* [Twilio Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29259): The Twilio Trigger node now verifies incoming webhook requests using Twilio's Event Streams signing scheme, checking body integrity via a SHA-256 hash and authenticity via an HMAC-SHA1 signature against the auth token. Requests failing verification are rejected with a 401 response. Verification is skipped when using API Key auth (no auth token available), preserving backward compatibility for existing workflows.
* [Calendly Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29482): The Calendly Trigger node now verifies incoming webhook requests using HMAC-SHA256 signature validation. A unique signing key is generated when a webhook subscription is created and stored with the workflow, then used to check the Calendly-Webhook-Signature header on each request, rejecting invalid ones with a 401 response. Existing webhooks created before this change continue to work without verification for backward compatibility.
* [Show locked state and permission notice on data redaction workflow settings](https://github.com/n8n-io/n8n/pull/30022): Data redaction settings in workflow settings are no longer hidden from users without permission to change them. Instead, the controls are shown disabled with a lock icon and a tooltip explaining the permission requirement, including a link to a new modal listing project members who can edit the setting.
* [Jira Node: Add OAuth2 (3LO) support](https://github.com/n8n-io/n8n/pull/29414): The Jira node and Jira Trigger now support OAuth2 Authorization Code (3LO) authentication via a new 'Cloud (OAuth2)' option, alongside existing Cloud (API token), Server, and Server PAT modes. A new Jira SW Cloud OAuth2 API credential handles Atlassian's auth flow, automatically resolving the required cloudId, and the trigger supports Dynamic Webhooks for OAuth2 connections with a limited set of supported events.
* [Redesign evaluation run detail page](https://github.com/n8n-io/n8n/pull/29592): The evaluation run detail page has been redesigned with a clearer layout: metric summary cards with percentage scores and trend deltas versus the previous run, category badges (AI-based, String similarity, Categorization, Tools used, Custom) with source-node tooltips, and restyled per-test-case sections with quick links to view executions. Also fixes a bug where clicking 'Run test' could fail due to a missing workflow ID, and test run lookups are now properly scoped per workflow for security.
* [Eval run detail loading + error states (TRUST-70 follow-up)](https://github.com/n8n-io/n8n/pull/29817): Evaluation test run detail pages now show live status: a run-level status pill, per-case running/pending/failed/cancelled states with spinners and shimmer animation, a Re-run button for failed cases, and a Cancel button for pending cases. Backend now seeds pending case rows upfront and claims them atomically, enabling pre-emptive cancellation of queued cases and returning the new run ID immediately when starting a run.

***

## `n8n 2.20` Netlify Trigger node verifies webhook requests, plus 6 other features <a href="#n8n220" id="n8n220"></a>

**Released:** 2026-05-05

* [Netlify Trigger Node: Add webhook request verification](https://github.com/n8n-io/n8n/pull/29256): The Netlify Trigger node now verifies incoming webhook requests. A signing secret is generated when a hook is created and stored with the workflow, then used to validate the JWT in the X-Webhook-Signature header and confirm the request body's SHA-256 digest matches. Requests that fail verification receive a 401 response. Existing hooks created before this update keep working without verification.
* [Slack Node: Allow users to configure OAuth2 scopes](https://github.com/n8n-io/n8n/pull/28728): The Slack OAuth2 credential now lets users customize requested OAuth scopes. By default, behavior is unchanged and the same full set of user scopes is requested automatically. Enabling the new 'Custom Scopes' toggle reveals an editable User Scope field, allowing users to restrict or customize which permissions are requested when connecting their Slack account.
* [Add environment variable to disable workflow autosave](https://github.com/n8n-io/n8n/pull/25144): Added a new N8N\_WORKFLOWS\_AUTOSAVE\_DISABLED environment variable that lets self-hosted users disable automatic workflow saving in the editor. When enabled, a Save button appears in the workflow header and Ctrl+S (Cmd+S on Mac) triggers a manual save instead of autosave. Also improves collaboration handling by warning users, instead of silently discarding changes, when a workflow is updated remotely while local edits are unsaved.
* [Add reveal redacted data permission to custom roles execution section](https://github.com/n8n-io/n8n/pull/29526): Custom roles now include an Executions section with a 'Reveal redacted data' permission, letting admins control per-role whether users can reveal redacted execution data on workflows with data redaction enabled. Previously this was only possible for fixed admin/owner roles. Existing admin and personal project owner roles keep reveal access unchanged; this is an Enterprise custom roles feature.
* [Add transition on Sidebar collapsed](https://github.com/n8n-io/n8n/pull/29650): The main sidebar now animates smoothly when collapsing, expanding, or resizing, giving a more polished feel to layout changes. The transition is automatically disabled while you manually drag-resize the sidebar, keeping it responsive and preventing lag behind the cursor.
* [Track IdP role mapping in provisioning telemetry](https://github.com/n8n-io/n8n/pull/29416): Internal telemetry for SSO role provisioning has been expanded. n8n now tracks whether role mapping uses IdP-based rules or n8n-defined rules, along with the number of instance and project-level rules configured, and records this when role assignment or mapping settings change or when rules are added or removed. This is an internal analytics change with no visible effect on user-facing functionality.
* [Update copy for mcp settings](https://github.com/n8n-io/n8n/pull/29399): Updated the wording on the instance-level MCP settings page. The description and heading now emphasize connecting MCP clients like Claude Code and Cursor to build, run, and iterate on workflows, rather than just discovering and executing them, giving users clearer messaging about what MCP integration enables.

***

## `n8n 2.19` New standalone MiniMax node added, plus 10 other features <a href="#n8n219" id="n8n219"></a>

**Released:** 2026-04-28

* [Add Delete permanently link to workflow archive toast](https://github.com/n8n-io/n8n/pull/29157): When you archive a workflow, the success toast now includes a 'Delete permanently' link that opens the standard delete confirmation modal, letting you permanently remove the workflow immediately without navigating elsewhere. This is available both in the workflow list and the editor header.
* [AwsS3 Node: Add option to return common prefixes in bucket search](https://github.com/n8n-io/n8n/pull/28571): The AWS S3 node's bucket search operation now has an 'Include Common Prefixes' option under Additional Fields (default off). When enabled alongside a Delimiter, the node returns S3's grouped 'virtual folder' prefixes instead of individual object contents, enabling shallow directory-style listings. This applies to both the return-all and paginated code paths.
* [Google Drive Node: Add Markdown export option for Google Docs download](https://github.com/n8n-io/n8n/pull/27006): The Google Drive node's Download operation now lets you export Google Docs as Markdown (.md) directly from the Google Docs conversion dropdown, without needing a manual MIME type expression. Previously only formats like HTML and MS Word were available in the UI; text/markdown is now a first-class option, matching Google Drive's supported export formats.
* [Postgres Node: Sort PostgreSQL schemas and tables alphabetically when fetching](https://github.com/n8n-io/n8n/pull/28036): In the Postgres node, schema and table lists shown when configuring a node now appear in alphabetical order instead of an unpredictable database-dependent order, making it easier to find the schema or table you need.
* [Salesforce Node: Add middle name, suffix, and identity fields to contacts](https://github.com/n8n-io/n8n/pull/23905): The Salesforce node's Create and Update Contact operations now support additional fields: Middle Name, Suffix, Email Opt Out, Pronouns, and Gender Identity. These map directly to the corresponding Salesforce Contact API fields, letting users capture more complete contact details, including middle names commonly used in some regions.
* [Slack Node: Add emoji reaction filter to Slack Trigger](https://github.com/n8n-io/n8n/pull/28628): The Slack Trigger node now supports an optional 'Emoji Names to Filter' field under Options, available when Trigger On is set to Reaction Added. When set, only reaction\_added events matching the comma-separated, case-insensitive list of emoji names will start a workflow, letting users cut unnecessary executions in high-volume workspaces. Leaving the field empty preserves existing behavior, triggering on all reactions.
* [Warn when data table cell value exceeds safe integer range](https://github.com/n8n-io/n8n/pull/28904): Data tables now warn you when a number entered into a number column exceeds JavaScript's safe integer range (9,007,199,254,740,991). The value still saves successfully, but a warning toast appears noting that precision may be lost, suggesting large numbers be stored as text if exact values are needed. Values within the safe range trigger no warning.
* [Alibaba Cloud Node: Switch to dynamic model list fetched from API](https://github.com/n8n-io/n8n/pull/28839): The Alibaba Cloud Model Studio node now fetches available models dynamically from the DashScope API instead of using hardcoded dropdown lists. Text, Image, and Video operations each show models filtered to their relevant category, and you can still enter a custom model ID manually. This is available in the new node version 1.1; existing workflows using version 1 keep their static dropdowns for backward compatibility.
* [Google Gemini Node: Gemini default models update](https://github.com/n8n-io/n8n/pull/28853): Updated default Gemini models across Google Gemini nodes: the Chat Model node's LLM now defaults to models/gemini-3-flash-preview, the Google Gemini node's Text Message operation defaults to models/gemini-3-flash-preview, and its Image Generate operation defaults to models/gemini-3.1-flash-image-preview (Nano Banana 2). Existing workflows keep their previously configured model via versioned node updates; only new nodes get the updated defaults.
* [Track favorite toggle events](https://github.com/n8n-io/n8n/pull/28810): n8n now tracks internal telemetry when users favorite or unfavorite an item (workflow, project, folder, or data table), recording whether it was added or removed and the resource type. This is a backend analytics change to help improve the product; it only fires after a successful toggle and does not add any visible feature or UI change for users.
* [MiniMax Node: Add standalone MiniMax vendor node](https://github.com/n8n-io/n8n/pull/28748): Added a new standalone MiniMax node for the LangChain package, offering four resources: Text (chat completions with tool calling, token tracking, and reasoning display), Image (text-to-image generation with configurable aspect ratios), Video (text-to-video and image-to-video generation with async polling), and Audio (text-to-speech with multiple voices and emotion/speed/pitch controls). Uses the existing MiniMax API credential.

***

## `n8n 2.18.5` Warning for AI gateway credentials on publish, plus 2 other features <a href="#n8n2185" id="n8n2185"></a>

**Released:** 2026-04-29

* [Add warning when publishing workflow, if some nodes in it are using ai gateway credentials](https://github.com/n8n-io/n8n/pull/29174): When publishing a workflow, n8n now shows a warning if any active nodes use n8n Connect (AI gateway) credentials, naming the affected node(s) and noting the workflow will stop working once the AI gateway balance is depleted. This helps users identify workflows dependent on gateway credits before publishing.
* [In the n8n Connect table on row click open execution related to that usage row](https://github.com/n8n-io/n8n/pull/29195): In the AI Gateway usage table (Settings > n8n Connect), clicking a row now opens the execution associated with that usage entry, when available. This is powered by the gateway now recording the workflow and execution IDs behind each AI request, so users can trace usage back to the workflow run that generated it.
* [OpenAI Node: Use dynamic model selection for image edit and update analyze model filter](https://github.com/n8n-io/n8n/pull/29330): The OpenAI node's Image Edit operation (new version 2.3) now lets you select a model dynamically from your OpenAI account instead of a fixed dall-e-2/gpt-image-1 list, matching the Generate operation. Existing workflows on earlier versions keep the old dropdown. The Analyze Image model filter was also broadened to surface more vision-capable models (gpt-5, gpt-4.1, gpt-4-turbo, o1/o3/o4-mini, chatgpt-4o variants) while excluding unrelated model variants.

***

## `n8n 2.18` Favoriting for projects, folders, workflows and data tables, plus 4 other features <a href="#n8n218" id="n8n218"></a>

**Released:** 2026-04-21

* [Slack Node: Add app\_home\_opened as a dedicated trigger event](https://github.com/n8n-io/n8n/pull/28626): The Slack Trigger node now supports 'App Home Opened' as a dedicated, selectable event type. Previously, triggering on this event required selecting 'Any Event' and filtering downstream, which consumed an execution for every Slack event. Now users can subscribe directly to app\_home\_opened, reducing unnecessary executions. Channel validation is skipped for this event, since it's workspace-scoped rather than tied to a specific channel.
* [Linear Trigger Node: Add signing secret validation](https://github.com/n8n-io/n8n/pull/28522): Linear API and OAuth2 credentials now include an optional Signing Secret field. When set, the Linear Trigger node verifies incoming webhook requests by validating the Linear-Signature header (HMAC-SHA256) and checking the webhook timestamp is within a 60-second window, helping ensure webhooks genuinely originate from Linear. If no signing secret is configured, verification is skipped and existing workflows continue to work unchanged.
* [MiniMax Chat Model Node: Add MiniMax Chat Model sub-node](https://github.com/n8n-io/n8n/pull/28305): Added a new MiniMax Chat Model sub-node for use in AI Agent and Chain workflows, connecting to MiniMax's OpenAI-compatible API. Includes a new MiniMax credential with region selection (International/China) and connection testing, support for 7 MiniMax models, and a Hide Thinking option (enabled by default) to strip chain-of-thought reasoning from responses.
* [Enable workflow execution from instance AI preview canvas](https://github.com/n8n-io/n8n/pull/28412): You can now run workflows directly from the read-only AI preview canvas, not just view them. The preview supports the Run button, per-node run buttons, and keyboard shortcuts, with node output tabs auto-selected when execution data is available. This applies specifically to the instance AI preview iframe experience.
* [Add favoriting for projects, folders, workflows and data tables](https://github.com/n8n-io/n8n/pull/26228): You can now favorite projects, folders, workflows, and data tables to mark them for quick access. Favorites are added or removed via new API endpoints and are automatically cleaned up when the underlying resource is deleted. Note that discoverability of favorites in the UI is limited in this release, with further improvements planned in follow-up updates.

***

## `n8n 2.17` New Moonshot Kimi and Alibaba Model Studio nodes, plus 5 other features <a href="#n8n217" id="n8n217"></a>

**Released:** 2026-04-13

* [Disable manual role management when expression-based mapping is enabled](https://github.com/n8n-io/n8n/pull/28105): When instance or project roles are managed automatically, either by an SSO provider's provisioning settings or by expression-based role mapping rules, n8n now blocks manual role changes at the API level, not just in the UI. Attempts to change roles via the users or project members endpoints return a 403 error. The Settings > Users and Project > Settings pages also show clearer, distinct banners explaining whether SSO or expression mapping is controlling roles.
* [MCP Client Tool Node: Prefix MCP tool names with server name](https://github.com/n8n-io/n8n/pull/28094): MCP Client Tool nodes now prefix tool names exposed to AI agents with the sanitized node name (e.g. MCP\_Client\_get\_weather), preventing naming collisions when multiple MCP servers are connected to the same agent. The original, unprefixed tool name is still sent to the MCP server itself, so behavior on the server side is unchanged.
* [Moonshot Kimi Chat Model Node: Add Moonshot Kimi Chat Model sub-node](https://github.com/n8n-io/n8n/pull/28156): Added a new Moonshot Kimi Chat Model sub-node for connecting AI Agent and chain workflows to Moonshot AI's OpenAI-compatible API. Includes a new Moonshot credential with API key authentication (international and China endpoints), dynamic model loading, and configurable options like temperature, top-p, penalties, max tokens, response format, timeout, and retries. Default model is kimi-k2.5.
* [Moonshot Kimi Node: Add new node](https://github.com/n8n-io/n8n/pull/28189): Added a new Moonshot Kimi node for interacting with Moonshot AI models. It supports messaging models with system prompts, multi-turn chat, tool calling, built-in web search, thinking mode, JSON responses, and image attachments, plus a dedicated image analysis operation for binary image input. Models are selected dynamically from the Moonshot API, and the node reuses existing Moonshot credentials.
* [Alibaba Cloud Model Studio Node: Add new node](https://github.com/n8n-io/n8n/pull/27928): Added a new Alibaba Cloud Model Studio node, bringing Qwen model support to n8n. It enables text chat completions (with multi-turn conversation, web search, and AI Agent tool use), image analysis and generation (Qwen-VL, Z-Image Turbo, Wan 2.6, Qwen Image), and text/image-to-video generation (Wan 2.6). Uses a shared Alibaba Cloud credential with region and workspace selection.
* [Refactor role provisioning to two-dropdown layout](https://github.com/n8n-io/n8n/pull/28024): SSO settings now split role provisioning into two clearer dropdowns: Role assignment (manual, instance roles via SSO, or instance and project roles via SSO) and, when applicable, Role mapping method (map via IdP or map rules inside n8n). Options show descriptive text, an info callout appears for IdP-based mapping, and only relevant rule editors display based on your selection. Existing configurations are preserved when reloading settings.

***

## `n8n 2.16` Notion node now supports OAuth authentication, plus 4 other features <a href="#n8n216" id="n8n216"></a>

**Released:** 2026-04-07

* [Put data redaction settings behind enterprise license](https://github.com/n8n-io/n8n/pull/28001): Workflow data redaction settings are now gated behind an enterprise license (feat:dataRedaction). Without the license, redactionPolicy is silently stripped from workflow create/update requests and existing redaction policies are treated as 'none' during execution. In the editor, the redaction settings appear greyed out with an Upgrade badge linking to the pricing or billing page. Licensed instances see no change in behavior.
* [Alibaba Cloud Chat Model Node: Add new node](https://github.com/n8n-io/n8n/pull/27882): Added a new Alibaba Cloud Chat Model sub-node for the AI Agent, connecting to DashScope's OpenAI-compatible API. It supports multiple regions (including a Germany endpoint requiring a Workspace ID), dynamic model loading (default qwen-plus), and configurable options like temperature, top-p, penalties, max tokens, response format, timeout, and retries. Requires new Alibaba Cloud API credentials.
* [Notion Node: Add support for OAuth](https://github.com/n8n-io/n8n/pull/27419): The Notion node and Notion Trigger node now support OAuth2 authentication in addition to the existing API key method. Users can select an Authentication option to choose between API Key and OAuth2, allowing them to connect to Notion using OAuth credentials instead of manually managing an integration token.
* [Chat Trigger Node: Auto-add highlighted execution data](https://github.com/n8n-io/n8n/pull/18778): Chat Trigger, Respond To Chat, and Tools Agent nodes now automatically save highlighted execution data, such as chat input, response text, and session ID, using keys derived from the node name. This data can be used to filter executions in the Executions view. Each node includes a new option to disable this behavior, enabled by default. More nodes will support this in future releases.
* [Add missing agent permissions for workflow and data table actions](https://github.com/n8n-io/n8n/pull/27927): n8n Agent permission settings now include controls for creating and updating workflows, and for deleting data tables. These join existing agent permissions and default to requiring your approval before the agent performs them. Toggle switches for each have been added to the Instance AI settings page, letting admins allow these actions automatically if desired.

***

## `n8n 2.15` WordPress node adds OAuth2 support, plus 3 other features <a href="#n8n215" id="n8n215"></a>

**Released:** 2026-03-30

* [Wordpress Node: Add support for OAuth2](https://github.com/n8n-io/n8n/pull/27113): The WordPress node now supports OAuth2 authentication, in addition to existing Basic Auth. OAuth2 works only with WordPress.com-hosted sites, requiring a WordPress.com site identifier. A new authentication selector lets users choose between Basic Auth and OAuth2 (WordPress.com), with requests automatically routed through the appropriate WordPress.com or self-hosted API endpoint.
* [Zammad Node: Add support for updating tickets](https://github.com/n8n-io/n8n/pull/16800): The Zammad node now supports an Update Ticket operation. You can update a ticket's title, group, state, priority, owner, customer, pending time, and custom fields, and add an internal note. New dropdown options are populated dynamically from your Zammad instance for states, priorities, groups, owners, and customers.
* [Add canvas-only mode](https://github.com/n8n-io/n8n/pull/27184): Added a new N8N\_CANVAS\_ONLY environment variable that enables a canvas-only mode, hiding the header, sidebar, and overlay elements like the assistant button and chat overlay in workflow view. This lets users embed or view the workflow canvas in a minimal, distraction-free layout. Default behavior remains unchanged when the variable is not set.
* [Support error workflows in workflow dependency](https://github.com/n8n-io/n8n/pull/27542): The workflow dependency tracker and dependency UI now recognize error workflow relationships. If a workflow has an error workflow configured in its settings, this is tracked as a dependency, and the reverse relationship (which workflows use a given workflow as their error handler) is also shown. The dependency panel displays these as new 'Error workflow' and 'Error handler for' entries, letting users navigate directly to related workflows.

***

## `n8n 2.14` New Databricks node with full API support, plus 8 other features <a href="#n8n214" id="n8n214"></a>

**Released:** 2026-03-24

* [Add new execution filter by workflow version](https://github.com/n8n-io/n8n/pull/26904): You can now filter workflow executions by the specific workflow version they ran against. The executions filter panel adds a Version selector listing versions with their name (or "Autosave") and timestamp, loaded when the filter is first opened. Selecting a version narrows results to executions run on that exact version; if no version data exists, the selector is disabled.
* [databricks Node: Add basic databricks node](https://github.com/n8n-io/n8n/pull/27004): Added a new Databricks node with support for Databricks SQL (execute statements and return results as items), Unity Catalog (manage catalogs, schemas, tables, volumes, functions), Model Serving (query ML endpoints with automatic input format detection), Genie (AI data assistant conversations and query results), Files (upload, download, delete, list files and directories in Unity Catalog volumes), and Vector Search (create, query, and manage vector indexes). Supports both access token and OAuth2 credentials.
* [Perplexity Node: Update Perplexity node for full API coverage](https://github.com/n8n-io/n8n/pull/26970): The Perplexity node now supports version 2 with full API coverage while keeping v1 workflows compatible. New resources include Agent (third-party model responses via Perplexity's Agent API), Search (raw web search results), and Embeddings (including contextualized embeddings). Chat completions gained many new options like search mode, date and language filters, reasoning effort, and structured output. Also fixed an incorrect search\_recency\_filter parameter and removed the broken sonar-reasoning model.
* [Add history version info to execution page](https://github.com/n8n-io/n8n/pull/26768): The execution details page now shows which workflow history version an execution ran on, labeled either with its custom name or as 'Autosave', including the creation date in a tooltip. Clicking the label links directly to that version in the workflow history view, making it easier to trace which workflow state produced a given execution result.
* [Microsoft Agent 365 Trigger Node: Mcp tools logs](https://github.com/n8n-io/n8n/pull/27215): The Microsoft Agent 365 Trigger node now captures logs of Microsoft MCP tool calls, including server and tool name, input, output, error status, duration, and timestamp, and attaches them to the node's activity output as microsoftMcpToolLogs. This gives users visibility into which MCP tools were invoked during an agent run and their results, directly in n8n execution data. The node also expanded its list of supported Microsoft MCP servers.
* [Use server-side search for project sharing dropdowns](https://github.com/n8n-io/n8n/pull/27093): Project selection dropdowns (for sharing workflows/credentials, moving resources, filtering, and more) now search projects server-side with debounced queries instead of loading all projects into the browser upfront. This fixes UI freezes for instances with large numbers of users or projects, and shows an indicator when more results exist than are displayed.
* [Show redacted state in execution viewer with reveal flow](https://github.com/n8n-io/n8n/pull/26543): When a workflow's redaction policy hides execution data, the Node Details View now shows a lock icon on input/output panels explaining why, instead of blank data. Authorized users (with execution:reveal scope) can click 'Reveal data', confirm a warning modal, and view unredacted data. Executions that used dynamic credentials are always redacted and can never be revealed, even by authorized users. Pinned data and error/not-run states still display normally. Workflow settings now expose separate redaction toggles for production and manual executions.
* [Enable secure invite links](https://github.com/n8n-io/n8n/pull/27107): Invite and signup links now use a single, tamper-proof token instead of separate inviterId/inviteeId parameters. Signup URLs use a token query parameter, and invitation acceptance is handled via a unified endpoint accepting the token plus user details. The legacy inviterId/inviteeId-based invite flow has been removed, improving the security of invite links.
* [Display workflow, credential and data table dependencies](https://github.com/n8n-io/n8n/pull/26912): n8n now exposes dependency information for workflows, credentials, and data tables via new API endpoints. Workflow cards can show counts of related credentials, data tables, and sub-workflows, while a details view can list resolved dependency names, respecting each user's access permissions and reporting inaccessible dependencies as a count. Requires workflow dependency indexing to be enabled.

***

## `n8n 2.13` Baserow node adds batch operations support, plus 7 other features <a href="#n8n213" id="n8n213"></a>

**Released:** 2026-03-16

* [Allow instance admin to re-enable disabled secret provider connections](https://github.com/n8n-io/n8n/pull/26760): External secrets connections that were disabled (soft-deleted) by a project admin now show an 'Inactive' badge in Settings > External Secrets. Instance admins with the appropriate permission can re-enable such a connection via a new activate action, restoring it to active status without recreating it. The reload action is disabled for inactive connections, and success or error toasts confirm the outcome.
* [Baserow Node: Add batch operations, more filters, add DB token credential](https://github.com/n8n-io/n8n/pull/19758): The Baserow node now supports Batch Create, Batch Update, and Batch Delete operations, letting you process up to 200 rows in a single request, either by defining fields manually or auto-mapping input data. The Get Many operation gains a much expanded set of filter operators covering more field types and comparisons. Additionally, a new Database Token credential type allows authenticating with a Baserow API token instead of username and password.
* [Add opt-in toggle for external secrets system roles](https://github.com/n8n-io/n8n/pull/26684): When role-based access control is enabled for external secrets, admins can now toggle whether project admin and editor roles automatically get external secrets permissions (view, manage, sync providers, list secrets) within their projects. The new setting is available in the External Secrets settings page, with a confirmation prompt shown when disabling it, and applies dynamically without requiring a restart.
* [Add telemetry events for workflow diff in version history](https://github.com/n8n-io/n8n/pull/26778): This release adds internal telemetry to better understand how users interact with the workflow diff view in version history and push/pull comparisons. It tracks when the diff view is opened (now noting whether it came from version history or the push/pull modal), when users switch source or target versions, when the changes list dropdown is opened, and when a node is selected from the changes list. This is an internal analytics improvement with no visible UI changes for users.
* [Conditional credit usage banner](https://github.com/n8n-io/n8n/pull/26891): AI Builder's chat interface now keeps credit usage out of the way by default. The always-visible credits bar under the chat input has been replaced with a settings icon in the sidebar header, which opens a dropdown showing your credit count, progress bar, and a link to get more credits. A dismissible warning banner now appears above the chat input only when credits drop to 10% or below.
* [Enable project editors to view external secret vaults](https://github.com/n8n-io/n8n/pull/27007): Project editors who only have external secrets vault access (without full project update permissions) can now view the Project Settings page to see and manage external secret vaults, without needing broader project admin rights. Other settings sections like name, description, members, and danger zone remain hidden unless the user has project update permission.
* [Custom auth redacts values correctly](https://github.com/n8n-io/n8n/pull/26895): For Custom Auth credentials, the JSON authentication value can now be viewed and edited normally before the credential is saved, then is automatically masked once saved, protecting sensitive data without requiring the field to be defined as a password type. The credential editor now shows a redacted placeholder with an edit option for saved Custom Auth JSON values.
* [Show folder tree view in source control push/pull modals](https://github.com/n8n-io/n8n/pull/26758): Source control Push and Pull modals now display workflows grouped by their folder structure instead of a flat list. Folder rows can be collapsed/expanded, and in the Push modal, folder checkboxes let you select or deselect all workflows within a folder, plus a new folder filter to scope the list to a specific path. This makes it easier to review and manage changes in instances with many folders.

***

## `n8n 2.12` Switch versions directly in workflow history diff, plus 6 other features <a href="#n8n212" id="n8n212"></a>

**Released:** 2026-03-09

* [Add 'New' badge to project roles and upgrade landing page](https://github.com/n8n-io/n8n/pull/26348): Project roles now shows a "New" badge in the settings sidebar and on the project roles page title, replacing the previous "Beta" label. For users without an enterprise license, the upgrade prompt has been redesigned with a clearer blank-slate layout, including icons, a description, a "Learn more" link, and an upgrade or view-plans button depending on deployment type.
* [Implement read-only mode for external secrets connections](https://github.com/n8n-io/n8n/pull/26432): When viewing an external secrets connection shared globally from within a project, the connection modal now shows a read-only notice and hides the save and delete buttons, preventing edits without sufficient permissions. Instance admins see a message pointing them to instance-level settings, while others are told to contact their admin. Project secret connections are now also sorted alphabetically by name instead of by secret count.
* [Make it possible to pick Chat hub model by ID even if no models are loaded](https://github.com/n8n-io/n8n/pull/26435): Fixed Chat Hub model selection for providers like Azure where model lists can't be fetched automatically. Previously, the option to manually enter a model ID was hidden if configured credentials didn't populate a model list. Now, as long as credentials are set, users can choose 'Choose model by ID' and manually type in a model identifier (e.g. gpt-5-mini) to use it.
* [Add option to hide credential overwrites](https://github.com/n8n-io/n8n/pull/26489): Added a new N8N\_SKIP\_CREDENTIAL\_OVERWRITE environment variable that accepts a comma-separated list of credential types. For listed types, existing credentials with credential overwrites continue to work, but new credentials cannot be created using the managed overwrite, and the editor UI defaults to custom credential entry instead of the managed option. This helps admins deprecate managed cloud credentials while keeping existing workflows functional.
* [Chat Node: Return chat message instead of input data if Chat is not waiting for user input](https://github.com/n8n-io/n8n/pull/26167): The Chat node has been updated to version 1.3. When the node is not waiting for user input, it now returns the actual chat message sent instead of the original input data, fixing confusing output in earlier versions. Existing workflows using older versions retain their previous behavior; new or upgraded nodes default to version 1.3.
* [Implement additional checkbox confirmation for quick connect flow](https://github.com/n8n-io/n8n/pull/26472): Quick Connect confirmation dialogs (e.g. for Firecrawl) can now include a required consent checkbox alongside the consent text, configurable per integration. Users must check the box before confirming, ensuring explicit acknowledgment. The quick connect promotion banner is also now hidden when no banner text is configured, avoiding empty callouts.
* [Allow switching versions in workflow history diff view](https://github.com/n8n-io/n8n/pull/26418): The workflow history diff view now includes dropdown selectors for choosing which two versions to compare, letting users switch versions directly from the diff screen without navigating back to the history list. Versions are grouped by date and show status indicators for latest, published, and default states, making it easier to review and compare changes across a workflow's history.

***

## `n8n 2.11.2` Checkbox confirmation added to quick connect <a href="#n8n2112" id="n8n2112"></a>

**Released:** 2026-03-09

* [Implement additional checkbox confirmation for quick connect flow (backport to release-candidate/2.11.x)](https://github.com/n8n-io/n8n/pull/26686): Quick Connect credential setup can now require an explicit checkbox confirmation, in addition to the existing consent text, before proceeding. Node creators can configure a consent checkbox message alongside the consent text, and the confirmation dialog only proceeds once the box is checked. Also, the Quick Connect promotion banner no longer displays when no banner text is configured.

***

## `n8n 2.11` Compare workflow history versions side by side, plus 12 other features <a href="#n8n211" id="n8n211"></a>

**Released:** 2026-03-03

* [Chat Trigger Node: Add Suggested prompts, shown on Chat hub](https://github.com/n8n-io/n8n/pull/26217): The Chat Trigger node now supports defining suggested prompts, configurable when 'Available in Chat' is enabled. These prompts appear as clickable suggestions on the empty state when starting a new conversation with a Workflow Agent in Chat Hub, letting users quickly begin common tasks. Each prompt can include optional custom icon or emoji, and clicking one populates the chat input with the prompt text.
* [Expose workflow:execute scope checkbox in custom role UI](https://github.com/n8n-io/n8n/pull/26405): The custom role editor now shows a dedicated "Execute" checkbox for workflows, instead of silently tying execute permission to the edit permission. Checking Execute automatically enables View (since execute requires read access), and unchecking View automatically disables Execute. Editing workflows no longer implicitly grants or revokes execute access, giving admins clearer, more predictable control over workflow permissions in custom roles.
* [Add project badge in data table overview](https://github.com/n8n-io/n8n/pull/26289): Data tables in the overview list now display a project badge, similar to the one already shown for workflows. The badge indicates which project (personal or team) a data table belongs to, making it easier to see ownership at a glance directly from the data table cards.
* [Add success button variant and fix trial banner CTA styling](https://github.com/n8n-io/n8n/pull/26190): Added a new 'success' (green) button variant to n8n's design system, usable across the UI. The trial banner's call-to-action button now supports this modern variant directly from backend config, while still correctly rendering legacy style-based colors (success, warning, danger, primary) for backward compatibility, fixing inconsistent CTA button styling.
* [Forward rich message types from SDK instead of flattening to text](https://github.com/n8n-io/n8n/pull/26177): The AI Workflow Builder assistant now displays summary messages, agent suggestions, and code snippets as properly formatted rich blocks instead of converting them to plain markdown text. This gives these message types their intended visual presentation in the chat UI, improving readability of assistant responses. Also updated general error guidance wording used when the assistant encounters non-recursion errors.
* [Add assignments tab for custom roles with project visibility](https://github.com/n8n-io/n8n/pull/25992): Custom project roles now have an Assignments tab showing which projects use the role, including member counts and last assigned dates. Admins can view project members and their role labels, and reassign users before deleting a role. Role deletion dialogs are now context-aware, offering a link to assignments when a role is in use, or a simple confirmation when it's unused.
* [Update Replace Me placeholder in Loop Over Items](https://github.com/n8n-io/n8n/pull/23756): The auto-added "Replace Me" placeholder node inside Loop Over Items (and similar nodes) now appears as a clearly marked placeholder on the canvas, styled with a dashed border and a plus icon. Double-clicking it opens the node creator, labeled "Replace this step", to quickly swap in a real node, making it more obvious what action is needed.
* [Use single select dropdown for selecting scope of a secrets store](https://github.com/n8n-io/n8n/pull/26146): When configuring a secrets store, choosing its scope (Global or a specific project) now uses a single-select dropdown instead of the previous project-sharing multi-select component, streamlining the selection experience. Updated helper text clarifies that selecting a project shares the secrets store only with that project, while choosing Global shares it with all projects.
* [Add quick connect inside the credential edit modal](https://github.com/n8n-io/n8n/pull/26058): When creating a new credential from the credential edit modal, Quick Connect is now shown by default for supported services, letting users connect an account without manually entering credential details. Clicking "or enter manually" switches to manual setup instead. Quick Connect is not available when editing existing credentials.
* [Allow comparing workflow history versions](https://github.com/n8n-io/n8n/pull/26060): You can now compare any two versions of a workflow directly from the Workflow History list. A new Compare button appears on each version (except the currently selected one) and opens a full-screen diff view, reusing the existing diff viewer. The comparison state is reflected in the URL, so links to a specific version comparison can be shared or refreshed.
* [Add dynamic credentials UI for ChatHub](https://github.com/n8n-io/n8n/pull/25685): ChatHub now shows when a workflow requires OAuth credentials before it can run, with a warning in the chat input and a side panel for connecting or disconnecting accounts. Users can authorize required credentials via an OAuth popup, see a live connected/total count, and sending is blocked until all required credentials are authenticated. This feature is behind a flag and gated to ChatHub workflows using dynamic credential resolution.
* [Enable adding secret store from project settings page](https://github.com/n8n-io/n8n/pull/26122): Users with the right project permissions can now add a secret store directly from the project settings page, rather than needing instance admin access. The sharing tab in the secret store connection modal is now hidden unless the user has permission to share it globally. Permission checks across these areas now consistently use the RBAC store instead of user role checks.
* [Add searching and sorting to data table overviews](https://github.com/n8n-io/n8n/pull/25623): Data table overview pages now support searching by name and sorting by name, creation date, last updated date, and size, alongside a project pill display. Sort and search preferences are persisted per project, though size-based sorting is excluded from persisted defaults due to its extra query cost. This makes it easier to find and organize data tables, especially in workspaces with many tables.

***

## `n8n 2.10` Streaming canvas chat with Chat SDK, plus 7 other features <a href="#n8n210" id="n8n210"></a>

**Released:** 2026-02-23

* [Allow discarding and renaming columns during CSV import](https://github.com/n8n-io/n8n/pull/25605): When importing a data table from CSV, you can now exclude unwanted columns and rename columns during setup, with data correctly mapped by name instead of position. Type detection is also improved by sampling up to 100 rows instead of just the first, so columns with early empty values are no longer misclassified. Attempting to import with all columns discarded is now rejected with a clear error.
* [Improve quick connect frontend implementation](https://github.com/n8n-io/n8n/pull/26055): Improved the Quick Connect experience: the community node preview now shows an explanatory tooltip on the Quick Connect label, the "or setup manually" text wraps properly on narrow node panels, canceling a Pinecone quick connect no longer shows an error message, and a bug causing duplicate credentials to be created when reopening the Pinecone connect popup has been fixed.
* [Refine external secrets management on project settings …](https://github.com/n8n-io/n8n/pull/26016): The External secrets section in project settings has been refined. Secrets are now grouped by connection, showing a secret count per connection and loading secrets only when a connection row is expanded, improving performance for paginated lists. The redundant secrets store column was removed, and long secret lists now scroll within a fixed-height container instead of expanding the page.
* [Show inline error messages for testing connection feedback](https://github.com/n8n-io/n8n/pull/25873): When testing a secret provider connection, feedback is now shown as an inline banner within the connection modal instead of toast notifications, making success and error states clearer in context. Error messages now include specific details about the failure. Additionally, fetching an existing vault connection now correctly retrieves and displays its secret count.
* [Add tab scoped collaboration](https://github.com/n8n-io/n8n/pull/25646): Workflow editing locks are now scoped to individual browser tabs instead of users. If you open the same workflow in multiple tabs, only one tab can edit at a time; other tabs show a read-only indicator with an option to take over editing, and switching tabs no longer requires releasing the lock from a different device or session.
* [Enable streaming in canvas chat](https://github.com/n8n-io/n8n/pull/20991): Canvas chat now integrates the Chat SDK directly, bringing it closer to the hosted chat experience and enabling streaming responses during manual executions. Chat triggers register test webhooks per session, similar to regular webhook triggers. Chat also gains message history navigation (arrow keys), message actions like resend and copy-to-input, and refined styling options.
* [Build pinecone quick connect integration flow](https://github.com/n8n-io/n8n/pull/25854): Added Quick Connect support for Pinecone, letting users authenticate the Pinecone Vector Store node (and community Pinecone Assistant node) via a popup-based connect flow instead of manually entering API credentials, streamlining setup. This requires admin-side configuration via environment variables and is not enabled by default. Also added a configurable Cross-Origin-Opener-Policy header setting to support the popup-based flow.
* [Show execution data in preview](https://github.com/n8n-io/n8n/pull/25501): Embedded canvas views can now render a workflow preview with per-node execution status (success, error, or canceled) via a new openExecutionPreview message, without loading real execution output data. Node output columns can optionally be approximated from a lightweight schema for context, keeping actual data hidden. This is aimed at parent applications embedding n8n canvases rather than the standard n8n UI.

***

## `n8n 2.9.4-exp` Setup panel verifies credentials before marking complete <a href="#n8n294-exp" id="n8n294-exp"></a>

**Released:** 2026-02-27

* [In setup panel only mark credentials as completed if they are tested](https://github.com/n8n-io/n8n/pull/25658): The setup panel now only marks a credential as complete after it passes a background connection test, rather than as soon as it's selected. Selecting a credential, saving one in the credential modal, or refreshing the page triggers an automatic test; the checkmark shows only on success, while failed or in-progress tests keep the card marked incomplete. This prevents workflows from appearing ready when credentials are actually invalid.

***

## `n8n 2.9` Focused Nodes for targeted AI Builder context, plus 10 other features <a href="#n8n29" id="n8n29"></a>

**Released:** 2026-02-16

* [Stripe Node: Add more triggers for invoice payments](https://github.com/n8n-io/n8n/pull/25454): The Stripe Trigger node now supports two additional webhook events: invoice.paid, which fires when an invoice payment succeeds or is marked paid out-of-band, and invoice\_payment.paid, which fires when an InvoicePayment is successfully paid. Users can now trigger workflows directly from these Stripe events without additional workarounds.
* [Improve focused nodes chips with message display, tooltips, and "All nodes" state](https://github.com/n8n-io/n8n/pull/25582): The AI assistant chat's focused node context tags now display as chips directly inside your sent messages instead of plain text, with a single "All nodes" chip when every node is selected. Unconfirmed node chips now show tooltips explaining what clicking them does. Unconfirmed nodes now persist between messages instead of being cleared, chip collapsing kicks in sooner, close buttons are easier to click, and the feature is now on by default.
* [Add custom color picker for sticky notes](https://github.com/n8n-io/n8n/pull/23699): Sticky notes now support custom colors, not just the 7 preset options. A new 8th color swatch opens a picker to choose any hex color, with recent custom colors remembered. Custom colors automatically get theme-aware borders for good visibility in both light and dark mode, and existing preset colors continue to work unchanged.
* [Set default header auth domains in the UI for new credentials](https://github.com/n8n-io/n8n/pull/25563): New Header Auth credentials now default to allowing no domains for HTTP requests, instead of an unrestricted default. This change applies only to newly created credentials in the UI; existing Header Auth credentials are unaffected. The update improves security by requiring users to explicitly specify allowed domains when creating new credentials.
* [Show Quick connect banner in the NDV](https://github.com/n8n-io/n8n/pull/25506): The node details view (NDV) now shows a Quick Connect promotional banner when a node supports Quick Connect but has no credentials configured yet. The banner only appears when the Quick Connect feature is enabled, the NDV is editable (not in preview or read-only mode), helping users discover a faster way to set up credentials.
* [UX improvements for external secret providers](https://github.com/n8n-io/n8n/pull/25686): External secret provider connections get several UX improvements: connection list cards now show a badge indicating whether a connection is shared globally or with a specific project; the sharing tab disables saving until a scope is explicitly chosen; deleting a connection with no linked credentials now shows a simpler no-impact confirmation; and testing a connection now displays clear success or error toast messages.
* [Add Firecrawl handler to the Quick connect module](https://github.com/n8n-io/n8n/pull/25528): Quick Connect now supports Firecrawl: enterprise admins can configure a backend Quick Connect option for Firecrawl, which automatically creates a Firecrawl user and retrieves an API key to set up the credential, removing the need for manual API key entry. This replaces the earlier sample/test handler used during development.
* [Allow manual login setting for OIDC alongside SAML](https://github.com/n8n-io/n8n/pull/25687): Admins can now allow or disallow manual (non-SSO) login for individual users when OIDC is enabled, matching existing SAML behavior. Previously this per-user manual login toggle and the invite-button restriction only applied when SAML SSO was active; now they also apply when OIDC SSO is enabled, giving consistent user management controls across both SSO methods.
* [Enable deletion of external secret stores](https://github.com/n8n-io/n8n/pull/25573): You can now delete external secret store connections directly from n8n. A new confirmation modal shows how many secrets and credentials will be affected before deletion, requiring you to type the connection name to confirm. The credentials list can also be filtered by secret store when navigating from this modal, helping you review impacted credentials before deleting a connection.
* [Add Focused Nodes feature](https://github.com/n8n-io/n8n/pull/25452): Added Focused Nodes, letting users select or @-mention specific nodes to give the AI Builder targeted context instead of reasoning over the whole workflow. Selected nodes appear as chips in chat, sync with canvas selection, and can be added via right-click. The AI now resolves references like "this" or "it" to the selected nodes. Currently gated behind a feature flag for experimentation.
* [Implement credentials setup in the setup panel](https://github.com/n8n-io/n8n/pull/25514): The workflow Setup Panel now includes credential setup cards, letting you configure required credentials for each node directly from the sidebar. Cards show credential fields per node, indicate completion status, and support testing a node once its credentials are set. The Setup Template button now opens this sidebar when the feature is enabled, streamlining credential configuration for templates and workflows.

***

## `n8n 2.8` External secrets sharing and project settings integration, plus 12 other features <a href="#n8n28" id="n8n28"></a>

**Released:** 2026-02-11

* [Add projects to credentials list response](https://github.com/n8n-io/n8n/pull/25384): The Public API's GET /credentials endpoint now returns a shared field for each credential, listing the projects it is shared with, including project id, name, sharing role, and timestamps. Previously this endpoint omitted sharing information entirely, so users can now see at a glance which projects have access to a given credential.
* [Motorhead Node: Hide deprecated Motorhead memory node from UI](https://github.com/n8n-io/n8n/pull/25536): The Motorhead Memory node has been removed from the node selector since the Motorhead project is no longer maintained. Existing workflows that use this node will continue to function normally, but a deprecation notice now appears in the node's settings to inform users it may be removed in a future release.
* [Add text search to IconPicker](https://github.com/n8n-io/n8n/pull/25357): The IconPicker component, used for project icons and ChatHub workflow/agent icons, now supports text search across both icons and emojis. Emoji metadata is lazily loaded from emojibase to enable matching by label and tags. A new random selection button lets users quickly pick a distinct icon or emoji without browsing manually.
* [Auto-focus chat input when typing](https://github.com/n8n-io/n8n/pull/25317): In the AI chat view, typing anywhere outside an input field now automatically focuses the chat input and inserts the typed character, similar to ChatGPT-style behavior. The input won't steal focus when another field or textarea is active, a modal is open, during keyboard shortcuts or IME composition, or while the welcome screen is showing or a message is being processed.
* [Extend secrets provider connection modal with project s…](https://github.com/n8n-io/n8n/pull/25295): The external secrets store connection modal now includes a Sharing tab, letting users share a secrets provider connection with a single project or globally (global by default). A new Share action was added to connection cards, and permission checks now control who can edit or change sharing scope. This gives admins finer control over which teams can access external secrets.
* [Support Chat node's 'Send and Wait for Response' mode approval buttons on Chat hub](https://github.com/n8n-io/n8n/pull/25338): Chat hub now renders approval buttons when a workflow's Chat node is used in 'Send and Wait for Response' mode. Clicking a button resumes the paused execution with the chosen response, and the chat UI shows a waiting state until a button is clicked, blocking further input when required.
* [Kafka Trigger Node: Refactoring and fixes](https://github.com/n8n-io/n8n/pull/25088): The Kafka Trigger node has been refactored with new version 1.3 options for controlling offset resolution timing (immediately, on completion, on success, or on allowed statuses), a configurable retry delay on errors, and improved heartbeat handling to prevent session timeouts during long-running executions. It now also checks consumer running/stale state during rebalances, avoids waiting on donePromise for manual/test executions, and includes clearer parameter descriptions.
* [Add `Name version` action to workflow history](https://github.com/n8n-io/n8n/pull/25316): You can now name and describe workflow versions directly from the workflow editor and workflow history pages, as a licensed feature. Version details are prepopulated when available. The Unpublish action has moved from the main actions menu into a new dropdown next to the Publish button, alongside the new Name version option.
* [Boost Claude Opus 4.6 priority in chat hub model selector](https://github.com/n8n-io/n8n/pull/25434): Added Claude Opus 4.6 as an available Anthropic model in the Chat Hub model selector, and made it the top-priority default choice, appearing above Opus 4.5, Sonnet 4.5, and Haiku 4.5 in the list.
* [Improve sticky note behavior during node insertion](https://github.com/n8n-io/n8n/pull/25207): When inserting a node on the canvas, sticky notes now behave more intelligently: a sticky containing the source node stays anchored in place and stretches to fit the new node, while stickies grouped with nodes that shift position move and stretch together to preserve visual grouping. Connection lines between nodes also now stay strictly vertical during insertion, fixing a bug where node positions shifted unexpectedly.
* [Preview not installed community tools](https://github.com/n8n-io/n8n/pull/24859): When importing workflows or templates that use community tool nodes you don't have installed, n8n now shows a proper preview with the correct node icon and handles instead of an unrecognized/broken node, letting you see and install the missing community node. Community nodes also now appear in the Tools section of the node search panel.
* [Refine permission checks in Secrets Provider Connection…](https://github.com/n8n-io/n8n/pull/25389): Improved permission handling for External Secrets provider connections. Project-scoped users can now manage and update connections within their own projects, while sharing a connection globally or across projects still requires global permissions. Update permission checks now consider the connection's original project scope, allowing edits or unsharing without requiring further sharing rights. Also fixed an issue where the secrets count could display incorrectly.
* [Add external secrets section to project settings](https://github.com/n8n-io/n8n/pull/25453): Project settings now include an External Secrets section, showing secrets available to the project grouped by provider with expand/collapse, search, and pagination. Project admins can add secret store connections directly from this view, while instance admins are guided to share existing secret stores. Empty states adapt based on user role and available providers.

***

## `n8n 2.7` Secret store connection modal for multiple providers, plus 10 other features <a href="#n8n27" id="n8n27"></a>

**Released:** 2026-02-02

* [Add option to select eval suite on manual workflow dispatch](https://github.com/n8n-io/n8n/pull/24998): The internal AI evals GitHub Actions workflow now lets maintainers choose which evaluation suite to run when manually triggering it: both suites (default), spec (pairwise) only, or matrix (LLM judge) only. Automatic runs triggered by pushes to master continue running both suites as before. This is an internal CI and testing tool change and does not affect end users of n8n.
* [FormTrigger Node: Support ip filtering for the FormTrigger node](https://github.com/n8n-io/n8n/pull/24644): The Form Trigger node now supports IP allowlisting, matching the existing Webhook node capability. You can restrict form submissions to specific IP addresses, CIDR ranges, or IPv6 addresses via a new IP(s) Allowlist option. The underlying Webhook node's allowlist logic was also enhanced to support CIDR ranges and IPv6, beyond the previous IPv4-only support.
* [Kafka Trigger Node: Add option to keep binary data for downstream processing](https://github.com/n8n-io/n8n/pull/21843): The Kafka Trigger node now has a version 1.2 with a new "Keep Binary Data" option. When enabled, message values are preserved as raw binary data alongside the usual string/JSON output, allowing downstream nodes to handle formats like Avro-serialized messages without data loss. Existing workflows on v1.0 and v1.1 are unaffected, and the option defaults to off in v1.2.
* [Remove success toasts on workflow creation](https://github.com/n8n-io/n8n/pull/24979): n8n no longer shows a success toast notification when a new workflow is created, whether in your personal space, a project, or a folder. Saving a new workflow still works as before, but without the extra confirmation popup, streamlining the workflow creation experience.
* [Show ChatHub action buttons on hover](https://github.com/n8n-io/n8n/pull/24923): In ChatHub, action buttons on chat messages (copy, edit, regenerate, alternatives) are now hidden by default on devices with hover support and only appear when hovering over a message or when focus is within it, with a smooth fade-in transition. This reduces visual clutter in the chat interface. Touch devices are unaffected, as buttons remain visible there.
* [Zendesk Trigger Node: Add webhook signature verification](https://github.com/n8n-io/n8n/pull/24881): The Zendesk Trigger node now verifies incoming webhook requests using HMAC-SHA256 signature checks against Zendesk's X-Zendesk-Webhook-Signature header, rejecting invalid or unsigned requests with a 401 response. The signing secret is fetched automatically from Zendesk when the webhook is created and stored securely. Existing workflows without a stored secret continue working unaffected, ensuring backwards compatibility while improving security against spoofed webhook calls.
* [Crypto Node: Add credentials for Hmac and Sign operations](https://github.com/n8n-io/n8n/pull/24798): The Crypto node has been updated to version 2, moving the Hmac Secret and Sign Private Key out of node parameters and into a new dedicated Crypto credential. Previously these values were stored in plain text within the node; they are now stored securely as credentials, improving security. Existing workflows using version 1 continue to work unchanged.
* [Pause autosave on connection failures](https://github.com/n8n-io/n8n/pull/24456): n8n now detects backend connectivity issues via periodic health checks and automatically pauses workflow autosave while offline, resuming it once the connection is restored. The connection status indicator has also been updated to distinguish between a network outage and a lost push connection, showing an 'Offline' message with a tooltip explaining that changes will be saved once reconnected.
* [Add Currents.dev node](https://github.com/n8n-io/n8n/pull/24566): Added a new Currents.dev integration with two nodes. The Currents node lets you manage test action rules, and view projects, runs, instances, spec files, tests, test results, and signatures via the Currents API. The Currents Trigger node starts workflows on Currents events (run started, finished, canceled, or timed out), automatically creating, updating, and removing webhooks as the workflow is published or unpublished. Requires a Currents API key credential.
* [Secret Store connection modal for multiple providers](https://github.com/n8n-io/n8n/pull/25004): You can now add and edit External Secrets connections directly from a new modal in Settings. It lets you select a secrets provider type, name the connection, configure provider-specific settings, test the connection, and save updates, with validation and clearer error/success messaging, plus a disconnected-state indicator on connection cards.
* [Microsoft Agent 365 Trigger Node: Integration for Microsoft Agents 365](https://github.com/n8n-io/n8n/pull/25145): Added an early preview Microsoft Agent 365 Trigger node and credential, letting workflows act as Microsoft 365 Agents. It authenticates via tenant ID, client ID, and client secret, processes incoming agent activities through a webhook, and supports connecting a language model, memory, tools, an output parser, and optional Microsoft MCP tools like Calendar and Mail. Requires enrollment in Microsoft's Frontier preview program.

***

## `n8n 2.6` Kafka trigger node gets batch processing, plus 12 other features <a href="#n8n26" id="n8n26"></a>

**Released:** 2026-01-26

* [Add new Button component to design system (no-changleog)](https://github.com/n8n-io/n8n/pull/24467): This is an internal-only change: a new Button component has been added to n8n's design system, supporting multiple variants, sizes, loading/disabled/icon-only states, link rendering, and accessibility warnings. It is not yet used anywhere in the product, as replacing the existing button implementation is planned for a future release. No user-facing changes result from this PR.
* [Add support for custom scopes in the MS Excel credential](https://github.com/n8n-io/n8n/pull/24756): The Microsoft Excel OAuth2 credential now supports custom scopes. A new 'Custom Scopes' toggle lets users override the default OAuth scopes (openid, offline\_access, Files.ReadWrite) with their own, enabling access to additional Microsoft Graph permissions when needed, while keeping the previous defaults intact if left disabled.
* [Add support for custom scopes in the MS Teams credential](https://github.com/n8n-io/n8n/pull/24755): The Microsoft Teams OAuth2 credential now supports custom scopes. A new toggle lets users enable custom scopes and specify their own list of enabled scopes instead of the default set, mirroring the existing Entra credential behavior. When disabled, the credential continues using the default scopes required for the node to function correctly.
* [Airtop Node: Add resource locator in the agent node](https://github.com/n8n-io/n8n/pull/23008): The Airtop node's Run Agent operation now lets you select an agent from a searchable list or enter its ID directly, instead of pasting a webhook URL. Agent input parameters are now configured through a dynamic resource mapper that automatically loads the selected agent's expected fields, with validation for required parameters, replacing manual JSON entry.
* [Kafka Trigger Node: Additional options for batch processing](https://github.com/n8n-io/n8n/pull/24596): The Kafka Trigger node now supports batch processing options. New settings include Batch Size (process multiple messages together instead of one-by-one), Fetch Max Bytes and Fetch Min Bytes (control how much data is fetched per request), and Partitions Consumed Concurrently (process multiple partitions in parallel). These options give more control over throughput and performance when consuming from Kafka, addressing issues with parallel processing and batching behavior.
* [Prioritize newer models on Chat hub model picker](https://github.com/n8n-io/n8n/pull/24867): Chat hub's model picker now prioritizes newer, more capable models. Models can be assigned a priority value, and the picker sorts options by this priority (highest first) instead of list order. When no credential is selected, the highest-priority available model is auto-selected, so users see and get modern models like GPT-5.x, Claude Opus 4.5, and Grok 4.1 by default instead of older ones like chatgpt-4o-latest.
* [New operations in the Slack node](https://github.com/n8n-io/n8n/pull/24643): The Slack node's User Group resource now supports two new operations: Get Users, which retrieves the members of a user group (optionally resolving full user details), and Add Users, which adds new members to a user group while preserving existing ones. This makes it easier to manage and inspect Slack user group membership directly from n8n workflows.
* [Add unpublish to workflow list](https://github.com/n8n-io/n8n/pull/23228): You can now unpublish a published workflow directly from the workflow list, without opening it first. An 'Unpublish' option appears in a workflow card's action menu when the workflow is published and you have update permissions, prompting a confirmation before reverting the workflow to unpublished status.
* [AI Agent Node: Pass chat input in denial messages](https://github.com/n8n-io/n8n/pull/24748): When a user rejects a human-in-the-loop tool call in the AI Agent node, the denial message sent back to the agent now includes the user's chat input/feedback, if provided, instead of a generic rejection notice. This gives the agent more context on why the tool call was denied and how to proceed, improving handling of rejected tool calls.
* [Microsoft Teams Node: Add support for government cloud tenants](https://github.com/n8n-io/n8n/pull/17297): Microsoft OAuth2 credentials now include a configurable Graph API Base URL option, with presets for Global, US Government, US Government DOD, and China cloud endpoints. This fixes '401 InvalidCloudInstance' errors and lets the Teams, Outlook, OneDrive, Excel, Entra, and Graph Security nodes connect to government and other sovereign cloud tenants instead of only the default public Microsoft Graph endpoint.
* [Dynamic creds workflow fails if no dynamic creds exist](https://github.com/n8n-io/n8n/pull/24660): Fixed an issue where workflows using dynamic credentials could silently fall back to static credentials when no dynamic credential resolver was configured. Now, if a credential is marked as resolvable but has no resolver ID, execution correctly fails with a clear resolution error instead of using static credentials, closing a potential security gap for workflows relying on per-user dynamic authentication.
* [Add workflow demo diff view](https://github.com/n8n-io/n8n/pull/24585): n8n now supports an embeddable workflow diff demo view, accessible via a new /workflows/demo/diff route. It receives before/after workflow data via postMessage and displays them side by side using the existing workflow diff canvas, with optional automatic layout (tidy-up) of nodes for aligned comparison. Intended for embedding workflow diffs in external contexts.
* [Make expression resolution async](https://github.com/n8n-io/n8n/pull/24249): Expression resolution in the workflow editor is now handled asynchronously internally, laying the groundwork for future async expression resolvers and more complex computations without blocking the UI. This is primarily an internal architectural change affecting how expressions are resolved across the editor; there is no new user-facing feature or behavior change expected in this release.

***

## `n8n 2.5` ChromaDB node adds local vector database support, plus 12 other features <a href="#n8n25" id="n8n25"></a>

**Released:** 2026-01-20

* [Add a clarifying callout to Merge Node schema view](https://github.com/n8n-io/n8n/pull/24435): The schema view in the node editor now shows a dismissible callout when working with Merge nodes and multiple items: one on the output panel of the Merge node itself, and one on the input panel of nodes receiving data from a Merge node, both appearing when there is more than one item. The callout clarifies that displayed fields may come from multiple items and might not all be present in each individual item.
* [HTTP Request Node: Add option to disallow cross-origin credentials sharing](https://github.com/n8n-io/n8n/pull/24526): The HTTP Request node now includes a new version (4.4) with a 'Send Credentials on Cross-Origin Redirect' option. When disabled, authorization headers and credentials are no longer forwarded if a redirect points to a different origin, improving security. This is now the default behavior for new nodes, while existing nodes retain prior behavior of always forwarding credentials on redirects.
* [Add native browser notifications on AI workflow builder completion or waiting for input](https://github.com/n8n-io/n8n/pull/24224): The AI workflow builder can now send native browser notifications when a workflow finishes building or needs your input, so you're alerted even if you've switched browser tabs. A dismissible banner in the builder sidebar prompts you to enable notifications, with sensible cooldown limits to avoid over-prompting. Notifications only fire when the tab is not visible.
* [Allow editing / deleting project variables if you have the project scope](https://github.com/n8n-io/n8n/pull/24532): Project admins and editors can now edit and delete variables within a project if their project role grants the appropriate permissions, even without global variable update or delete permissions. Previously, the edit and delete buttons were only enabled based on global permissions, blocking users with project-level access. This was a front-end only change, as backend permission support already existed.
* [Data Table Node: Add Order By feature](https://github.com/n8n-io/n8n/pull/23677): The Data Table node's Get Row(s) operation now supports an Order By option. When enabled, users can choose a column to sort results by and select ascending or descending direction, with sorting applied consistently even when combined with filters and pagination.
* [GitHub Trigger Node: Add automatic webhook signature verification](https://github.com/n8n-io/n8n/pull/24203): The GitHub Trigger node now automatically generates a webhook secret when activated and verifies incoming webhook requests using the X-Hub-Signature-256 header with HMAC-SHA256. Requests failing verification are rejected with a 401 response. Existing webhooks created before this change continue to work without verification, ensuring backwards compatibility.
* [LmChatOpenAi Node: Update default model to gpt-5-mini](https://github.com/n8n-io/n8n/pull/24342): The OpenAI Chat Model node (LmChatOpenAi) now defaults to the gpt-5-mini model instead of gpt-4o-mini or gpt-4.1-mini, depending on node version. New workflows using this node will use gpt-5-mini unless a different model is selected. Placeholder text was also updated to reflect the new default.
* [Show tooltips for canvas edge buttons](https://github.com/n8n-io/n8n/pull/24311): Canvas edge toolbar buttons (add and delete connection) now show descriptive tooltips on hover, making their purpose clearer. Node handle label positioning was also adjusted slightly so labels align consistently with the node toolbar.
* [Use number input component for time saved setting](https://github.com/n8n-io/n8n/pull/24331): The time saved per execution field in workflow settings now uses a dedicated number input with increment/decrement controls, improving usability and fixing clunky spacing and layout issues previously seen in Firefox.
* [Autosave - Implement exponential backoff](https://github.com/n8n-io/n8n/pull/24464): Autosave now retries failed save requests using exponential backoff instead of failing silently. When a save fails, n8n shows a toast with the error and retries automatically after an increasing delay (starting at 2 seconds, capped at 32 seconds), resuming normal autosave once a save succeeds. This reduces the chance of losing unsaved workflow changes during transient network or server issues.
* [Chat Node: Regroup actions and add different response types](https://github.com/n8n-io/n8n/pull/23028): The Chat node has been overhauled with two actions: Send Message and Send and Wait for Response, aligning it with other human-in-the-loop nodes and grouping it with the Chat Trigger in the Node Creator. The wait action now supports response types: Free Text (plain reply, as before) and Approval, which shows Approve/optional Disapprove buttons in the chat, with an option to block free-text replies. Works with embedded and hosted chat, and when used as a tool.
* [ChromaDB Node: Add local chromadb support for complete local vector database](https://github.com/n8n-io/n8n/pull/19806): Added a new ChromaDB Vector Store node, enabling both self-hosted and cloud ChromaDB instances as a vector database in n8n. It supports load, insert, retrieve, update, and retrieve-as-tool operations, with collection management, metadata filtering, and dedicated credential types for self-hosted and Chroma Cloud authentication—useful for local and cloud RAG workflows.
* [Notify users on first prod error](https://github.com/n8n-io/n8n/pull/21764): n8n now sends an email to the workflow owner the first time a workflow fails in production on an instance, if no error workflows have been configured yet. The email links to guidance for setting up an error workflow to catch future failures. The notification is sent only once per instance, and the event is also tracked for telemetry.

***

## `n8n 2.4` Workflows now autosave automatically as you edit, plus 6 other features <a href="#n8n24" id="n8n24"></a>

**Released:** 2026-01-12

* [Show building and done status in page title for AI builder](https://github.com/n8n-io/n8n/pull/23987): The browser tab title now reflects AI builder status: it shows a "\[Building]" prefix while the AI builder is generating a workflow, and switches to "\[Done]" if you're on another tab when generation finishes. Returning to the tab resets the title to the normal idle state. This helps users who switch tabs know when their AI-generated workflow is ready.
* [Mailjet Node: Add Custom Campaign and Deduplicate Campaign Additional Fields](https://github.com/n8n-io/n8n/pull/11715): The Mailjet node's Send and Send Template email operations now support two new Additional Fields: Custom Campaign, which lets you assign a custom campaign name to a message, and Deduplicate Campaign, which prevents duplicate sends within the same campaign. Both map directly to Mailjet's Send API v3.1 campaign options, giving users finer control over campaign grouping and deduplication when sending emails through n8n.
* [Allow to set ChatHub workflow agent icon in NDV](https://github.com/n8n-io/n8n/pull/23562): You can now set a custom icon or emoji for a workflow agent exposed via the Chat Trigger node's 'Available in Chat' option, using a new Agent Icon field in the node editor. This icon appears in ChatHub's model selector and conversation history, making it easier for chat users to identify the agent. The icon replaces the previous behavior of using the workflow's owning project icon.
* [Support hours and days in prune time within workflow history](https://github.com/n8n-io/n8n/pull/24108): Workflow version history retention limits are now displayed in hours or days instead of only days, fixing an issue where retention periods under 24 hours incorrectly showed as "0 days." The retention message now correctly reads, for example, "limited to 5 hours" or "limited to 2 days," with proper singular/plural wording.
* [Git Node: Add reflog action](https://github.com/n8n-io/n8n/pull/21105): The Git node now supports a new Reflog operation, letting you retrieve the reference log for HEAD or a specified branch/reference. Results include parsed hash, ref, action, and message fields, with options to limit the number of entries or return all. Since the underlying git library lacks native reflog support, output is parsed manually from raw git command results.
* [Use new generated links within the UI and emails if feature is enabled](https://github.com/n8n-io/n8n/pull/23962): When enabled via feature flag, n8n now generates tamper-proof, JWT-based invite links instead of the previous predictable inviterId/inviteeId query parameters. This applies to invite links shown in Settings > Users and to invite emails sent from configured instances. Admins can generate and copy these secure invite links directly from the Users list; legacy link behavior remains unchanged when the flag is disabled.
* [Autosave workflows](https://github.com/n8n-io/n8n/pull/23036): Workflows now autosave automatically as you edit, with a debounce and a save animation to show progress, so the manual save button, command bar save, and save keyboard shortcut have been removed. Alongside this, collaborative editing now includes a write-lock system so only one user can edit a workflow at a time, with real-time notifications when access changes.

***

## `n8n 2.3` Data Table node gains full CRUD operations, plus 4 other features <a href="#n8n23" id="n8n23"></a>

**Released:** 2026-01-05

* [Add/remove files in editing ChatHub chat message](https://github.com/n8n-io/n8n/pull/23541): ChatHub now lets you add or remove file attachments when editing a chat message. You can keep existing files, delete unwanted ones, or attach new files, then resend to continue the conversation—useful for recovering from file-related model errors without starting over.
* [Data Table Node: Add data table crud operations to data table node](https://github.com/n8n-io/n8n/pull/22951): The Data Table node now includes a new "Table" resource with Create, Delete, List, and Update operations, letting workflows manage data tables programmatically. Create supports defining columns and types, with an option to reuse an existing table of the same name; List supports filtering and sorting; Update renames a table; Delete permanently removes a table and its data. Tables can now also be referenced by name, not just by ID or list selection.
* [Add `Stop All Executions` functionality](https://github.com/n8n-io/n8n/pull/23576): You can now stop multiple ongoing executions at once. A new 'Stop all' option in the Executions sidebar and global overview opens a modal where you can choose to cancel queued, running, and/or waiting executions, optionally scoped to the current workflow filter and date range, instead of stopping executions one by one.
* [Weaviate Node: Hybrid Search Support](https://github.com/n8n-io/n8n/pull/23252): The Weaviate vector store node now supports hybrid search, combining vector similarity with keyword-based text search. New options let users configure a query text, alpha weighting between vector and keyword search, fusion type (Relative Score or Ranked), query properties, max vector distance, auto-cut result limiting, and score explanation output, giving more control over search relevance and result tuning.
* [Form Node: Dynamic attributes in form editor](https://github.com/n8n-io/n8n/pull/23433): The Form node editor now supports hiding optional fields by default when configuring form elements, showing only required fields initially. An 'Add Field' picker lets you selectively reveal optional attributes as needed, reducing clutter in the node configuration UI. This applies to the Form node's field editor (version 2.5) and is powered by new fixedCollection type options (requiredOnly and related settings).

***

## `n8n 2.2` Connect workflows to MCP from settings, plus 1 other feature <a href="#n8n22" id="n8n22"></a>

**Released:** 2025-12-22

* [Group sub-node execution errors with same messages inside a tooltip](https://github.com/n8n-io/n8n/pull/23402): Node execution error tooltips on the canvas no longer repeat identical error messages for each failed execution. Repeated errors are now grouped into a single entry showing a count (e.g. 'Error message (x3)'), preventing the tooltip from overflowing and making it easier to read errors from sub-nodes like the Structured Output Parser.
* [Connect workflows from MCP settings page](https://github.com/n8n-io/n8n/pull/23025): You can now enable MCP access for workflows directly from a new modal on the settings page, making eligible workflows easier to discover and connect. Behind the scenes, workflow filtering by trigger type now supports multiple trigger types, and only workflows you have permission to update are shown when enabling MCP access.

***

## `n8n 2.1` Credential resolvers for dynamic credential mapping, plus 10 other features <a href="#n8n21" id="n8n21"></a>

**Released:** 2025-12-15

* [Edit workflow descriptions from the MCP page](https://github.com/n8n-io/n8n/pull/22967): You can now edit a workflow's description directly from the MCP settings page. The workflows table adds an 'Edit description' action (and clicking the description cell also opens the editor), letting users with workflow update permissions quickly update descriptions without leaving the MCP view.
* [FTP Node: Add timeout option](https://github.com/n8n-io/n8n/pull/21868): The FTP node now supports a configurable connection timeout option, available under Options for Delete, Rename, Upload, and List operations (and applied generally to connections). This helps when working with FTP/SFTP servers that are slow to respond, preventing premature timeouts during the handshake. Default remains 10 seconds if not set.
* [Add JS method aliases](https://github.com/n8n-io/n8n/pull/21799): Expression and Code node autocomplete now recognizes common aliases for JavaScript methods, such as append/push, remove/pop, contains/includes, size/count/length, upper/toUpperCase, and lower/toLowerCase. Typing a familiar alternative name now surfaces the matching n8n method with guidance on which method to actually use, making expressions easier to discover for users coming from other languages or tools.
* [Form Node: Split form name and label](https://github.com/n8n-io/n8n/pull/22304): The Form node and Form Trigger now support separate Field Name and Label properties in new version 2.4. Previously the field label doubled as the internal identifier used for query parameters, output keys, and binary data references; now the field name is used for these technical purposes while the label is purely for display, avoiding issues when labels change or contain special characters. Earlier node versions continue to use the label as before.
* [Google Gemini Node: Introduce built-in Gemini tools](https://github.com/n8n-io/n8n/pull/22454): The Google Gemini node (v1.1+) now supports Gemini's built-in tools: Google Search, Google Maps (with optional latitude/longitude targeting), URL Context, File Search (with store names and metadata filtering), and Code Execution. A new option also lets you include a merged text response combining all response parts, in addition to the raw candidate output.
* [Enable time saved node for testing](https://github.com/n8n-io/n8n/pull/22650): The Time Saved node is now generally available, removing its previous feature-flag restriction and hidden status. Users can add Time Saved nodes to workflows to dynamically calculate time savings based on execution path and items processed. Workflow settings now let users choose between fixed time-saved values or dynamic calculation via these nodes, with clearer UI messaging when both configurations are present.
* [Google Gemini Node: Ability to create a file store and upload files to it](https://github.com/n8n-io/n8n/pull/22988): The Google Gemini node now supports File Search stores for Retrieval Augmented Generation. New operations let you create a File Search store, list existing stores, delete a store, and upload files to a store either from a URL or from binary data, enabling document search workflows directly within n8n.
* [Implement modal to edit/create credential resolver, and resolver workflow settings](https://github.com/n8n-io/n8n/pull/22977): Workflow settings now include a Credential Resolver option, letting users create, select, and edit dynamic credential resolvers directly from a workflow's settings via a new modal. Resolvers can be configured with type-specific fields, edited, or deleted with confirmation. This feature requires the N8N\_ENV\_FEAT\_DYNAMIC\_CREDENTIALS feature flag to be enabled.
* [Rename columns in data tables](https://github.com/n8n-io/n8n/pull/21747): You can now rename columns in data tables. A new API endpoint validates the new name for uniqueness and reserved system column names, then updates the column both in n8n's metadata and the underlying database table, with permission checks based on project role (editor, admin, or owner required).
* [UI improvements for credential resolver modal](https://github.com/n8n-io/n8n/pull/23027): Improved the credential resolver modal: credentials configured for dynamic resolving now show a Dynamic tag, saving errors display an inline error callout instead of just a toast, and you can now change a resolver's type while editing it, with existing configuration re-validated against the new type. This feature remains gated behind a licensed, feature-flagged dynamic credentials module.
* [Add credentials resolvers list UI](https://github.com/n8n-io/n8n/pull/23082): Added a new Credential Resolvers settings page where users can view, create, edit, and delete credential resolvers used to map dynamic credentials to a triggering user's identity. The resolver editor now reuses shared logic with the new list view for consistent behavior. This is part of ongoing dynamic credentials support in workflow settings.

***

## `n8n 2.0` Workflow activation now requires a trigger node, plus 4 other features <a href="#n8n20" id="n8n20"></a>

**Released:** 2025-12-08

* [Automizy Node Remove Automizy node](https://github.com/n8n-io/n8n/pull/22471): The Automizy node and its credential type have been removed from n8n, as the Automizy service has been shut down. Workflows using the Automizy node will need to be updated to use an alternative service, since it is no longer available in n8n.
* [Crowd.dev node Remove crowd.dev node](https://github.com/n8n-io/n8n/pull/22469): The crowd.dev node, crowd.dev Trigger node, and crowd.dev API credential have been removed from n8n, as the third-party crowd.dev service has been retired. Workflows using these nodes will no longer function and should be migrated away from crowd.dev integrations.
* [Kitemaker node Remove Kitemaker node](https://github.com/n8n-io/n8n/pull/22470): The Kitemaker node and its credential have been removed from n8n, as the Kitemaker service has been retired by its provider. Workflows using the Kitemaker node will no longer function and should be migrated away from this integration.
* [Spontit Node Remove Spontit node](https://github.com/n8n-io/n8n/pull/22467): The Spontit node and its credential type have been removed from n8n, as the Spontit service has been retired and the integration no longer functions. Workflows using the Spontit node will need to be updated to use an alternative notification service.
* [Validate nodes before activating](https://github.com/n8n-io/n8n/pull/22916): Workflow activation now validates that a workflow contains at least one trigger-like node (trigger, poller, or webhook) before activating, fixing a bug where this check was unreliable in multi-main setups. Attempting to activate an invalid workflow returns a clear validation error and the workflow's previous active state is preserved. Additional validation checks currently done only on the frontend will be added in future updates.
