从零掌握n8n工作流:我踩过的坑和学到的东西
说实话,我第一次听到n8n这个名字的时候,还以为是什么新出的加密货币。后来才知道,这玩意儿是个开源的工作流自动化工具,说白了就是帮你把那些重复的、跨平台的活儿自动化掉。我自己用了大半年,踩了不少坑,今天就把这些经验全倒出来,希望你们别重蹈我的覆辙。
n8n到底是个啥?
先说人话。n8n就是一个可视化的工作流编辑器,你可以用拖拽节点的方式把不同的服务串起来。比如"收到一封邮件→提取附件→上传到Google Drive→发个Slack通知",这种以前得手动干的事儿,搭好以后它自己跑。
核心概念就三个:
- 节点(Node):每一步操作就是一个节点,比如"发HTTP请求"、"写数据库"、"调OpenAI"。
- 连接(Connection):节点之间的箭头,决定数据往哪儿流。
- 数据流转:数据通常是JSON格式,从一个节点出来,进到下一个节点,中间可以被加工、筛选、转换。
我刚开始最大的误区是把n8n当成了"低代码平台",觉得它只能干简单的事儿。后来发现不是,它支持写JavaScript代码节点,能干的事儿比你想象的多得多。
怎么部署?Docker一把梭
部署这块我踩的第一个坑:一开始我用npm全局安装,结果各种Node版本不兼容的问题,折腾了一下午没搞明白。后来换成Docker,五分钟搞定,真香。
最简单的启动方式:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
这里有个巨坑我必须说:-v ~/.n8n:/home/node/.n8n 这个挂载千万不能忘。我第一次部署的时候偷懒没写这行,结果搭好的工作流在容器重启后全没了,当时心态直接崩了。这个挂载就是把数据持久化到本地,容器挂了数据还在。
启动后访问 http://localhost:5678,注册个管理员账号就能用了。
如果你想上生产环境,建议用Docker Compose搭配PostgreSQL:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
用SQLite跑测试没问题,但上生产一定要换PostgreSQL。我之前用SQLite跑了一段时间,数据量一上来就开始卡,迁移到PostgreSQL之后才好。
实战:搭你的第一个工作流
别光看不练,现在就动手。
入门级:手动触发 → 获取时间 → 发Slack
- 登录n8n后台,点
Add Workflow - 添加
Manual Trigger节点(手动触发,方便测试) - 添加
Date & Time节点,获取当前时间 - 添加
Slack节点,配置你的Slack凭证,选好频道 - 在消息内容里用表达式引用上游数据:
| 1 | |
- 把三个节点连起来,点
Test workflow看看Slack有没有收到消息
这个流程虽然简单,但它帮你理解了n8n最核心的东西:节点怎么连、数据怎么流。
进阶级:条件判断 + 数据处理
实际工作中,你不可能只做线性流程,得有分支和数据处理。
IF条件节点:比如你要根据客户等级发不同的消息。在IF节点里设置 {{ $json.level }} 等于 VIP,True走一条路,False走另一路。
Set节点:用来重塑数据结构。我经常从API拿到的数据字段名乱七八糟的,用Set节点统一改名再传给下游,比如把 order_id 改成 订单号,user_name 改成 客户姓名。
Loop节点:批量处理必备。比如你从Google Sheets拉了一百个客户名单,要给每个人发个性化邮件,就得用Loop把列表拆成一条一条处理。
高阶级:接AI大模型
n8n接AI这块做得真心不错。我自己用的比较多的是接OpenAI和国内的一些模型。
步骤很简单:
- 在凭证管理里添加你的API Key
- 拖一个
Message a Model节点 - 在Prompt里写你的需求,还可以引用上游数据:
| 1 | |
更高级的玩法是用 AI Agent 节点,它可以让大模型自己决定调用哪些工具。比如你给它配个HTTP Request工具和一个Code工具,它就能根据你的指令自己决定该查网页还是该跑计算。这个功能我个人觉得是n8n最有想象力的地方。
我踩过的坑和总结的技巧
-
一定要开错误处理:关键节点开启
Continue On Fail,不然一个节点挂了整个流程就断了。再配一个Error Trigger节点,出了错自动发通知给你。 -
大数据量要用分批处理:
Split In Batches节点,不然一次塞太多数据进去容易OOM。这个坑我踩过,半夜被报警电话叫醒的体验可不好受。 -
安全不能马虎:强密码必须的,建议再加个2FA。生产环境一定要放Nginx反代后面,配好HTTPS。API密钥定期轮换。
-
善用子工作流:把常用的逻辑封装成子工作流,用
Execute Workflow节点调用。主流程会清爽很多,也方便复用。 -
调试看数据:测试模式下点每个节点都能看到输入输出的数据结构,这是调试最高效的方式,比我一开始傻乎乎加一堆日志节点强多了。
n8n vs 其他工具
简单对比一下:
- Zapier:适合简单连接,但数据不自主,按任务数收费,贵。
- Make:逻辑能力强一些,但同样是云服务,数据在别人手上。
- Dify/Coze:AI能力很强,但定位是AI应用平台,不是通用自动化。
- n8n:自托管、数据完全可控、原生AI集成、扩展性极强。适合想深度折腾的人。
如果你只是偶尔连两个App,Zapier够了。但如果你要搞企业级的复杂流程、数据敏感、想深度集成AI,那n8n就是你的菜。
写在最后
n8n这东西上手不难,但要真正用好需要大量实践。我的建议是:别想太多,先找一个你工作中最烦的重复任务,试着用n8n把它自动化掉。从模仿官方模板开始,边做边学,遇到问题看文档、翻社区,慢慢你就上道了。
自动化这事儿,本质上是一种思维方式的转变。当你习惯了用n8n的视角看问题,你会发现到处都是可以自动化的点。开始动手吧,让机器替你打工。