n8n 是一个源可用(fair-code)的工作流自动化平台,通过可视化节点连线,把触发器、API、数据库、AI 模型和 400 多个第三方服务编排成自动化流程。它解决的核心问题是:跨系统数据搬运、业务逻辑编排、以及 AI 应用(RAG 问答、智能体)落地时的管道搭建,都能在一个可视化编辑器中完成配置,同时保留用 JavaScript/Python 写代码的扩展口子。n8n 可自托管(Docker、npm、桌面端)也可使用官方云托管,生产环境可通过 PostgreSQL + Redis 队列模式扩展。2024 年 6 月发布 1.0 后,n8n 将 LangChain 能力封装为可视化节点,成为 AI 工作流编排的高频选择。本篇按「速览 → 安装 → 上手 → 核心能力 → 生产部署 → 选型对比 → 应用场景 → 误区 → 面试题 → 学习资源」组织,覆盖从安装到运维的完整路径。

岗位关联

掌握 n8n 等于同时获得「低代码自动化 + AI 编排 + 自托管部署」三项技能,是 AI 工程师与 DevOps 团队对接业务流时最高频的工具之一。

目录
  1. 为什么需要 n8n:跨系统流程要么写胶水代码,要么靠手工搬运
  2. 安装与环境配置:3 步就绪
  3. 快速上手:15 分钟跑通「Webhook 接收 → 数据清洗 → 发通知」
  4. 核心能力详解:5 大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
  10. 参考来源
工具类型
工作流自动化平台(fair-code 源可用)
开发商
n8n GmbH(德国柏林,2018 年创立)
开源协议
Sustainable Use License(fair-code,非 OSI 开源)
GitHub Stars
无
主要语言
TypeScript(Node.js 运行时)
当前版本
1.x(2024-06 发布 1.0,之后约每 2-3 周一个小版本)
安装方式
npm / Docker / 桌面端 / n8n Cloud
下载地址
官方文档
上手难度
★★☆☆☆(较低,无代码可入门)
适合人群
后端/DevOps 工程师、自动化与 AI 应用开发者
同类工具
Zapier、Make、Activepieces
托管服务
无

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 n8n:跨系统流程要么写胶水代码,要么靠手工搬运

传统做法里,企业业务流程散落在多个 SaaS 与自建系统:表单数据要录入 CRM,订单要同步到财务系统,运营每天从后台导出报表再粘贴到群聊。手工搬运效率低且容易出错;用脚本串联又面临另一堆问题——每个 API 都要写鉴权、重试、超时处理,接口一变整个脚本报废,这类胶水代码很难复用,也几乎没有可视化追踪手段。

n8n 的解法是把流程拆成「节点」和「连接」:Webhook 触发器接收请求,HTTP/数据库节点读写数据,IF/Switch 做分支,Code 节点处理复杂逻辑,最终用邮件、IM、Slack 通知收尾。每个节点的输入输出都能在执行历史里逐条查看,失败时还能挂 Error Workflow 自动告警。它同时支持自托管,数据不需要离开内网,这对金融、医疗等有合规要求的团队是关键优势。

与同类工具相比,n8n 的气质更偏工程师向:它不追求「纯业务人员零代码」,而是承认复杂流程需要 JSON 数据结构和表达式知识,把大量样板代码图形化。对比 Zapier 和 Make 的纯 SaaS 模式,n8n 的源可用许可证和自托管能力让它能深度嵌入到已有的技术栈中,也正因如此它成为 AI 应用编排(RAG、智能体)时团队更愿意使用的底座工具。

安装与环境配置:3 步就绪

步骤一·安装。两种主流方式任选其一。Docker 方式最省心,一条命令即可启动完整服务;npm 方式适合已在服务器上管理 Node.js 环境的团队。

步骤二·初始化。首次启动后,用浏览器打开 http://localhost:5678,创建第一个管理员账号(邮箱 + 密码即可)。本地数据默认写入 ~/.n8n 目录(Docker 方式下对应你挂载的卷),此目录中的加密凭据和设置后续需要备份。

步骤三·验证。检查健康接口返回 ok,并在编辑器中新建一个空白工作流,确认可以保存,即代表环境就绪。

bash15 行
# 方式一:Docker(推荐,自带运行时)docker run -it --rm --name n8n \  -p 5678:5678 \  -v n8n_data:/home/node/.n8n \  docker.n8n.io/n8nio/n8n # 方式二:npm(需 Node.js 18+,建议 20 LTS)npm install n8n -gn8n --version # 启动n8n start # 验证curl http://localhost:5678/healthz

快速上手:15 分钟跑通「Webhook 接收 → 数据清洗 → 发通知」

最小可用流程的思路是:用一个 Webhook 节点作为触发器接收外部请求,用一个 Code 节点做字段提取,再用一个通知节点把结果推送出去。这四条节点连线覆盖了 n8n 的核心使用方式——触发、转换、输出。

1. 新建工作流,添加一个 Webhook 节点(触发器类型,方法选 POST,Body 选 JSON Query),勾选「Respond」让工作流可返回数据给调用方;点击 Test URL 旁的「Listen for test event」开始监听。

2. 用 curl 向测试地址发送一条 JSON(见下方命令),注意路径是 /webhook-test/ 前缀,只对当前编辑会话生效。

3. 回到编辑器,确认 Webhook 节点已收到数据;添加 Code 节点,粘贴转换逻辑——把 email 字段拆出域名。

4. 添加一个 IM 或邮件通知节点(如 HTTP Request 调用企业微信/钉钉机器人),字段引用 {{ $json.domain }};点击「Test workflow」查看完整链路。

5. 保存并点击「Activate」激活工作流,此时浏览器地址会显示 Production URL,正式流量走 /webhook/ 前缀,与测试流量彻底隔离。

进阶技巧:把常用的「接收-清洗-通知」流程保存为模板(工作流右下角 Save as Template),后续创建新流程直接复用;复杂字段提取优先用表达式 {{ $json.字段 }} 而不是硬编码,可读性更好。

bash3 行
curl -X POST http://127.0.0.1:5678/webhook-test/你的回调路径 \  -H "Content-Type: application/json" \  -d '{"name":"张三","email":"zhang@example.com"}'
javascript4 行
// Code 节点(JavaScript)内的转换逻辑return items.map(item => ({  json: { name: item.json.name, domain: item.json.email.split('@')[1] }}));

核心能力详解:5 大支柱

支柱一·节点编排与触发器体系。n8n 的工作流由节点和连线构成,节点分两类:触发器节点(Webhook、cron 定时、手动、以及各应用的业务事件)和动作节点(读写 API、数据库、发消息)。官方提供 400+ 集成节点,配合 IF/Switch 分支、Merge 合并、Loop Over Items 循环、子工作流(Call Workflow)可以组织出复杂的业务拓扑。

支柱二·表达式与数据转换。n8n 的数据以「items」数组在节点间流动,每个 item 包含 json 字段与可选的 binary 二进制字段。表达式用 {{ }} 包裹,{{ $json.字段 }} 取当前节点的输入,{{ $node["节点名"].json.字段 }} 取指定节点的输出,日期处理内置 Luxon 库。更复杂的变换用 Code 节点完成——支持 JavaScript 与 Python,是处理嵌套 JSON、去重、聚合的主力。

支柱三·AI 与 RAG 编排。从 2024 年起,n8n 把 LangChain 的组合方式封装成了可视化节点:AI Agent 节点负责智能体循环(工具调用),Chat 触发器提供对话界面与记忆,文档加载/切分节点处理知识库原始材料,向量数据库节点(pgvector、Pinecone、Qdrant 等)负责检索,LLM 节点可对接 OpenAI、Anthropic、Google Gemini 以及本地 Ollama。这意味着搭建一个 RAG 问答机器人不再需要手写 LangChain 代码管道。

支柱四·Webhook 与对外接口。每个工作流可以对外暴露 Webhook 作为接口入口,Test 与 Production 两套 URL 分离,避免测试流量误触发真实业务。Webhook 节点支持多种 HTTP 方法、鉴权(Header、Basic Auth、JWT)、CORS 配置和自定义响应内容,适合承担系统间回调、表单提交入口等职责。

支柱五·扩展与开发接口。n8n 提供 REST API 管理用户、工作流和执行记录;CLI 支持 n8n export:workflow --all --output=backup/ 与 n8n import:workflow --input=backup/ 做工作流备份迁移;自定义节点可用 n8n-node-dev 工具开发发布到社区。部署配置全部通过 N8N_* 系列环境变量控制,方便纳入基础设施即代码流程。

生产部署与监控:从上线到运维

部署方式一·Docker Compose 单机生产化。默认 SQLite 只适合开发测试,生产环境第一步是切换到外部 PostgreSQL 并用固定加密密钥,否则容器重建后所有凭据(API Key、密码)将无法解密。下方案例同时开启了队列执行模式(queue),为后续多 worker 扩展打基础。上线时用 Nginx/Caddy 做 TLS 反向代理,并定期备份 Postgres 与 n8n_data 卷。

部署方式二·高可用扩展。在 queue 模式下,n8n start 运行主进程(负责 UI 与 Webhook 入口),执行任务由 Redis 派发给独立进程 n8n worker 消费。扩容时只需增加 worker 实例并设置并发数(如 n8n worker --concurrency=10),主进程重启期间任务不会丢失。Kubernetes 环境可使用官方 Helm chart 管理多副本与滚动更新。

可观测性。每个工作流的执行历史里记录了各节点的输入输出、耗时与报错堆栈,是排查问题的第一入口;N8N_LOG_LEVEL=debug 可输出更细的运行时日志。建议为每个生产工作流配置 Error Workflow:主流程节点失败且未开启「Continue On Fail」时,错误工作流被触发,向 IM/邮箱推送告警并记录结构化日志到数据库,形成闭环。升级前查阅官方 Release Notes 中的 Breaking Changes,小版本一般保持向后兼容。

<p class="para-label">避坑清单:</p>

<ul class="dash-list"><li>忘记固定 N8N_ENCRYPTION_KEY:容器重建或迁移后所有凭据无法解密,部署前必须生成随机串并持久化;<li>用默认 SQLite 上生产:并发高时 SQLite 会锁库,切换到外部 PostgreSQL 并定时备份;<li>单主进程重启丢执行:高可用必须 queue 模式 + Redis,让 worker 在主进程重启期间继续消费任务;<li>忽略工作流幂等性:第三方接口失败后重试可能导致重复下单,关键节点要设计去重与补偿逻辑,不能只靠无脑重试。</ul>

yaml27 行
services:  n8n:    image: docker.n8n.io/n8nio/n8n    restart: unless-stopped    ports: ["5678:5678"]    volumes: ["n8n_data:/home/node/.n8n"]    environment:      - N8N_ENCRYPTION_KEY=替换为 openssl rand -hex 16 的输出      - N8N_DATABASE_TYPE=postgresdb      - DB_POSTGRESDB_HOST=postgres      - DB_POSTGRESDB_DATABASE=n8n      - DB_POSTGRESDB_USER=n8n      - DB_POSTGRESDB_PASSWORD=替换为强密码      - EXECUTIONS_MODE=queue      - QUEUE_BULL_REDIS_HOST=redis  postgres:    image: postgres:16    environment:      - POSTGRES_USER=n8n      - POSTGRES_PASSWORD=替换为强密码      - POSTGRES_DB=n8n    volumes: ["postgres_data:/var/lib/postgresql/data"]  redis:    image: redis:7-alpinevolumes:  n8n_data:  postgres_data:
维度n8nZapierMakeActivepieces
定位可自托管的通用自动化 + AI 编排平台面向非技术用户的 SaaS 无代码自动化可视化程度高的 SaaS 自动化平台源可用(fair-code)的自动化工作流平台
编排范式节点连线、分支/合并、子工作流、代码节点触发器-动作线性链,多步串联场景画布多分支可视化编排Flow 步骤式 + 分支条件
类型约束表达式基于 JSON items;Code 节点支持 JS/Python低代码为主,Code by Zapier 用 JS内建函数与 Webhook,代码能力较弱支持 JavaScript 代码步与表达式
学习曲线中(需懂 JSON 与表达式语法)低低-中中
生态集成400+ 官方节点,可自研自定义节点6000+ 应用2000+ 应用200+ 节点,社区贡献
生产部署自托管 Docker/K8s + Postgres + Redis 队列纯 SaaS,无自托管纯 SaaS(企业版亦为云上)可自托管(Docker)
LicenseSustainable Use(fair-code)闭源专有闭源专有源可用(fair-code)
适合谁AI/DevOps 工程师、中小企业全栈团队市场/运营等非技术业务人员运营与设计师为主的混合团队开源偏好、需自托管的团队

选型建议:团队有工程师、需要数据不出内网或深度定制与 AI 编排,选 n8n 性价比最高;纯业务人员、追求最快上线且愿意用 SaaS,选 Zapier;没有工程师但流程分支复杂、重视图形化体验,选 Make;偏好源可用且主要跑轻量 AI 流程,可以评估 Activepieces(注意其生态更小)。

版本迭代

n8n 的演进主线是从「IT 自动化工具」转向「AI 自动化平台」。2024 年 6 月 1.0 发布前,项目长期处于 0.x 高频迭代;1.0 移除了旧凭据与旧版节点体系并更新画布;此后以约每 2-3 周一个小版本的节奏发布,AI 相关节点(AI Agent、向量库、Chat)在 1.2x-1.4x 期间逐步稳定为企业级能力,企业权限与部署体验也在持续补强。(截至训练数据,可能已有更新版本)

版本时间变化提升
0.236.02024-030.x 系列收官界面与节点体系趋于稳定,为 1.0 重写铺路
1.0.02024-061.0 正式发布移除旧版凭据与旧节点,新线性画布,节点 API 与表达式统一
1.20.02024-10AI 编排与模板生态迭代AI Agent、向量库、Chat 相关节点稳定可用,模板库扩充
1.35.02024-12年底集成整合Webhook 与队列执行稳定性提升,新增多个官方集成节点
1.44.02025-01企业级能力补强权限管理、部署体验与运行性能优化
结论

n8n 是工具而非模型,没有 MMLU 一类公开评测分数,选型时更应看节点数量、部署模式与社区活跃度。1.0 前后最明显的实测差异是旧教程大面积失效(节点参数与凭据体系变更),以及 AI 节点从「实验性」转为「官方主推」。1.0 之后的小版本整体保持向后兼容,升级风险低,但务必核对官方 Breaking Changes。

AI 应用场景

客户支持工单的 AI 分诊与回复

阶段:RAG 管道构建 / AI Agent 编排

解决的问题:客服工单量大、重复问题多,人工逐条回复耗时;传统方案要单独开发「检索 + 调模型 + 回写工单系统」的代码管道,胶水代码难以维护。n8n 用 AI Agent 节点接 LLM、向量库节点注入企业知识库、工具节点调用工单 API,一条工作流完成「读取工单 → 检索知识 → 生成草稿 → 更新工单 → 通知负责人」。

具体案例:在 n8n 官方模板库的 AI 客服类模板基础上,可把工单分诊做成夜间自动执行:重复问题由 AI 直接给答复草稿,复杂问题转人工并附检索摘要。参考执行效果:单条工单的初步处理时间由 15-30 分钟降到几分钟(具体取决于知识库覆盖率),人工只做复核与兜底,示例数据仅供参考,实际效果依数据质量而定。

跨系统客户数据同步与通知

阶段:业务自动化 / 系统集成

解决的问题:表单提交、CRM 录入、IM 通知分属不同系统,手工搬运易错且延迟高;n8n 用 Webhook 节点接收表单提交,Code/Set 节点清洗字段,CRM 或数据库节点落库,再通过 HTTP 或 IM 节点推送通知,全程执行历史可追踪。

具体案例:用表单工具收集销售线索,n8n 清洗后按邮箱字段去重写入自建 Postgres,再根据地区字段分发给对应销售群。实际部署中,同步延迟从人工的小时级降到秒级,按邮箱去重避免重复跟进;失败记录进入 Error Workflow 告警队列,运营无需盯盘。

定时数据聚合与报表推送

阶段:数据管道 / 定时任务编排

解决的问题:每日多系统数据靠脚本 + cron 维护成本高,脚本一坏无人知;n8n 的 Schedule Trigger 定时拉取多源 API 或数据库,合并去重后聚合计算,再推送到邮件、钉钉或企业微信群,失败时自动告警。

具体案例:财务日报工作流每天 08:30 从订单数据库与支付 API 拉取昨日流水,按渠道聚合后生成摘要推送到财务群,同时写入报表数据库归档参考执行效果:报表产出时间从人工约 1 小时降到 5 分钟内,且每次执行都有留痕,满足审计要求(示例数值,实际依数据量而定)。

常见误区

误区n8n 既然 GitHub 有那么多 star、又能自己部署,那它肯定和 Apache 之类一样是完全开源,想怎么用都行。

正解n8n 采用 Sustainable Use License(fair-code),源码公开可查看、可自托管、内部商用免费,但它不是 OSI 定义的开源许可证:你不能把 n8n 作为竞品托管服务直接卖给第三方,且 SSO、审计日志等企业功能需要订阅。商用前应阅读许可证原文,区分「自由使用」与「自由再分发」。

为何常见:GitHub 上的「开源」惯例容易让人默认采用 OSI 协议,而 n8n 官方宣传用的是 fair-code 而非 open source,非专业人士容易混淆概念。

误区网上 2023 年以前的 n8n 教程一大把,直接照抄节点配置应该没问题。

正解1.0 移除了旧版凭据认证方式和大量旧版节点,新节点用 typeVersion 管理,字段名与表达式规则可能完全不同。升级前必须核对官方 Release Notes 中的 Breaking Changes,老教程要对照 1.x 文档改写后再用。

为何常见:n8n 在 0.x 时代积累了最多资料,搜索引擎优先展示老内容,教程的发布时间很少被注意,导致过期配置被反复传播。

误区可视化拖拽的工作流,业务人员不写代码也能搞定所有场景。

正解基础流程确实免代码,但 n8n 表达式本身就是 JavaScript 语法(如 {{ $json.字段 }}),复杂数据清洗要写 Code 节点,调试时要读 JSON 数据结构和错误堆栈。把它理解为「大量样板代码被图形化」比「编程消失了」更准确,工程师上手速度显著快于纯业务人员。

为何常见:产品主视觉全是节点拖拽,弱化了表达式与 Code 节点的存在感,容易给初学者造成零代码的错觉。

误区官方文档里看到的功能,我自托管之后应该全都能用。

正解自托管社区版与 n8n Cloud/Enterprise 在功能上明确分层:SSO、细粒度 RBAC、审计日志、官方 SLA 支持等属于商业版功能;自托管还需要自己负责升级补丁、备份、高可用与安全加固。「托管」本身也是 Cloud 定价的一部分,两者不是单纯的部署地点差异。

为何常见:官网免费下载入口与 self-hosted 宣传容易让人以为只有部署位置的区别,忽略了商业功能边界与运维成本。

面试题

Q1. n8n 采用哪种许可证?

单选题 · easy

  • A.MIT 宽松许可证
  • B.Sustainable Use License(fair-code)← 正确答案
  • C.Apache License 2.0
  • D.GNU GPL v3 许可证

答案:B。n8n 是 fair-code 模式,源码公开可查看、可自托管、内部商用免费,但以 SaaS 形式向外提供竞品性服务受限,且部分企业功能为商业授权。它不是 OSI 定义的开源许可证。

Q2. n8n 自托管默认的 Web 端口是多少?

单选题 · easy

  • A.3000 端口
  • B.5678 端口← 正确答案
  • C.8080 端口
  • D.8888 端口

答案:B。n8n 默认监听 5678 端口,Docker 部署时用 -p 5678:5678 映射。3000/8080/8888 常被其他开发服务占用,所以 n8n 选择了 5678 作为固定默认端口。

Q3. 自托管 n8n 时,凭据(密码、API Key)如何存储?

单选题 · easy

  • A.明文存在工作流 JSON 文件里
  • B.用 N8N_ENCRYPTION_KEY 加密后存数据库← 正确答案
  • C.只保存在浏览器本地存储
  • D.不保存,每次手动输入

答案:B。n8n 用加密密钥对凭据加密后存入数据库,密钥来自 N8N_ENCRYPTION_KEY。密钥一旦丢失或更换,已有凭据将无法解密,因此部署时必须生成并持久化该密钥。

Q4. n8n 表达式中,按节点名取某节点输出字段的写法是?

单选题 · mid

  • A.取当前节点输入项字段($json)
  • B.按节点名取其输出字段($node)← 正确答案
  • C.取全局环境变量字段($env)
  • D.取上一个输出项字段($prev)

答案:B。{{ $node["节点名"].json.字段 }} 用于引用指定节点的输出,而 {{ $json.字段 }} 只指当前节点正在处理的输入项。n8n 没有内置 $prev/$env 这类全局便捷变量。

Q5. Webhook 节点为何同时提供 Test 和 Production 两套 URL?

单选题 · mid

  • A.Test 网速更快,仅限内网使用
  • B.测试时避免触发真实生产流程,部署后 Production URL 才稳定生效← 正确答案
  • C.Production URL 仅企业版可用
  • D.两者功能相同,只是命名不同

答案:B。Test URL 只在编辑器开启监听时有效,用于本地演练;工作流保存并激活(Activate)后,Production URL 才对线上请求稳定开放。两套 URL 隔离了开发与生产流量,避免测试请求误触发真实业务。

Q6. n8n 的 Error Workflow(错误工作流)主要解决什么问题?

单选题 · mid

  • A.减少工作流本身的执行报错次数
  • B.捕获主流程失败并执行通知或补偿逻辑← 正确答案
  • C.自动重试所有失败的第三方 API 请求
  • D.替代 Code 节点完成异常处理

答案:B。Error Workflow 是独立的工作流,当主流程节点失败且未开启「Continue On Fail」时被调用,用于发送告警、记录日志或执行补偿操作。它不减少报错,重试由节点级 Settings 配置,两者职责不同。

Q7. n8n 中节点间传递的数据格式是什么?

单选题 · mid

  • A.每个节点只传递一个 JSON 对象
  • B.每个节点传递 items 列表(含 json/binary),逐条处理← 正确答案
  • C.只能传递字符串文本
  • D.只能传递文件二进制流

答案:B。n8n 传递的是 items 数组,每个 item 结构为 { json, binary? },表达式中的 $json 指向当前处理的 item.json。这决定了节点会「循环」处理多条输入,Code 节点也常需要对 items 做 map/filter。

Q8. 生产环境自托管 n8n 的高可用部署通常需要哪些措施?

多选题 · hard

  • A.使用外部 PostgreSQL 而非默认 SQLite← 正确答案
  • B.用 N8N_ENCRYPTION_KEY 持久化凭据加密密钥← 正确答案
  • C.EXECUTIONS_MODE=queue 并接入 Redis,多 worker 并发执行← 正确答案
  • D.关闭所有执行日志以提升性能

答案:ABC。默认 SQLite 并发能力差,生产需换 Postgres;加密密钥不固定,容器重建后凭据无法解密;队列模式才能把执行任务分发给多 worker 并在主进程重启时继续消费。关闭日志会丢失排障依据,不属于高可用手段。

Q9. 下列哪些属于 n8n 官方提供的 AI 编排能力?

多选题 · mid

  • A.AI Agent 节点与多工具调用← 正确答案
  • B.向量数据库节点与文档切分节点← 正确答案
  • C.Chat 触发器与对话记忆← 正确答案
  • D.内置大模型训练与微调流水线

答案:ABC。n8n 将 LangChain 的 Agent、向量检索、文档加载/切分、记忆等包装为可视化节点,可对接 OpenAI、Anthropic、Ollama 等模型;它不提供大模型训练或微调能力,这类需求需依赖外部平台。

Q10. 关于 n8n 的 fair-code 许可,以下说法正确的是?

多选题 · hard

  • A.源码公开可查看,社区版可自托管← 正确答案
  • B.允许内部商用与一般商业项目使用← 正确答案
  • C.以托管服务形式向第三方转售受限,部分功能需商业订阅← 正确答案
  • D.与 OSI 开源定义完全一致,可自由再分发

答案:ABC。Sustainable Use License 属于源可用(fair-code)而非 OSI 开源:可自托管、内部商用、修改自用,但对外提供与 n8n 构成竞争的托管服务需要授权,SSO、审计日志等企业功能需订阅。选项 D 混淆了源可用与开源定义。

参考来源

  • webpagen8n 官网产品主页、定价与 Cloud 入口