Appearance
n8n 使用教程:构建 AI 自动化工作流的完整指南
很多「自动化」工具实际上只是把一件事从手动变成了半自动——还是需要你盯着、点击、处理异常。n8n 不一样:它是一个真正的工作流引擎,能把分散在不同服务里的任务串起来,全程无人值守地跑。
一个典型的 n8n 工作流是这样的:每天早上 8 点,自动从 RSS 订阅里抓取最新的行业资讯,用 AI 总结成 300 字摘要,按类别整理好,发送到 Slack 频道,同时把原始数据写进 Google Sheets。整个过程需要 0 次手动操作,而搭建这条工作流只需要大约 30 分钟。
这篇教程从安装开始,讲清楚 n8n 的核心概念,然后用三个完整的实战工作流演示常见的 AI 自动化场景。
n8n 是什么,和 Zapier 有什么区别
n8n 是一个开源的工作流自动化工具,可以连接 400+ 种服务(API、数据库、AI 模型、文件系统等),用可视化的节点图(Node Graph)来描述业务逻辑。
n8n 的核心优势:
- 开源可自托管:可以在自己的服务器或个人电脑上运行,数据不出机房
- AI 原生:内置 LangChain 集成,可以直接调用 OpenAI、Anthropic、Ollama(本地模型)等,搭建 AI Agent 不需要写代码
- 无限流程运行:自托管版本没有任务次数限制,Zapier 的免费版每月只有 100 次触发
- 逻辑控制节点:支持 IF/ELSE 条件判断、循环、错误处理,比 Zapier 更灵活
- JavaScript 节点:遇到复杂数据处理,可以直接写 JS 代码,不受限于固定的操作类型
和 Zapier 的主要区别:Zapier 更易上手,适合不需要复杂逻辑的简单自动化;n8n 学习曲线稍高,但上限高很多,特别是涉及 AI 处理、复杂数据流转、多步骤条件判断的场景。
安装方式
n8n 有两种使用方式:云托管版和自托管版。
云托管版(n8n Cloud)
直接访问 n8n.io 注册账号,免费版可以用 14 天,之后需要付费(最低约 $24/月)。优点是不需要自己管理服务器,缺点是有任务次数限制且费用持续产生。
自托管版(推荐个人用户)
自托管可以永久免费,方法有几种:
方法一:Docker(推荐,最省事)
前提:已安装 Docker Desktop。
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
docker.n8n.io/n8nio/n8n运行后打开浏览器访问 http://localhost:5678,按提示完成初始设置。
方法二:npm 全局安装
前提:已安装 Node.js 18 以上版本。
npm install -g n8n
n8n star方法三:桌面 App(Windows/macOS)
从 n8n.io/desktop 下载桌面应用,安装后双击启动,适合完全不想接触命令行的用户。
推荐配置:如果只是个人使用或小团队,Docker 方式最可靠,数据挂载到 ~/.n8n 目录,重建容器数据不会丢失。
核心概念:节点、工作流、触发器
在动手操作之前,先理解三个基础概念:
节点(Node)
工作流里的每一步操作都是一个节点。节点分三类:
- 触发器节点(Trigger):决定工作流什么时候开始,比如「定时触发」「接收 HTTP 请求」「收到 Gmail 邮件时」
- 动作节点(Action):执行具体操作,比如「调用 OpenAI API」「发 Slack 消息」「写 Google Sheets」
- 逻辑节点(Logic):控制流程走向,比如「IF 条件判断」「循环处理数组」「合并多路数据」
工作流(Workflow)
多个节点按顺序连接成一条处理链路,数据从触发器流入,经过各节点处理,最终输出到目标服务。每个节点的输出是下一个节点的输入,数据格式是 JSON。
触发器类型
n8n 支持多种触发方式:
- Schedule Trigger(定时):Cron 表达式,精确控制执行时间
- Webhook Trigger:接收 HTTP 请求时触发,适合和其他系统集成
- Chat Trigger:接收对话消息,适合搭建聊天机器人
- 手动触发:测试工作流时用,点击「Test workflow」立即执行一次
界面操作基础
打开 n8n 后,左侧是工作流列表,点击「New Workflow」创建新工作流,进入可视化编辑界面:
- 空白画布:在这里拖放节点、连接节点
- 节点搜索:点击「+」或按 Tab 键,搜索节点名称(英文搜索更准)
- 节点配置面板:点击节点后在右侧出现,配置参数、认证、数据映射
- 表达式编辑器:节点参数里点击「表达式」图标,可以用
{{ $json.fieldName }}格式引用上一步输出的数据
保存和激活:工作流写好后,右上角「Save」保存,然后点击「Active」开关激活。激活后触发器会按设定持续监听,无需开着浏览器。
实战工作流一:每日 AI 资讯摘要推送
目标:每天早 8 点抓取科技资讯,AI 总结,发送到 Slack。
节点链路: Schedule Trigger → RSS Feed Read → OpenAI(总结) → Slack(发送)
步骤详解:
Step 1:定时触发
添加 Schedule Trigger 节点,设置:
- Trigger Interval:Days
- Trigger at Hour:8(早上 8 点)
- Trigger at Minute:0
Step 2:抓取 RSS
添加 RSS Feed Read 节点,填入目标 RSS 地址(比如 https://hnrss.org/frontpage,Hacker News 首页),设置抓取最新的 10 条。
Step 3:调用 AI 总结
添加 OpenAI 节点(或 Anthropic),选择 Chat Model:
- Model:
gpt-4.1-mini(性价比高) - User Message 里写:
以下是今天的科技资讯列表,请用中文总结其中最重要的3条,
每条用一句话说明主题,附上原文链接,格式为:
1. [标题摘要] - [链接]
---
{{ $json.items.map(i => i.title + ': ' + i.link).join('
') }}Step 4:发送到 Slack
添加 Slack 节点,选择发送到的频道,Message 里填:
*今日科技资讯摘要 {{ $now.format('YYYY-MM-DD') }}*
{{ $json.choices[0].message.content }}注意:Slack 和 OpenAI 节点都需要先在 n8n 里配置「凭证(Credentials)」,即输入对应的 API Key。节点右上角有「New Credential」按钮,按提示填入即可,n8n 会加密存储。
实战工作流二:AI 邮件自动分类与回复草稿
目标:收到 Gmail 新邮件时,AI 判断类别(客户咨询/内部协作/垃圾/其他),对「客户咨询」类自动生成回复草稿并标记星标。
节点链路: Gmail Trigger(新邮件) → OpenAI(分类+草稿) → IF(判断类别) → Gmail(标记+草稿)
Step 1:Gmail 触发
添加 Gmail Trigger 节点,选择「New Email」事件,连接你的 Google 账号。
Step 2:AI 分类与生成回复草稿
添加 OpenAI 节点,Prompt:
分析以下邮件,输出 JSON 格式(所有字段用单引号):
{
category: '客户咨询|内部协作|垃圾邮件|其他',
reason: '分类原因(一句话)',
draft_reply: '如果是客户咨询,这里给出回复草稿(100字以内);否则为空字符串'
}
发件人:{{ $json.from }}
主题:{{ $json.subject }}
正文摘要:{{ $json.snippet }}设置 Response Format 为 JSON,确保输出可以被后续节点解析。
Step 3:条件判断
添加 IF 节点,条件:{{ $json.category }} equals 客户咨询。
- True 分支:继续处理
- False 分支:什么都不做(或者发一条 Slack 通知「收到非咨询邮件,已跳过」)
Step 4:标记和创建草稿
在 True 分支里添加两个 Gmail 节点:
- 第一个:操作选「Add Label」,给邮件加「客户咨询」标签,并标星标
- 第二个:操作选「Create Draft Reply」,内容填
{{ $json.draft_reply }}
这样每次收到客户邮件,你打开 Gmail 就能看到已经贴了标签、备好了草稿,只需要核对后点发送。
实战工作流三:本地 AI 文档问答助手(结合 Ollama)
目标:把一个本地 PDF 文件夹里的文档喂给本地 AI(Ollama),然后通过 Chat 界面问问题,AI 基于文档内容回答,数据全程不出本机。
前提:已安装并运行 Ollama(见 Ollama 使用教程),已拉取 qwen2.5:7b。
节点链路: Chat Trigger → AI Agent(Ollama) → Vector Store Tool(本地文档) → 回复
Step 1:准备文档索引
在 n8n 里,先创建一个「文档索引工作流」(只运行一次):
Manual Trigger→Read Binary Files(读取 PDF 文件夹里的所有文件)Extract from File(提取文本内容)Recursive Character Text Splitter(把文档切成 500 字的片段)Embeddings Ollama(用 Ollama 的 nomic-embed-text 模型生成向量)Vector Store - In Memory(存入内存向量库)
Step 2:搭建问答工作流
新建工作流,添加 Chat Trigger 节点(开启 Public Webhook,得到一个本地聊天 URL)。
添加 AI Agent 节点:
- Chat Model:选
Ollama→qwen2.5:7b - Memory:选
Window Buffer Memory(保留最近 5 轮对话上下文) - Tools:添加「Vector Store Tool」,指向第一步创建的向量库
- System Prompt:
你是一个文档助手,专门基于提供的文档内容回答问题。
回答时只使用文档里的信息,不要凭空捏造。
如果文档里没有相关信息,直接说明。
回答用中文。激活工作流后,打开聊天 URL(http://localhost:5678/webhook/xxxxx/chat),就可以问关于这批文档的任何问题了。
这个场景对处理合同、规章制度、技术文档特别有价值——把公司文档喂进去,直接问「这份合同里的违约金条款是什么」而不需要全文搜索。
常用节点速查
| 需求 | 节点名称 |
|---|---|
| 定时执行 | Schedule Trigger |
| 接收 HTTP 请求 | Webhook |
| 发送 HTTP 请求 | HTTP Request |
| 读取/写 Google Sheets | Google Sheets |
| 收发 Gmail | Gmail |
| 发 Slack 消息 | Slack |
| 发微信(企业微信) | 企业微信 |
| 调用 OpenAI | OpenAI / AI Agent |
| 调用本地 Ollama | Ollama Chat Model |
| 读取本地文件 | Read Binary Files |
| 转 PDF 为文本 | Extract from File |
| 条件分支 | IF |
| 数据合并 | Merge |
| 遍历数组 | Loop Over Items |
| 延迟等待 | Wait |
| 运行 JS 代码 | Code |
常见报错与排查
节点变红,提示「认证失败」
检查对应服务的 API Key 或 OAuth 授权是否填写正确,部分服务需要特定权限范围(Scope)。重新建立凭证,旧的凭证有时会过期。
工作流测试时没有数据,Trigger 节点输出为空
手动触发测试时,Trigger 节点本身不会产生真实数据,需要在 Trigger 节点里点「Fetch Test Event」获取真实数据样本,然后再测试后续节点。
AI 节点输出的 JSON 格式不稳定
大模型生成 JSON 有时会有多余的 markdown 格式(如 ````json包裹)。解决方法:在 OpenAI 节点里开启「Response Format → JSON Object」强制输出,或在后面加一个Code` 节点做解析:
const raw = $input.first().json.choices[0].message.content;
return [{ json: JSON.parse(raw.replace(/```json|```/g, '').trim()) }];Webhook 在外网无法访问
默认的 n8n 只监听本地端口,外网访问需要:1. 在路由器上做端口转发;2. 或者用 ngrok、Cloudflare Tunnel 等内网穿透工具。
FAQ
Q:n8n 自托管需要多高配的服务器?
个人使用或小团队(每天运行几十次工作流):1 核 CPU + 512 MB RAM 的最低配 VPS 就够。工作流频繁、有复杂 AI 处理的:2 核 + 2 GB RAM 更稳定。国内低配 VPS 价格约 ¥50-100/月,比 n8n Cloud 订阅便宜很多。
Q:n8n 工作流里的数据安全吗?
自托管版本,数据存在你自己的服务器上,n8n 官方无法访问。API Key 等凭证在数据库里加密存储。只要服务器本身安全,数据安全是有保障的。云版(n8n Cloud)的数据在 n8n 的服务器上,按 GDPR 规范处理。
Q:n8n 能处理大量数据(比如几千行表格)吗?
可以,但需要注意内存使用。Loop Over Items 节点可以分批处理大数组,避免单次处理几千条数据撑爆内存。AI 节点(LLM 调用)处理大数据时建议分批,每批 10-20 条,速度和成本都更可控。
Q:不会写代码能用 n8n 吗?
大多数场景(连接 API、发邮件、触发 AI)不需要写代码,用现有节点拖拽连接就够了。Code 节点(写 JS)只在处理特殊数据格式时需要。如果真的完全不想碰代码,AI 节点里可以用自然语言让 AI 帮你写 Code 节点的内容。
Q:n8n 和 Dify 有什么区别?
定位不同。n8n 是通用工作流自动化工具,擅长连接各种外部服务和系统级自动化;Dify 是 AI 应用开发平台,擅长快速搭建对话机器人、知识库问答、AI 流水线。两者都可以做 AI 自动化,但 n8n 的集成范围更广(能连接更多非 AI 服务),Dify 的 AI 应用构建体验更专注和完善。实际项目里,有时候会同时用:Dify 做 AI 对话部分,n8n 做数据同步和触发器。