n8n 基础教程
本教程面向第一次接触 n8n 的用户,覆盖核心概念、界面要点、基础工作流搭建、数据处理与表达式、凭据管理、错误处理与运行方式等。读完后你可以独立搭建并运行一个基础自动化流程。
1. n8n 是什么
- n8n 是一个可视化的自动化工作流工具,通过“节点(Node)”把不同服务/系统连接起来。
- 典型用途:定时拉取数据、清洗与转换、写入数据库/表格、调用 API、发送通知等。
2. 核心概念
- 工作流(Workflow):由多个节点组成的自动化流程。
- 节点(Node):工作流中的一个步骤,例如 HTTP 请求、读取表格、发送邮件。
- 触发器(Trigger):工作流的起点,比如定时触发、Webhook、表格变更等。
- 执行(Execution):工作流的一次运行。
- 凭据(Credentials):用于连接外部服务的密钥或账号信息。
3. 安装与启动(常见方式)
具体方式以官方文档为准,这里给出常见入门路径。
3.1 桌面版
- 适合本地试用与学习,安装后直接打开应用即可创建工作流。
3.2 Docker 方式
bash
# 示例:启动并映射端口
# docker run -it --rm -p 5678:5678 n8nio/n8n3.3 Node.js / npm 方式
bash
# 示例:全局安装并启动
# npm install -g n8n
# n8n启动后通常访问:http://localhost:5678。
4. 界面快速认识
- 左侧:节点库、搜索节点。
- 画布:拖拽节点并连线形成工作流。
- 右侧面板:当前节点的配置项。
- 顶部:执行、保存、启停等操作。
5. 第一个工作流:定时 + HTTP + 通知
目标:每 10 分钟请求一次公开 API,把结果发到某个通知渠道(例如邮件或聊天工具)。
5.1 步骤
- 添加 Schedule Trigger(或 Cron)节点,设置间隔 10 分钟。
- 添加 HTTP Request 节点,请求 API(例如天气、汇率或自建接口)。
- 添加 Set 节点,整理需要的字段(比如只保留
name、value)。 - 添加 通知节点(Email、Telegram、Slack 等)。
- 连接节点并保存,点击执行测试。
5.2 数据流示意
Schedule Trigger → HTTP Request → Set → Notification6. 数据与表达式
n8n 节点之间传递的是结构化 JSON 数据。
6.1 访问上一步数据
- 在字段中使用表达式语法:
<span v-pre>{{ $json.fieldName }}</span> - 访问上一步节点:
<span v-pre>{{ $node["HTTP Request"].json }}</span>
6.2 常见用法
- 拼接字符串:
<span v-pre>{{ $json.firstName + " " + $json.lastName }}</span> - 取数组第一个元素:
<span v-pre>{{ $json.items[0] }}</span> - 时间处理:可用 JavaScript 表达式进行简单计算
7. 常用节点类型
- 触发器类:Schedule Trigger、Webhook Trigger
- 数据处理类:Set、Function、IF、Switch、Merge
- 数据存储类:MySQL、Postgres、Google Sheets
- 通信通知类:Email、Slack、Telegram、Webhook
8. 凭据与安全
- 在 Credentials 中集中管理密钥。
- 建议使用最小权限的 API Key。
- 不要在节点中硬编码密钥,统一从 Credentials 引用。
9. 错误处理与重试
- 节点可配置 Continue On Fail,避免因单条数据失败导致整体中断。
- 使用 IF / Switch 节点分流错误数据。
- 对关键节点增加重试机制或告警。
10. 执行模式与版本管理
- 手动执行:测试阶段常用。
- 激活工作流:上线后自动执行。
- 版本管理:建议对工作流做导出备份或接入 Git 管理(如果环境支持)。
11. 常见问题排查
- 没有数据传递:检查节点连线方向与上一步输出。
- 表达式报错:检查字段名与数据结构,必要时先插入 Set 节点查看数据。
- Webhook 不触发:确认地址正确、工作流已激活、网络可达。
12. 实战建议
- 先用少量节点跑通流程,再逐步拆分与重构。
- 复杂逻辑尽量拆成多个小工作流,用 Webhook 串联。
- 关键节点添加日志或告警,便于运维。
13. 进阶方向
- 自建 n8n + 数据库(Postgres)
- 使用队列模式与多实例扩展
- 自定义节点开发
如果你告诉我你的具体场景(比如“从表格读取数据并发邮件”),我可以给你一份更贴近业务的工作流步骤或模板。