
Eighteen entries in the release feed, no fireworks, one breaking change that will quietly bite you. Here is what n8n 2.31 actually means for the people who have to keep automations alive on Monday morning.
Some releases you install for one loud feature. Others you install because the product got a little more grown-up. n8n 2.31 is the second kind.
The release feed lists 18 changes: a major Notion integration rewrite, better node grouping, MCP settings leaving preview, plus updates to Form, Merge, BigQuery, Zendesk, AWS Bedrock and a few others. Nothing here will make it into a launch video. But if you run workflows that other people depend on, this release touches three things you care about every day: how readable your canvas is, how safe your queries are, and how much of your Notion setup is about to break.
I look at these releases as a product manager, not as a changelog reader. So for each change: what it is, what it buys you, where it actually lands in real work — and what to check before you hit upgrade.
The headline: Notion node v3
The biggest change in 2.31 is the Notion node. n8n moved it onto the new Notion API version and shipped node v3.
The important part is the data model. Notion databases now work through data sources. In a number of operations you can no longer pass a plain database ID — you select or pass a data source instead. If your workflows carry database IDs around in expressions, environment variables or a lookup table, that is your migration right there.
It looks like a chore. It comes with a genuinely useful payload:
- search and get Data Source;
- get page content as Markdown;
- update pages via Markdown;
- work with blocks in Markdown and JSON;
- download files attached to database pages;
- a new block builder that lets you reorder blocks;
- data source support in the Notion Trigger.
Where this pays off
Markdown in and Markdown out is the quiet star here. It turns Notion from “a database with an awkward block API” into something you can treat as an editorial system:
- an author writes the piece in Notion;
- n8n pulls the page as Markdown;
- an AI step checks structure, style and obvious errors;
- the workflow creates a draft in WordPress;
- the published URL and status go back into the Notion page.
Same pattern works for a knowledge base fed from tickets, weekly reports assembled from several sources, project documentation, or client cards that stay in sync with your CRM. Before v3 you either fought the block JSON or gave up and used the HTTP Request node with Notion’s API directly. That workaround is now mostly unnecessary.
What to check before you upgrade
Do not migrate old workflows blind. Duplicate the workflow first, then verify:
- search pages;
- create database page;
- get existing pages;
- every expression where the ID arrives dynamically;
- environment variables and external tables where you store identifiers.
This is the one item in 2.31 that deserves a real migration slot in your sprint, not a checkbox.
Big workflows just got easier to read
Node groups got proper selection behaviour. You can now select a group almost like a single node: clicking the header, or selecting everything inside it, produces one group selection — and that selection survives collapsing and expanding.
The context menu picked up the actions you would expect:
- Group
- Ungroup nodes
- Rename group
- Expand / Collapse selected groups
- Expand / Collapse all groups
Why this is not cosmetics
At ten nodes, grouping is decoration. Real workflows do not stay at ten nodes. A single content-publishing flow can easily contain:
- RSS fetch;
- filtering;
- duplicate check;
- AI analysis;
- text generation;
- image generation;
- an approval step;
- publishing to WordPress;
- a Telegram notification;
- writing the result back to the database.
Without visual structure, nobody — including you in three months — can read that canvas or find where it broke. Groups let you cut it into stages and jump straight to the failing one.
From a product management angle this is not a UI improvement. It is a reduction in the maintenance cost of automation, which is the number that actually decides whether your workflows survive after you stop babysitting them.
Instance-level MCP is out of preview
The Preview label is gone from instance-level MCP settings. n8n no longer positions this as a trial balloon.
The credential-connection flow through the MCP Server Trigger also improved: when a tool call is blocked because credentials are missing, the connection link can now surface through the client’s native UI instead of appearing as raw text. Clients that do not support that keep the old link fallback.
What it gives you
MCP lets AI clients and agents use the tools n8n exposes. An agent can search your CRM, create tasks, read internal tables, run approved actions — all through one controlled layer instead of a pile of ad-hoc API keys.
Coming out of preview matters for a specific audience: teams evaluating n8n not just as a workflow builder, but as the tool layer for their AI agents. “Preview” is a word that loses security reviews. Removing it is a small change in the UI and a large change in the procurement conversation.
Form node can return multiple files
Return Binary File in the Form node used to mean one file. In 2.31 you can pass several binary field names separated by commas, and the user gets multiple files when the final form page loads.
Concrete case: a user submits a form and requests a document package. The workflow produces a PDF report, an invoice, an annex and a CSV of results — and hands all four back inside the same run. No zipping them first, no “we’ll email it to you.”
The Form Trigger also gained a Show Headers option, which passes the submission’s HTTP headers into the output. Sensitive values — authorization, cookie — are masked in execution logs. Useful for diagnostics, figuring out where a request came from, and branching logic on headers.
Merge node: safer and more flexible SQL
Combine by SQL mode picked up Query Parameters. Values can now be passed separately from the SQL text via ? placeholders, the same way the Postgres and MySQL nodes already work.
Instead of injecting the expression straight into the query:
SELECT * FROM input1 WHERE email = ‘{{$json.email}}’
you write the parameterised version:
SELECT * FROM input1 WHERE email = ?
and pass the value on the side.
This improves readability, reuse, safety, and — the one that will actually save your evening — handling of strings with quotes and special characters. Anyone who has watched a workflow explode because a customer’s surname contained an apostrophe knows exactly what this fixes.
Self-hosted instances also get NODES_MERGE_SQL_SANDBOX_MEMORY_LIMIT_MB, which raises the SQL sandbox memory limit from its 64 MB default. Relevant the moment you push a serious dataset through Merge. Set it alongside your other environment variables.
More control over OAuth and AWS
BigQuery and Zendesk credentials now support Custom Scopes. The OAuth permission set used to be fixed; now you can enable an extra setting and specify scopes by hand, and your values survive reconnecting the credential.
That helps in two opposite situations: you need a permission the default set does not include, or your security policy demands the integration gets the minimum necessary rights and nothing more. Both were previously answered with a shrug.
AWS IAM and AWS Cognito nodes gained Assume Role authentication. Existing workflows keep working with regular IAM credentials, but you can now use temporary role-based permissions, as other AWS nodes already do. For infrastructure and enterprise setups this is simply the correct way to hand out access — long-lived access keys with broad permissions are a finding waiting to happen in your next audit.
New AWS Bedrock settings for AI workflows
The AWS Bedrock Chat Model node picked up extra inference parameters: Top P, Max Retries, Additional Model Request Fields, Latency Optimization, and Guardrail settings. All optional; leave them empty and behaviour is unchanged.
These matter when one model serves several jobs:
- classification needs stable, predictable output;
- content generation can afford variance;
- critical processes need guardrails;
- user-facing flows care about latency more than perfection;
- specific models need their own JSON parameters.
Previously some of this meant switching provider or bypassing the node with an HTTP Request. Fewer reasons to leave the paved road now.
AI Assistant is better for debugging
When the AI Assistant runs a workflow artifact, the logs panel now opens automatically, and the Execute workflow button inside the artifact became secondary — the dialogue stays the primary interface.
Tiny change, but it fixes the exact moment the feature used to fall apart: you generate a workflow, run it, and immediately need to see data moving through nodes and where it stopped. The regular editor behaves as before.
The smaller stuff
Data Tables
If a table is selected by ID, the resource locator now shows a link to it — including for expressions that return a specific table ID. Handy when a workflow juggles several tables and you want the data without hunting for it.
End-user credentials
“Private credentials” were renamed to end-user credentials, with updated labels, hints, errors and indicators. Better naming: these are not merely private, they belong to a specific end user. Naming is product design, and this one was misleading people.
Rocket.Chat
New operations for subscriptions and direct messages: fetch subscriptions, mark rooms as read, load messages from DMs.
Microsoft Excel
Renamed to Microsoft Excel (OneDrive) so it is obvious the node works with files hosted in OneDrive. Name only — existing workflows are unaffected.
Should you upgrade to 2.31?
This release is worth prioritising if you:
- use Notion as a knowledge base or content system;
- build large workflows and want a readable canvas;
- are testing MCP and AI agents;
- work with AWS Bedrock;
- use SQL inside Merge;
- want tighter control over OAuth permissions;
- build forms that return multiple documents.
The one attention zone is Notion node v3: check your existing operations and the move from database ID to data source. Everything else either extends capability or improves the interface without forcing you to rework anything.
The bottom line
2.31 shows where the platform is heading. n8n is turning from a tool that connects APIs into an environment for supporting large processes, AI agents, per-user credentials and safer corporate integrations.
The biggest feature is Notion node v3. But for daily work, better node groups, SQL parameters in Merge, expanded Bedrock settings and MCP leaving preview matter just as much. This is a good release not because of one spectacular feature, but because a lot of parts got slightly more convenient, slightly safer and slightly closer to how teams actually use them.
Which, honestly, is what a maturing product is supposed to look like.
Links and resources
- Official site — n8n.io
- Source code — github.com/n8n-io/n8n
- Releases and full changelog on GitHub — github.com/n8n-io/n8n/releases
- Release notes 2.x — docs.n8n.io/changelog/release-notes-2.x
- Documentation — docs.n8n.io
- Docs source repository — github.com/n8n-io/n8n-docs
- Notion node docs — docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion
- Merge node docs — docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge
- Environment variables reference — docs.n8n.io/hosting/configuration/environment-variables
- Docker image — hub.docker.com/r/n8nio/n8n
- Community forum — community.n8n.io
- Notion API (data sources) — developers.notion.com
- Model Context Protocol — modelcontextprotocol.io