diff --git a/docs/embed/deployment.md b/docs/embed/deployment.md
index acdb85175..9a1754df9 100644
--- a/docs/embed/deployment.md
+++ b/docs/embed/deployment.md
@@ -7,7 +7,7 @@ contentType: explanation
--8<-- "_snippets/embed-license.md"
-See the [hosting documentation](https://docs.n8n.io/reference/server-setup.html) for detailed setup options.
+See the [hosting documentation](/hosting/installation/server-setups/index.md) for detailed setup options.
## User data
diff --git a/docs/hosting/scaling/queue-mode.md b/docs/hosting/scaling/queue-mode.md
index 754884f3f..eda0c74ee 100644
--- a/docs/hosting/scaling/queue-mode.md
+++ b/docs/hosting/scaling/queue-mode.md
@@ -121,8 +121,8 @@ Each worker process runs a server that exposes optional endpoints:
- `/healthz`: returns whether the worker is up, if you enable the `QUEUE_HEALTH_CHECK_ACTIVE` environment variable
- `/healthz/readiness`: returns whether worker's DB and Redis connections are ready, if you enable the `QUEUE_HEALTH_CHECK_ACTIVE` environment variable
-- [credentials overwrite endpoint](https://docs.n8n.io/embed/configuration/#credential-overwrites)
-- [`/metrics`](https://docs.n8n.io/hosting/configuration/configuration-examples/prometheus/)
+- [credentials overwrite endpoint](/embed/configuration.md#credential-overwrites)
+- [`/metrics`](/hosting/configuration/configuration-examples/prometheus.md)
#### View running workers
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.postgres/index.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.postgres/index.md
index 9a75c836e..bdcfe42ed 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.postgres/index.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.postgres/index.md
@@ -94,7 +94,7 @@ Enter these parameters:
- **Table**: Choose the table that you want to work on. Select **From list** to choose the table from the dropdown list or **By Name** to enter the table name.
- **Mapping Column Mode**: How to map column names to incoming data:
- **Map Each Column Manually**: Select the values to use for each column.
- - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/) before this node to adjust the format as needed.
+ - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](/integrations/builtin/core-nodes/n8n-nodes-base.set.md) before this node to adjust the format as needed.
#### Insert options
@@ -123,7 +123,7 @@ Enter these parameters:
- **Table**: Choose the table that you want to work on. Select **From list** to choose the table from the dropdown list or **By Name** to enter the table name.
- **Mapping Column Mode**: How to map column names to incoming data:
- **Map Each Column Manually**: Select the values to use for each column.
- - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/) before this node to adjust the format as needed.
+ - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](/integrations/builtin/core-nodes/n8n-nodes-base.set.md) before this node to adjust the format as needed.
#### Insert or Update options
@@ -180,7 +180,7 @@ Enter these parameters:
- **Table**: Choose the table that you want to work on. Select **From list** to choose the table from the dropdown list or **By Name** to enter the table name.
- **Mapping Column Mode**: How to map column names to incoming data:
- **Map Each Column Manually**: Select the values to use for each column.
- - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/) before this node to adjust the format as needed.
+ - **Map Automatically**: Automatically map incoming data to matching column names in Postgres. The incoming data field names must match the column names in Postgres for this to work. If necessary, consider using the [edit fields (set) node](/integrations/builtin/core-nodes/n8n-nodes-base.set.md) before this node to adjust the format as needed.
#### Update options
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/index.md b/docs/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/index.md
index eca1a3f70..0e8722992 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/index.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/index.md
@@ -62,7 +62,7 @@ For help dealing with rate limits, refer to [Handling rate limits](/integrations
## Using tools with OpenAI assistants
-Some operations allow you to connect tools. [Tools](https://docs.n8n.io/advanced-ai/examples/understand-tools/) act like addons that your AI can use to access extra context or resources.
+Some operations allow you to connect tools. [Tools](/advanced-ai/examples/understand-tools.md) act like addons that your AI can use to access extra context or resources.
Select the **Tools** connector to browse the available tools and add them.
diff --git a/docs/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues.md b/docs/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues.md
index a42d6c653..9185a7fbc 100644
--- a/docs/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues.md
+++ b/docs/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues.md
@@ -45,6 +45,6 @@ To resolve this, click the + Chat Model button at the bottom of your screen when
## No prompt specified error
-This error occurs when the agent expects to get the prompt from the previous node automatically. Typically, this happens when you're using the [Chat Trigger Node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/).
+This error occurs when the agent expects to get the prompt from the previous node automatically. Typically, this happens when you're using the [Chat Trigger Node](/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/index.md).
To resolve this issue, find the **Prompt** parameter of the AI Agent node and change it from **Connected Chat Trigger Node** to **Define below**. This allows you to manually build your prompt by referencing output data from other nodes or by adding static text.
diff --git a/docs/integrations/community-nodes/risks.md b/docs/integrations/community-nodes/risks.md
index 414b5ce94..c85dbe13d 100644
--- a/docs/integrations/community-nodes/risks.md
+++ b/docs/integrations/community-nodes/risks.md
@@ -27,4 +27,4 @@ You can report bad community nodes to [security@n8n.io](mailto: security@n8n.io)
## Disable community nodes
-If you are self-hosting n8n, you can disable community nodes by setting `N8N_COMMUNITY_PACKAGES_ENABLED` to `false`. On n8n cloud, visit the [Cloud Admin Panel](https://docs.n8n.io/manage-cloud/cloud-admin-dashboard/) and disable community nodes from there. See [troubleshooting](/integrations/community-nodes/troubleshooting.md) for more information.
+If you are self-hosting n8n, you can disable community nodes by setting `N8N_COMMUNITY_PACKAGES_ENABLED` to `false`. On n8n cloud, visit the [Cloud Admin Panel](/manage-cloud/cloud-admin-dashboard.md) and disable community nodes from there. See [troubleshooting](/integrations/community-nodes/troubleshooting.md) for more information.
diff --git a/docs/manage-cloud/ai-assistant.md b/docs/manage-cloud/ai-assistant.md
index 73cb3c106..18fc1080b 100644
--- a/docs/manage-cloud/ai-assistant.md
+++ b/docs/manage-cloud/ai-assistant.md
@@ -36,7 +36,7 @@ The AI Assistant offers a range of tools to support you:
### What context does the Assistant have?
-The AI Assistant has access to all elements displayed on your n8n screen, excluding actual input and output data values (like customer information). To learn more about what data n8n shares with the Assistant, refer to [AI in n8n](https://docs.n8n.io/privacy-security/privacy/#ai-in-n8n).
+The AI Assistant has access to all elements displayed on your n8n screen, excluding actual input and output data values (like customer information). To learn more about what data n8n shares with the Assistant, refer to [AI in n8n](/privacy-security/privacy.md#ai-in-n8n).
### Who can use the Assistant?
diff --git a/docs/manage-cloud/change-ownership-or-username.md b/docs/manage-cloud/change-ownership-or-username.md
index c6ec03f42..89bccfdac 100644
--- a/docs/manage-cloud/change-ownership-or-username.md
+++ b/docs/manage-cloud/change-ownership-or-username.md
@@ -18,4 +18,4 @@ If the workspace is deactivated, there will be no **Settings** page and no possi
It's not currently possible to change usernames.
-If you want your instance to have a different name you will need to create a new account and transfer your work into it. [The import/export documentation](https://docs.n8n.io/workflows/export-import/) explains how you can transfer your work to a new n8n instance.
+If you want your instance to have a different name you will need to create a new account and transfer your work into it. [The import/export documentation](/workflows/export-import.md) explains how you can transfer your work to a new n8n instance.
diff --git a/docs/privacy-security/what-you-can-do.md b/docs/privacy-security/what-you-can-do.md
index d6e6a55e9..fe3ecf784 100644
--- a/docs/privacy-security/what-you-can-do.md
+++ b/docs/privacy-security/what-you-can-do.md
@@ -23,8 +23,8 @@ If you self-host n8n, there are additional steps you can take:
* Ensure data is encrypted at rest by using encrypted partitions, or encryption at the hardware level, and ensuring n8n and its database is written to that location.
* Run a [Security audit](/hosting/securing/security-audit.md).
* Be aware of the [Risks](/integrations/community-nodes/risks.md) when installing community nodes, or choose to disable them.
-* Make sure users can't import external modules in the Code node. Refer to [Environment variables | Nodes](https://docs.n8n.io/hosting/configuration/environment-variables/nodes) for more information.
-* Choose to exclude certain nodes. For example, you can disable nodes like Execute Command or SSH. Refer to [Environment variables | Nodes](https://docs.n8n.io/hosting/configuration/environment-variables/nodes) for more information.
+* Make sure users can't import external modules in the Code node. Refer to [Environment variables | Nodes](/hosting/configuration/environment-variables/nodes.md) for more information.
+* Choose to exclude certain nodes. For example, you can disable nodes like Execute Command or SSH. Refer to [Environment variables | Nodes](/hosting/configuration/environment-variables/nodes.md) for more information.
* For maximum privacy, you can [Isolate n8n](/hosting/configuration/configuration-examples/isolation.md).
### GDPR for self-hosted users
diff --git a/docs/release-notes.md b/docs/release-notes.md
index ab86f3940..35eda32d2 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -273,7 +273,7 @@ You can still define your own custom metrics, but for common use cases, the buil
🛠️ **How to:**
-1. Set up your evaluation as described [here](https://docs.n8n.io/advanced-ai/evaluations/metric-based-evaluations/#how-it-works), using an **Evaluation** node as the trigger and another with the **Set Metrics** operation.
+1. Set up your evaluation as described [here](/advanced-ai/evaluations/metric-based-evaluations.md#how-it-works), using an **Evaluation** node as the trigger and another with the **Set Metrics** operation.
2. In the **Set Metrics** node, choose a metric from the dropdown list.
3. Define any additional parameters required for your selected metric. In most cases, this includes mapping the dataset columns to the appropriate fields.
@@ -817,7 +817,7 @@ Evaluations for AI Workflows are designed to fit into your development flow, wi
- Community Edition supports one single evaluation. Pro and Enterprise plans allow unlimited evaluations.
- AI Evaluations are not enabled for instances in scaling mode at this time.
-You can find details, tips, and common troubleshooting info [here](https://docs.n8n.io/advanced-ai/evaluations/tips-and-common-issues/).
+You can find details, tips, and common troubleshooting info [here](/advanced-ai/evaluations/tips-and-common-issues.md).
👉 Learn more about the AI evaluation strategies and practical implementation techniques. [Watch now](https://www.youtube.com/live/QkciQpotQBQ?feature=shared).
@@ -2763,7 +2763,7 @@ This release contains new features, node enhancements and bug fixes.
#### Queue metrics for workers
-You can now [expose and consume metrics from your workers](https://docs.n8n.io/hosting/configuration/configuration-examples/prometheus/). The worker instances have the same metrics available as the main instance(s) and can be configured with [environment variables](/hosting/configuration/environment-variables/endpoints.md).
+You can now [expose and consume metrics from your workers](/hosting/configuration/configuration-examples/prometheus.md). The worker instances have the same metrics available as the main instance(s) and can be configured with [environment variables](/hosting/configuration/environment-variables/endpoints.md).
diff --git a/docs/sustainable-use-license.md b/docs/sustainable-use-license.md
index 450bc57a1..861759341 100644
--- a/docs/sustainable-use-license.md
+++ b/docs/sustainable-use-license.md
@@ -106,7 +106,7 @@ Any code you contribute on GitHub is subject to GitHub's [terms of use](https://
n8n asks every contributor to sign our [Contributor License Agreement](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTOR_LICENSE_AGREEMENT.md). In addition to the above, this gives n8n the ability to change its license without seeking additional permission. It also means you aren't liable for your contributions (e.g. in case they cause damage to someone else's business).
-It's easy to get started contributing code to n8n [here](https://github.com/n8n-io), and we've listed broader ways of participating in our community [here](https://docs.n8n.io/reference/contributing.html).
+It's easy to get started contributing code to n8n [here](https://github.com/n8n-io), and we've listed broader ways of participating in our community [here](/help-community/contributing.md).
### Why did you switch to the Sustainable Use License from your previous license arrangement (Apache 2.0 with Commons Clause)?
diff --git a/docs/workflows/executions/manual-partial-and-production-executions.md b/docs/workflows/executions/manual-partial-and-production-executions.md
index d7940247a..f99181e30 100644
--- a/docs/workflows/executions/manual-partial-and-production-executions.md
+++ b/docs/workflows/executions/manual-partial-and-production-executions.md
@@ -16,7 +16,7 @@ Manual executions allow you to run workflows directly from the [canvas](/glossar
Manual executions make building workflows easier by allowing you to iteratively test as you go, following the flow logic and seeing data transformations. You can test conditional branching, data formatting changes, and loop behavior by providing different input items and modifying node options.
/// note | Pinning execution data
-When performing manual executions, you can use [data pinning](/data/data-pinning.md) to "pin" or "freeze" the output data of a node. You can optionally [edit the pinned data](https://docs.n8n.io/data/data-editing/) as well.
+When performing manual executions, you can use [data pinning](/data/data-pinning.md) to "pin" or "freeze" the output data of a node. You can optionally [edit the pinned data](/data/data-editing.md) as well.
On future runs, instead of executing the pinned node, n8n will substitute the pinned data and continue following the flow logic. This allows you to iterate without operating on variable data or repeating queries to external services. Production executions ignore all pinned data.
///