工具

n8n 教程:无代码创建工作流

Jonas Höttler24. 一月 20268 min
简而言之

一个 n8n 工作流由节点组成:一个触发器启动它(Webhook、时间表、应用内事件),动作节点执行操作,逻辑节点分支。入门可使用云端版本;如果想把数据保留在内部,请以 Docker 容器启动 n8n 并设置 WEBHOOK_URL 以及 Basic Auth,否则传入的 Webhook 无法到达该实例。不写代码也能完成大部分工作:可以通过双大括号中的表达式从前一个节点提取值,使用 IF 做分支,用 Split In Batches 处理大批量数据,通过 Retry 和一个 Error-Trigger 处理错误。只有在需要进行没有现成节点的变换时才需要 JavaScript。

不同形状的铣削金属块并排放在一张草图上,只有一个能契合
Inhaltsverzeichnis

n8n 并不是面向开发者的工具,尽管文档可能听起来像是。它是为公司中那些本来就会写 Excel 公式的人准备的工具:财务控制人员、总经理助理、带有分析表格的车间主管。会写 SVERWEIS 公式的人也能搭建 n8n 工作流。下面第三个示例——每周报告——正是这样的案例,视具体情况每周可节省数小时工作时间。

本教程正是为这样的人写的。无需 Docker 环境折腾,无需 TypeScript 自定义节点。集中讲解:如何部署 n8n、在 45 分钟内搭建出第一个可用工作流,以及在什么情况下您应该真正找开发人员协助。

什么是 n8n?

n8n 是一个工作流自动化平台,您可以用它连接应用并自动化流程——无需编程。其特点:

  • Open Source:代码可查看并可定制
  • Self-Hosting möglich:对您的数据拥有完全控制权
  • Fair Code Lizenz:大多数使用场景免费
  • Visueller Editor:通过拖放创建工作流
  • 400+ Integrationen:从 Google 到 GitHub,从 Slack 到 Shopify

n8n vs. Zapier vs. Make

Featuren8nZapierMake
PreisKostenlos (Self-Host) / ab 20€ (Cloud)Ab 20$/MonatAb 9€/Monat
Self-HostingJaNeinNein
Open SourceJaNeinNein
Integrationen400+6.000+1.500+
Komplexe LogikSehr gutBegrenztGut
LernkurveMittelNiedrigMittel
DSGVOOptimal (Self-Host)ProblematischGut

n8n ist ideal für:

  • 有数据保护要求的公司
  • 有一定技术能力的团队
  • 需要复杂分支的工作流
  • 注重预算的自动化方案

安装并配置 n8n

方案 1:n8n Cloud(最简单的入门方式)

  1. 打开 n8n.io
  2. 点击 “Start Free”
  3. 注册账号
  4. 完成 - 您可以立即开始使用

Preis: 14 天免费,然后从 20€/月 起

方案 2:使用 Docker 自行托管(推荐)

前提:已安装 Docker

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

然后在浏览器中打开 http://localhost:5678。

生产环境使用 Docker Compose:

version: '3.8'
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=sicheres_passwort
      - WEBHOOK_URL=https://n8n.ihre-domain.de/
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

方案 3:通过 npm 安装

npm install n8n -g
n8n start

理解 n8n 用户界面

工作流编辑器

登录后您会看到空白的工作流编辑器。主要元素:

  • Canvas:放置节点的工作区
  • Node-Panel(右侧):所有可用的集成
  • Ausführen-Button(上方):手动触发工作流
  • Speichern(上方):保存工作流
  • Aktivieren(上方):启用以便自动运行

什么是 Nodes?

节点是工作流的构建模块。每个节点都有特定功能:

  • Trigger-Nodes:触发工作流(例如 Webhook、定时、邮件到达)
  • Action-Nodes:执行动作(例如 发送邮件、保存数据)
  • Logic-Nodes:控制流程(例如 If/Else、Switch、Merge)

您的第一个工作流:当 Notion 新建页面时发送邮件

目标: 当 Notion 中创建新页面时,向您发送一封邮件。

步骤 1:添加触发器

  1. 点击 Canvas 上的 +
  2. 搜索 “Notion”
  3. 选择 “Notion Trigger”
  4. 配置连接:
    • 点击 “Create New Credential”
    • 按照 Notion API 的说明完成设置
  5. 选择:
    • Event:Page Added to Database
    • Database:您要监控的数据库

步骤 2:添加发送邮件节点

  1. 在 Notion 节点右侧点击 +
  2. 搜索 “Send Email”
  3. 配置:
    • From Email: ihre@email.de
    • To Email: ihre@email.de
    • Subject:Neue Notion-Seite: {{ $json.properties.Name.title[0].plain_text }}
    • Text:Es wurde eine neue Seite erstellt.

步骤 3:启用工作流

  1. 点击 Speichern
  2. 点击 Aktivieren(右上角开关)
  3. 工作流现在会自动运行!

工作流示例 2:线索通知

场景: 网站表单提交 → 发送 Slack 通知 + 在 CRM 建档

节点列表

  1. Webhook(Trigger):接收表单数据
  2. HubSpot:创建联系人
  3. Slack:在团队频道发送消息

操作步骤

  1. Webhook 配置:
  • 节点:"Webhook"
  • HTTP Method:POST
  • Path:lead-form
  • 复制 Webhook URL
  1. 在 HubSpot 创建联系人:
  • 节点:"HubSpot"
  • Operation:Create/Update Contact
  • Email:{{ $json.body.email }}
  • First Name:{{ $json.body.firstname }}
  • Last Name:{{ $json.body.lastname }}
  1. 发送 Slack 消息:
  • 节点:"Slack"
  • Channel:#sales
  • Text:
Neuer Lead!
Name: {{ $json.body.firstname }} {{ $json.body.lastname }}
E-Mail: {{ $json.body.email }}
  1. 将 Webhook URL 写入表单的 Action-URL

工作流示例 3:自动报告

场景: 每周一 9:00 → 从 Google Sheets 读取数据 → 通过邮件发送

节点列表

  1. Schedule Trigger:周一 9:00
  2. Google Sheets:读取数据
  3. Function:格式化数据
  4. Send Email:发送报告

配置细节

  1. Schedule Trigger:
  • Trigger Times:Add Cron Time
  • Mode:Every Week
  • Day of Week:Monday
  • Hour:9
  • Minute:0
  1. Google Sheets:
  • Operation:Read Rows
  • Spreadsheet:您的表格
  • Range:A:E(或您需要的列范围)
  1. Function(JavaScript):
// 数据格式化为表格
const rows = items.map(item => item.json);
let table = "| Name | Umsatz | Status |\n|---|---|---|\n";

rows.forEach(row => {
  table += `| ${row.Name} | ${row.Umsatz}€ | ${row.Status} |\n`;
});

return [{ json: { report: table } }];
  1. Send Email:
  • Subject:Wöchentlicher Report - {{ $now.format('DD.MM.YYYY') }}
  • HTML:{{ $json.report }}

n8n 的重要概念

Expressions(表达式)

表达式用于生成动态值。语法:{{ }}

示例:

  • {{ $json.email }} - 来自前一个节点的值
  • {{ $now }} - 当前日期/时间
  • {{ $json.name.toUpperCase() }} - 使用 JavaScript 函数
  • {{ $node["Google Sheets"].json.data }} - 来自特定节点的数据

使用 IF 分支

IF 节点用于条件逻辑:

  1. 添加一个 "IF" 节点
  2. 条件示例:{{ $json.status }} equals "urgent"
  3. True 路径:执行某个动作
  4. False 路径:执行另一个动作

使用 Split In Batches 处理循环

针对大量数据:

  1. 添加 "Split In Batches" 节点
  2. 设置 Batch Size(例如 10)
  3. 循环直到处理完所有批次

错误处理

Error Trigger:当其他工作流失败时触发该工作流

Retry on Fail:对单个节点启用

  • 打开节点设置
  • "On Error" → "Continue" 或 "Retry"

高级技巧

为外部事件创建 Webhooks

Webhook 是可以被外部服务调用的 URL。

创建 Webhook:

  1. 将 Webhook 节点设为触发器
  2. 选择 HTTP Method(GET、POST 等)
  3. 定义 Path(例如 /customer-update)
  4. 复制 URL 并在外部服务中配置

测试 Webhook:

  • 在浏览器中直接访问 GET Webhook
  • 用 Postman 测试 POST Webhook
  • 在 n8n 中使用 "Listen for test event"

使用 HTTP Request 调用无原生集成的 API

对于没有原生 n8n 集成的服务:

  1. 添加 "HTTP Request" 节点
  2. 配置:
    • Method:GET、POST、PUT、DELETE
    • URL:API 端点
    • Authentication:API Key、OAuth 等
    • Body:JSON 数据

示例:调用未知 API

{
  "method": "POST",
  "url": "https://api.example.com/data",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY"
  },
  "body": {
    "name": "{{ $json.name }}",
    "email": "{{ $json.email }}"
  }
}

当需要复杂逻辑时使用 Code-Node

当可视化节点不够用时,可以使用 JavaScript:

// 处理所有 Items
const results = [];

for (const item of items) {
  const data = item.json;

  // 计算
  const total = data.price * data.quantity;
  const tax = total * 0.19;

  results.push({
    json: {
      ...data,
      total,
      tax,
      gross: total + tax
    }
  });
}

return results;

n8n 最佳实践

1. 保持工作流模块化

  • 一个工作流 = 一项任务
  • 将复杂流程拆分为多个工作流
  • 通过 Webhook 串联工作流

2. 加入错误处理

  • 对关键工作流设置 Error Trigger
  • 失败时通知(Slack、邮件)
  • 对不稳定的 API 使用重试逻辑

3. 安全管理凭据

  • 不要在工作流中直接写 API Key
  • 使用 n8n 的 Credentials 功能
  • Self-Hosting 时使用环境变量

4. 在启用前测试

  • 使用 "Execute Workflow" 进行测试
  • 使用测试数据
  • 检查每个节点的输出

5. 做好文档

  • 为工作流起有意义的名称
  • 使用 Sticky Notes 解释关键点
  • 注释复杂的 Expressions

常见问题与解决方法

问题:Webhook 无法到达 n8n

可能原因:

  • n8n 无法被公网访问
  • 防火墙拦截
  • 缺少 HTTPS

解决方法:

  • 测试时使用隧道服务(ngrok)
  • 配置反向代理(nginx、Traefik)
  • 设置 WEBHOOK_URL 环境变量

问题:达到 API 限额

解决方法:

  • 使用 Split In Batches
  • 在请求间加 Wait 节点
  • 在 HTTP Request 节点中设置速率限制

问题:数据格式不正确

解决方法:

  • 使用 Set 节点重构数据
  • 用 Function 节点做复杂转换
  • 使用 Date & Time 节点处理日期格式

团队使用 n8n

协同工作(n8n Cloud)

  • 一个 Workspace 支持多个用户
  • 共享工作流
  • 所有人可见执行历史

团队自托管

  • 生产环境建议使用 PostgreSQL 而非 SQLite
  • 高负载时启用 Queue Mode
  • 使用多个 Worker 实现扩展

结论

n8n 是一款强大的工作流自动化工具——尤其适合重视数据保护或需要最大灵活性的场景。相比 Zapier 学习曲线略陡,但可实现的功能也更强大。

您的下一步:

  1. 选择 n8n Cloud 或 本地安装
  2. 搭建第一个简单工作流(例如 RSS → 邮件)
  3. 逐步构建更复杂的流程
  4. 自托管时搭建生产环境

Weiterführende Ressourcen:

您想在公司内部使用 n8n 吗? 我们提供设置、工作流开发和托管支持——让您专注于流程优化。

Tool-Tipp: 我们的免费 Automatisierungs-Check 可以在几分钟内判断某个流程是否适合自动化,包含 ROI 估算和工具推荐。

如果您想知道流程的成本:就测量它。

从免费的诊断开始或下载 FlowVisual。如果之后想与人沟通,我们随时可联络。