10-11 什么是n8n?
✅什么是n8n?
n8n是一款企业级的****开源、可视化、高度可扩展的工作流自动化平台,相比于Dify来说,N8N算是历史悠久了,在没有AI 工作流这个概念的时候,他们就已经在做工作流自动化的事情了,在AI出来之后,就顺理成章的转变成基于AI的工作流的搭建。
所以, 在工作流本身的能力上,N8N要更强一些。尤其是一些第三方的集成上面,N8N甩Dify几条街,毕竟这都是长时间积累下来的(官方支持数百种服务集成)。所以,在N8N中,AI只是他的能力之一,但是不仅仅局限于AI,所以,他也是很多企业级工作流搭建的首选。
n8n 内置超过 300+ 官方节点,支持与主流 SaaS 工具(如 Slack、Google Sheets、Notion、Airtable、Shopify、Discord、Telegram、Zapier Webhooks 等)以及数据库(PostgreSQL、MySQL、MongoDB)、消息队列(RabbitMQ、Kafka)和自定义 HTTP 接口无缝集成。
github:https://github.com/n8n-io/n8n
官网: https://n8n.io/ (可以用云服务,新用户免费使用14天)

部署
n8n支持以下2种方式部署:
使用npx:
1 | npx n8n |
使用docker:
1 | docker volume create n8n_data |
部署成功后,可以通过localhost:5678访问。

(N8N的功能介绍和使用,在后面的实战中展开讲解,这部分建议大家看视频)
工作流触发方式
在n8n中,需要配置一个任务的触发方式,n8n比dify多了很多触发方式:

Trigger manually(手动触发):通过点击 n8n 界面中的“运行”按钮来启动流程。最简单直接的方式,适合开发阶段做调试、测试以及临时执行。
On app event(应用事件触发):当某个外部应用(如 Telegram、Notion、Airtable、Google Sheets 等)发生特定事件时自动触发。
比如当收到 Telegram 消息时;当 Airtable 表格有新行插入时。

On a schedule(定时触发):按照设定的时间间隔自动运行流程。支持 cron 表达式,可灵活设置周期性任务。比如每天凌晨 2 点运行。

On webhook call(Webhook 触发):当接收到 HTTP 请求(POST/GET)时触发流程。可以暴露一个 URL,让外部系统“推送”数据进来。也就是可以通过这种方式让把工作流集成到我们的系统中做调用。

On form submission(表单提交触发):在 n8n 内创建 Web 表单,用户填写并提交后触发流程。这种方式,无需额外前端,快速构建交互式流程。

When executed by another workflow(由其他工作流调用):在一个工作流中使用 Execute Workflow 节点来调用另一个工作流。可以用这种方式实现流程嵌套。
On chat message(聊天消息触发):当用户在聊天工具(如 Slack、Telegram、Discord)中发送消息时触发。常用于构建 AI 助手或客服机器人,类似dify的chatflow

Other ways…(其他方式):更多高级触发条件,可通过插件扩展支持更多触发源,比如:
文件变更(如 Google Drive 新文件上传);
工作流错误时自动重试;
数据库变化监听等。
触发方式对比
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| 触发方式 | 是否需要外部输入 | 是否适合自动化 | 适用场景 |
| 手动触发 | 否 | ❌ | 测试、调试 |
| 应用事件 | 是 | ✅ | 集成 Notion/Airtable 等 |
| 定时 | 否 | ✅ | 日报、备份、监控 |
| Webhook | 是 | ✅ | API 对接、事件驱动 |
| 表单提交 | 是 | ✅ | 用户输入收集 |
| 其他工作流调用 | 是 | ✅ | 模块化流程 |
| 聊天消息 | 是 | ✅ | AI 机器人、客服 |
节点类型
有了触发节点之后,就可以配置后续流程了, n8n 把节点分成了几个分类。
AI 节点
这就是AI相关的节点,就是做模型调用的。

支持与主流大模型(如 OpenAI、Claude、Anthropic、Google Gemini 等)集成;
可以直接构建一个Ai Agent
不同的AI模型都提供了不同的能力,可以在对应的节点中选择

AI Agent是一个构建Agent的节点,他把一个agent需要的llm、memory和tool都集成在一起了,可以分别做配置。

Action in an app(应用操作节点)

连接第三方服务,执行具体操作;
涵盖数百种应用(如 Google Drive、Slack、Zapier、Airtable、GitHub、Zoom 等);
每个应用通常包含多个子节点,例如:
Google Sheets: 创建行、读取数据、更新单元格Telegram: 发送消息、回复用户Notion: 添加页面、查询数据库
Data transformation(数据转换节点)

对数据进行清洗、格式化和处理;
常见节点包括:
Set: 设置变量或字段值Filter: 根据条件筛选数据项Map: 遍历数组并转换每一项JSON: 解析/生成 JSON 数据Function: 执行 JavaScript 代码处理数据Split / Merge: 分割或合并数据流
Flow(流程控制节点)

控制工作流的执行逻辑路径;
实现条件判断、循环、分支合并等复杂逻辑;
常见节点:
If: 条件判断(类似 if-else)Loop: 循环遍历数组(如对每条记录做操作)Wait: 暂停一段时间再继续Merge: 多个分支合并为一条路径Switch: 多条件选择(类似 switch-case)
Core(核心功能节点)

提供底层通用能力;
包含最基础但强大的工具;
常见节点:
HTTP Request: 发起任意 HTTP 请求(GET/POST/PUT 等)Code: 执行自定义 JavaScript/TypeScript 代码Webhook: 接收外部 HTTP 请求(常作为触发器)Set: 设置变量(也可在 Data Transformation 中使用)Delay: 延迟执行
Human in the loop(人工介入节点)

引入人类参与决策过程;
在自动化_流程中暂停,等待_人工确认;
常见节点:
Human Review: 显示任务给指定人员审核Approval: 通过邮件或通知请求批准Form: 创建表单让用户填写输入
| Column 1 | Column 2 | Column 3 |
|---|---|---|
| 类别 | 主要作用 | 典型节点示例 |
| AI | AI 能力调用 | OpenAI Chat, LangChain |
| Action in an app | 第三方应用操作 | Google Sheets, Telegram, Notion |
| Data transformation | 数据处理 | Filter, Map, Set, Function |
| Flow | 流程控制 | If, Loop, Wait, Merge |
| Core | 通用功能 | HTTP Request, Code, Webhook |
| Human in the loop | 人工干预 | Human Review, Approval, Form |
| Trigger | 启动流程 | Webhook, Schedule, Manual |
N8N中使用本地模型
n8n目前只支持一些国外的模型,国内模型只支持deepseek,其他的模型,比如qwen他是不支持的,所以,我们想要使用开源模型的话,需要自己本地部署,通过ollama的方式支持。
1、选择ollama节点

2、配置一个ollama账号:

3、选择本地已部署的模型

之后就可以用这个本地部署的模型做调用了。
GitHub 上的n8n 模板: https://github.com/Zie619/n8n-workflows
踩坑记录
如果是使用服务器部署的n8n,在使用的时候会发现,n8n打开的组件的默认域名依然是localhost,这个会非常影响我们的测试和使用。
比如我们使用表单触发方式的时候,点击测试,他打开的无头浏览器是localhost的,虽然你可以另打开一个页面修改ip访问,但是你没法调试节点了啊,你也没法在后续流程中引用表单的数据,所以在这个场景下,这问题是一定要解决的。

解决方式就是修改启动命令:核心就是增加 N8N_HOST,指定 n8n 前端页面识别公开主机地址,用于前端生成请求链接。
1 | docker run -d \ |
启动成功后,我们再次使用表单触发组件,点击 Test step 可以发现,他自动打开的url已经是我们的ip地址,而不是localhost了。

我们填写一下表单信息,可以看到我们的节点就成功获取到了 Output。

这样你才能再后续的节点中,拖拽前序节点的输出。

