$catSERPAPI||~10 min

从零掌握n8n工作流:自动化与AI实战搭建教程

advertisement

从零掌握n8n工作流:我踩过的坑和学到的东西

说实话,我第一次听到n8n这个名字的时候,还以为是什么新出的加密货币。后来才知道,这玩意儿是个开源的工作流自动化工具,说白了就是帮你把那些重复的、跨平台的活儿自动化掉。我自己用了大半年,踩了不少坑,今天就把这些经验全倒出来,希望你们别重蹈我的覆辙。

n8n到底是个啥?

先说人话。n8n就是一个可视化的工作流编辑器,你可以用拖拽节点的方式把不同的服务串起来。比如"收到一封邮件→提取附件→上传到Google Drive→发个Slack通知",这种以前得手动干的事儿,搭好以后它自己跑。

核心概念就三个:

  • 节点(Node):每一步操作就是一个节点,比如"发HTTP请求"、"写数据库"、"调OpenAI"。
  • 连接(Connection):节点之间的箭头,决定数据往哪儿流。
  • 数据流转:数据通常是JSON格式,从一个节点出来,进到下一个节点,中间可以被加工、筛选、转换。

我刚开始最大的误区是把n8n当成了"低代码平台",觉得它只能干简单的事儿。后来发现不是,它支持写JavaScript代码节点,能干的事儿比你想象的多得多。

怎么部署?Docker一把梭

部署这块我踩的第一个坑:一开始我用npm全局安装,结果各种Node版本不兼容的问题,折腾了一下午没搞明白。后来换成Docker,五分钟搞定,真香。

最简单的启动方式:

bash
1
docker run -d \
2
  - -name n8n \
3
  - p 5678:5678 \
4
  - v ~/.n8n:/home/node/.n8n \
5
  - e N8N_SECURE_COOKIE=false \
6
  - -restart unless-stopped \
7
  n8nio/n8n

这里有个巨坑我必须说:-v ~/.n8n:/home/node/.n8n 这个挂载千万不能忘。我第一次部署的时候偷懒没写这行,结果搭好的工作流在容器重启后全没了,当时心态直接崩了。这个挂载就是把数据持久化到本地,容器挂了数据还在。

启动后访问 http://localhost:5678,注册个管理员账号就能用了。

如果你想上生产环境,建议用Docker Compose搭配PostgreSQL:

yaml
1
version: '3.8'
2
services:
3
  n8n:
4
    image: n8nio/n8n
5
    restart: always
6
    ports:
7
      - "5678:5678"
8
    environment:
9
      - DB_TYPE=postgresdb
10
      - DB_POSTGRESDB_HOST=postgres
11
      - DB_POSTGRESDB_PORT=5432
12
      - DB_POSTGRESDB_DATABASE=n8n
13
      - DB_POSTGRESDB_USER=n8n_user
14
      - DB_POSTGRESDB_PASSWORD=your_password
15
      - WEBHOOK_URL=https://你的域名/
16
    volumes:
17
      - n8n_data:/home/node/.n8n
18
    depends_on:
19
      - postgres
20
 
21
  postgres:
22
    image: postgres:15
23
    restart: always
24
    environment:
25
      - POSTGRES_USER=n8n_user
26
      - POSTGRES_PASSWORD=your_password
27
      - POSTGRES_DB=n8n
28
    volumes:
29
      - postgres_data:/var/lib/postgresql/data
30
 
31
volumes:
32
  n8n_data:
33
  postgres_data:

用SQLite跑测试没问题,但上生产一定要换PostgreSQL。我之前用SQLite跑了一段时间,数据量一上来就开始卡,迁移到PostgreSQL之后才好。

实战:搭你的第一个工作流

别光看不练,现在就动手。

入门级:手动触发 → 获取时间 → 发Slack

  1. 登录n8n后台,点 Add Workflow
  2. 添加 Manual Trigger 节点(手动触发,方便测试)
  3. 添加 Date & Time 节点,获取当前时间
  4. 添加 Slack 节点,配置你的Slack凭证,选好频道
  5. 在消息内容里用表达式引用上游数据:
javascript
1
当前时间是:{{ $json.date }}
  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和国内的一些模型。

步骤很简单:

  1. 在凭证管理里添加你的API Key
  2. 拖一个 Message a Model 节点
  3. 在Prompt里写你的需求,还可以引用上游数据:
code
1
请将以下英文文本翻译为中文:{{ $json.english_text }}

更高级的玩法是用 AI Agent 节点,它可以让大模型自己决定调用哪些工具。比如你给它配个HTTP Request工具和一个Code工具,它就能根据你的指令自己决定该查网页还是该跑计算。这个功能我个人觉得是n8n最有想象力的地方。

我踩过的坑和总结的技巧

  1. 一定要开错误处理:关键节点开启 Continue On Fail,不然一个节点挂了整个流程就断了。再配一个 Error Trigger 节点,出了错自动发通知给你。

  2. 大数据量要用分批处理Split In Batches 节点,不然一次塞太多数据进去容易OOM。这个坑我踩过,半夜被报警电话叫醒的体验可不好受。

  3. 安全不能马虎:强密码必须的,建议再加个2FA。生产环境一定要放Nginx反代后面,配好HTTPS。API密钥定期轮换。

  4. 善用子工作流:把常用的逻辑封装成子工作流,用 Execute Workflow 节点调用。主流程会清爽很多,也方便复用。

  5. 调试看数据:测试模式下点每个节点都能看到输入输出的数据结构,这是调试最高效的方式,比我一开始傻乎乎加一堆日志节点强多了。

n8n vs 其他工具

简单对比一下:

  • Zapier:适合简单连接,但数据不自主,按任务数收费,贵。
  • Make:逻辑能力强一些,但同样是云服务,数据在别人手上。
  • Dify/Coze:AI能力很强,但定位是AI应用平台,不是通用自动化。
  • n8n:自托管、数据完全可控、原生AI集成、扩展性极强。适合想深度折腾的人。

如果你只是偶尔连两个App,Zapier够了。但如果你要搞企业级的复杂流程、数据敏感、想深度集成AI,那n8n就是你的菜。

写在最后

n8n这东西上手不难,但要真正用好需要大量实践。我的建议是:别想太多,先找一个你工作中最烦的重复任务,试着用n8n把它自动化掉。从模仿官方模板开始,边做边学,遇到问题看文档、翻社区,慢慢你就上道了。

自动化这事儿,本质上是一种思维方式的转变。当你习惯了用n8n的视角看问题,你会发现到处都是可以自动化的点。开始动手吧,让机器替你打工。

advertisement

从零掌握n8n工作流:自动化与AI实战搭建教程 — AI Hub