跳转至

n8n 自动化工作流

一句话说明:n8n 是一个开源的可视化工作流自动化平台,支持 400+ 应用集成和原生 AI 能力,可以自托管部署,让你用拖拽的方式把各种工具串联起来自动干活。


1. 什么是 n8n

白话解释:n8n(读作 "n-eight-n",意思是 "nodemation" = node + automation)就像 iOS 的快捷指令(Shortcuts),但比它强大 100 倍

举个例子: - 快捷指令能做的:收到短信 → 自动回复 - n8n 能做的:每天早上 8 点 → 自动从 GEO 数据库下载数据 → 用 Python 跑分析 → 调用 AI 生成报告 → 发邮件给导师 → 同时备份到 Google Drive

核心卖点: - 开源免费:GitHub 186,000+ Stars(截至 2026 年 5 月),社区活跃 - 自托管:数据完全在自己手里,不怕隐私泄露(对比 Zapier 数据在别人服务器上) - 可视化编辑器:拖拽节点(Node),连线就能搭工作流,不需要写代码 - 也能写代码:内置 Code 节点,支持 JavaScript/Python,灵活度拉满 - 原生 AI 能力:内置 LangChain 节点,可以直接调 OpenAI/Ollama/向量数据库构建 AI Agent - 400+ 集成:Gmail、Slack、GitHub、MySQL、HTTP Request……几乎什么都能连

最新版本:n8n v2.19.2(2026-05-01 发布),采用 Fair-code 许可证(Sustainable Use License)。


2. 核心概念(5 个关键词搞懂 n8n)

2.1 Workflow(工作流)

白话:一条自动化流水线,从"触发"到"结束"的完整流程
  • 一个 Workflow 就是一张"流程图",由多个 Node 通过连线组成
  • 可以手动执行,也可以设置自动触发
  • 每个 Workflow 有唯一 ID,可以导出为 JSON 文件分享给别人

2.2 Node(节点)

白话:流水线上的每一个"工位",每个工位负责一个具体任务
  • Trigger Node(触发节点):流程的起点,比如"每天 8 点"、"收到 Webhook"、"新邮件到达"
  • Action Node(动作节点):具体干活的节点,比如"发 HTTP 请求"、"写数据库"、"发邮件"
  • AI Node(AI 节点):调用大模型的节点,比如 OpenAI、Anthropic、Ollama 等

2.3 Trigger(触发器)

白话:流水线的"开关",什么时候开始干活

常用触发器类型: | 触发器 | 说明 | 场景举例 | |--------|------|----------| | Schedule Trigger | 定时触发(Cron 表达式) | 每天 8 点跑分析 | | Webhook | 接收外部 HTTP 请求触发 | 别的系统推送数据过来 | | Manual Trigger | 手动点击触发 | 调试的时候用 | | Email Trigger (IMAP) | 收到邮件触发 | 收到导师邮件自动处理 | | RSS Feed Trigger | RSS 更新触发 | 监控 PubMed 新论文 | | Chat Trigger | 对话消息触发 | 构建聊天机器人 |

2.4 Credential(凭证)

白话:各种账号密码/API Key 的"钥匙柜",统一管理,安全存储
  • 连接第三方服务需要的认证信息(API Key、OAuth Token 等)
  • 在 n8n 中集中管理,加密存储
  • 一次配置,所有用到这个服务的节点都能共享

2.5 Expression(表达式)

白话:节点之间传递数据的"翻译器",用 {{ }} 包裹
// 引用上一个节点的输出数据
{{ $json.name }}              // 当前节点输入数据的 name 字段
{{ $('HTTP Request').item.json.title }}  // 引用指定节点的 title 字段
{{ $now.toISO() }}            // 当前时间(ISO 格式)
{{ $json.score > 0.8 ? '高分' : '低分' }}  // 三元表达式做条件判断

3. 安装部署

3.1 Docker 一行命令(推荐,最快上手)

# 创建持久化数据目录
docker volume create n8n_data

# 一行命令启动 n8n(访问 http://localhost:5678)
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \                           # 映射端口,浏览器访问用
  -v n8n_data:/home/node/.n8n \            # 数据持久化,重启不丢数据
  docker.n8n.io/n8nio/n8n                  # 官方 Docker 镜像

启动后浏览器打开 http://localhost:5678,注册账号即可使用。

3.2 Docker Compose(生产环境推荐)

# docker-compose.yml
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=your_pwd     # 密码(改成自己的)
      - GENERIC_TIMEZONE=Asia/Shanghai       # 时区设为中国
      - N8N_DEFAULT_LOCALE=zh                # 界面语言中文
    volumes:
      - n8n_data:/home/node/.n8n             # 持久化数据

volumes:
  n8n_data:                                  # 声明数据卷
# 启动
docker compose up -d    # -d 表示后台运行

# 查看日志
docker compose logs -f n8n

# 停止
docker compose down

3.3 npx 本地运行(快速试用,不需要 Docker)

# 需要 Node.js 18+
npx n8n                  # 一行命令启动,自动下载运行

# 也可以全局安装
npm install -g n8n       # 全局安装
n8n start                # 启动

提示:npx 方式适合试用,生产环境强烈建议用 Docker,数据更安全、升级更方便。


4. 实操教程(从 Hello World 到完整工作流)

4.1 Hello World 工作流

目标:手动触发 → 输出一句话

  1. 打开 n8n 编辑器,点击右上角 "+ New Workflow"
  2. 点画布中的 "+" 按钮,搜索添加 "Manual Trigger" 节点
  3. 再添加一个 "Edit Fields (Set)" 节点,配置:
  4. 字段名:message
  5. 值:Hello n8n! 我的第一个工作流
  6. 将两个节点连线
  7. 点击 "Test Workflow" → 查看输出

4.2 定时触发 + HTTP 请求

目标:每天早上 8 点自动获取天气信息

[Schedule Trigger] → [HTTP Request] → [Edit Fields]
    每天 8:00          请求天气 API       提取关键信息

Schedule Trigger 配置: - Trigger Interval: Every Day - Hour: 8 - Minute: 0 - Timezone: Asia/Shanghai

HTTP Request 配置: - Method: GET - URL: https://api.openweathermap.org/data/2.5/weather?q=Beijing&appid=YOUR_KEY&lang=zh_cn

4.3 AI 节点调用大模型

目标:输入文本 → AI 总结 → 输出结果

[Manual Trigger] → [OpenAI] → [Edit Fields]
                    调用 GPT      格式化输出

OpenAI 节点配置: - Resource: Conversation - Operation: Send Message - Model: gpt-4o-mini - Message: 请用中文总结以下内容:{{ $json.text }}

前提:需要先在 Credentials 中配置 OpenAI API Key。

4.4 数据处理 + 输出到文件/邮件

目标:获取数据 → 过滤 → 转换 → 写文件 + 发邮件

[HTTP Request] → [Filter] → [Code] → [Convert to File] → [Send Email]
  获取数据        筛选条件    处理数据    生成 CSV          发送结果

Code 节点(JavaScript)示例

// 对输入数据做处理,提取关键字段
const items = $input.all();           // 获取所有输入项
const results = items.map(item => ({  // 遍历处理
  json: {
    gene: item.json.gene_symbol,      // 提取基因名
    pvalue: item.json.p_value,        // 提取 p 值
    significant: item.json.p_value < 0.05 ? '是' : '否'  // 判断是否显著
  }
}));
return results;                       // 返回处理后的数据

Convert to File 节点: - Operation: Convert to CSV - File Name: analysis_result.csv

Send Email 节点: - To: your@email.com - Subject: [自动报告] 分析结果 {{ $now.format('yyyy-MM-dd') }} - Attachments: 引用上一步生成的 CSV 文件


5. n8n + AI(构建 AI 工作流)

n8n 从 v1.19 开始原生集成 LangChain,可以直接在工作流中构建 AI Agent。

5.1 支持的 AI 模型节点

节点名称说明
OpenAIGPT-4o / GPT-4o-mini / DALL-E / Whisper / TTS
AnthropicClaude 系列模型
Google GeminiGemini Pro / Flash
Ollama本地部署的开源模型(Llama、Qwen 等)
Mistral AIMistral 系列
Perplexity联网搜索 + AI 回答
MCP Client连接 MCP 服务器,使用外部工具

5.2 调用 OpenAI 构建摘要工作流

[Schedule Trigger] → [RSS Feed Read] → [OpenAI] → [Google Sheets]
  每天 9 点触发       读取 PubMed RSS    AI 摘要     写入表格

OpenAI 节点 Prompt 示例:

你是一名生物信息学研究助手。请用中文总结以下论文摘要,提取:
1. 研究目的
2. 方法
3. 主要发现
4. 与宏基因组/肠道菌群的关联度(高/中/低/无)

论文内容:{{ $json.content }}

5.3 调用 Ollama(本地 LLM,免费无限用)

# 先安装 Ollama 并拉取模型
ollama pull qwen2.5:7b       # 拉取通义千问 7B 模型

在 n8n 中配置 Ollama Credential: - Base URL: http://localhost:11434(Ollama 默认端口)

然后就可以在 AI 节点中选择 Ollama 作为模型提供商,完全本地运行,无需 API Key。

5.4 向量数据库 + RAG 工作流

n8n 支持接入向量数据库(如 Pinecone、Qdrant、Supabase Vector),可以构建 RAG(检索增强生成)工作流:

[Chat Trigger] → [Vector Store Retriever] → [AI Agent] → [Chat Response]
  用户提问         从向量库检索相关文档      AI 结合文档回答    返回答案

这在生信场景中可以用来构建"论文知识库问答系统"——把读过的论文嵌入向量库,随时用自然语言查询。


6. 生信自动化场景

6.1 场景一:定时下载 GEO 数据 → 分析 → 生成报告 → 邮件通知

[Schedule Trigger]     每周一早上 8 点
[HTTP Request]         从 NCBI GEO API 下载 GSE 数据
[Execute Command]      运行 R/Python 分析脚本
[Code]                 解析分析结果,提取关键指标
[OpenAI]               AI 生成分析报告摘要
[Convert to File]      将结果导出为 CSV + PDF
[Send Email]           发送给导师/团队,附带报告附件

HTTP Request 节点获取 GEO 数据

URL: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
Parameters:
  db = gds
  term = "gut microbiome" AND "type 2 diabetes"
  retmax = 10
  sort = date
  retmode = json

Execute Command 节点运行分析

# 激活 conda 环境并运行分析脚本
source activate bioinfo && python /home/user/scripts/analyze_geo.py --input {{ $json.filename }}

6.2 场景二:论文监控 → AI 摘要 → 推送通知

[RSS Feed Trigger]     监控 PubMed RSS(关键词:gut microbiome T2D)
[Filter]               过滤:标题/摘要包含 metagenome 或 16S
[OpenAI]               用 GPT 生成中文摘要 + 相关性评分
[If]                   相关性 > 7 分?
      ↓ Yes                    ↓ No
[Send Email]           [No Operation]
发送"高相关论文提醒"       忽略

PubMed RSS 地址构造

https://pubmed.ncbi.nlm.nih.gov/rss/search/1/?term=gut+microbiome+type+2+diabetes&limit=20

6.3 更多生信自动化思路

场景工作流设计
序列批量注释上传 FASTA → Execute Command 运行 BLAST → 解析结果 → 写入数据库
样本质控监控监控文件夹新文件 → 运行 FastQC → 解析报告 → 质量不达标发告警
差异基因可视化定时读取 DESeq2 结果 → Code 节点生成 JSON → QuickChart 画火山图
团队协作GitHub PR 触发 → 运行 CI/CD → 通知 Slack → 更新项目看板

7. n8n vs Zapier vs Make vs Dify 对比

对比维度n8nZapierMakeDify
定位通用工作流自动化通用工作流自动化通用工作流自动化AI 应用开发平台
开源是(Fair-code)是(Apache 2.0)
自托管支持不支持不支持支持
价格自托管免费,Cloud 有免费额度免费版 100 任务/月,付费 $29.99+/月免费版 1000 Ops/月,付费 $10.59+/月自托管免费,Cloud 有免费额度
集成数量400+7000+2000+50+(主要是 AI 相关)
AI 能力原生 LangChain 集成AI 插件AI 模块核心就是 AI
代码支持JS/Python Code 节点有限有限Python 代码块
学习曲线中等中等中等
数据隐私完全自控数据在 Zapier 服务器数据在 Make 服务器自托管可自控
适合人群开发者、技术团队非技术用户介于两者之间AI 应用开发者
生信适用性高(可执行命令行)低(无法跑本地脚本)中(侧重 AI)

选择建议: - 想跑本地脚本(R/Python/Bash)+ 自动化:选 n8n(有 Execute Command 节点) - 只想连 SaaS 工具、不写代码:选 Zapier - 专门做 AI 聊天机器人/RAG 应用:选 Dify - 生信自动化:强烈推荐 n8n,因为它能执行本地命令,其他平台做不到


8. 常见报错与解决

报错 1:Error: connect ECONNREFUSED 127.0.0.1:5678

原因:n8n 服务没启动,或端口被占用
解决:
  1. 检查 n8n 是否在运行:docker ps | grep n8n
  2. 检查端口占用:lsof -i :5678
  3. 换个端口:docker run -p 5679:5678 docker.n8n.io/n8nio/n8n

报错 2:ERROR: The credential is not valid

原因:API Key 过期、填错、或者权限不够
解决:
  1. 进入 Credentials 页面,重新编辑对应凭证
  2. 点"Test"按钮验证是否能连通
  3. 检查 API Key 的权限范围是否足够

报错 3:ERROR: 429 Too Many Requests

原因:调用外部 API 太频繁,触发速率限制
解决:
  1. 在 HTTP Request 节点开启 "Batching",设置间隔时间
  2. 使用 "Wait" 节点在请求之间加延迟
  3. 在 Settings 中减小 Retry on Fail 的频率

报错 4:ERROR: Workflow could not be activated

原因:工作流缺少 Trigger 节点,或 Trigger 配置有误
解决:
  1. 确保工作流至少有一个 Trigger 节点
  2. 检查 Trigger 的配置是否完整(比如 Webhook URL 是否正确)
  3. 查看 n8n 日志:docker logs n8n

报错 5:SQLITE_BUSY: database is locked

原因:SQLite 并发写入冲突(默认数据库是 SQLite)
解决:
  1. 生产环境建议换成 PostgreSQL:
     环境变量添加:
     DB_TYPE=postgresdb
     DB_POSTGRESDB_HOST=your_pg_host
     DB_POSTGRESDB_DATABASE=n8n
  2. 临时方案:减少并发工作流数量

报错 6:Error: spawn ENOENT(Execute Command 节点)

原因:Docker 容器中找不到你调用的命令(如 python、R)
解决:
  1. 使用自定义 Dockerfile 安装所需工具:
     FROM docker.n8n.io/n8nio/n8n
     USER root
     RUN apk add --no-cache python3 py3-pip
     USER node
  2. 或者通过 SSH 节点远程执行命令(连接宿主机或分析服务器)

9. 速查表

9.1 常用节点速查

类别节点名称功能常用场景
触发Schedule Trigger定时触发每天/每周定时任务
触发Webhook接收 HTTP 请求接收外部系统通知
触发RSS Feed TriggerRSS 更新触发监控论文/新闻
触发Chat Trigger对话触发构建聊天机器人
网络HTTP Request发送 HTTP 请求调 API、下载数据
数据Edit Fields (Set)设置/修改字段数据格式转换
数据Code写 JS/Python 代码复杂数据处理
数据Filter条件过滤筛选符合条件的数据
数据Merge合并多路数据多数据源汇总
数据Split Out拆分数组把数组拆成单条处理
数据Aggregate聚合数据求和、计数、去重
逻辑If条件分支根据条件走不同路径
逻辑Switch多路分支类似 switch-case
逻辑Loop Over Items循环处理批量处理列表数据
逻辑Wait等待/延迟限速、等待回调
文件Convert to File转为文件生成 CSV/JSON/Excel
文件Extract From File解析文件读取 CSV/JSON/Excel
文件Read/Write Files本地文件读写读写服务器上的文件
通知Send Email发送邮件通知、报告推送
执行Execute Command执行系统命令跑 Python/R/Bash 脚本
执行SSH远程执行命令连接分析服务器
AIOpenAI调用 GPT 系列文本生成、摘要、翻译
AIAnthropic调用 Claude长文分析
AIOllama调用本地模型免费无限调用
AIAI TransformAI 数据转换用自然语言描述转换逻辑
AIMCP Client连接 MCP 服务扩展 AI Agent 工具

9.2 常用 Expression 速查

// === 数据引用 ===
{{ $json.fieldName }}                    // 当前项的字段
{{ $('NodeName').item.json.field }}       // 指定节点的字段
{{ $input.all() }}                       // 所有输入项
{{ $input.first().json.field }}          // 第一条数据的字段

// === 时间相关 ===
{{ $now }}                               // 当前时间(Luxon DateTime)
{{ $now.toFormat('yyyy-MM-dd') }}        // 格式化:2026-05-03
{{ $now.minus({ days: 7 }).toISO() }}   // 7 天前的 ISO 时间

// === 字符串操作 ===
{{ $json.name.toUpperCase() }}           // 转大写
{{ $json.text.slice(0, 100) }}          // 截取前 100 字符
{{ $json.email.includes('@') }}          // 是否包含 @

// === 条件判断 ===
{{ $json.score > 0.05 ? '不显著' : '显著' }}   // 三元表达式
{{ $json.list?.length ?? 0 }}                   // 空值安全取长度

// === 环境变量 ===
{{ $env.MY_API_KEY }}                    // 读取环境变量
{{ $vars.threshold }}                    // 读取工作流变量

9.3 Docker 常用命令速查

# 启动
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

# 停止/启动/重启
docker stop n8n
docker start n8n
docker restart n8n

# 查看日志
docker logs -f n8n

# 升级到最新版
docker pull docker.n8n.io/n8nio/n8n    # 拉取最新镜像
docker stop n8n                         # 停止旧容器
docker rm n8n                           # 删除旧容器
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n  # 启动新容器

# 备份数据
docker cp n8n:/home/node/.n8n ./n8n_backup

# 导出所有工作流(通过 API)
curl http://localhost:5678/api/v1/workflows -H "X-N8N-API-KEY: your_api_key"

10. 延伸资源

资源说明
n8n 官方文档最权威的参考,所有节点都有详细说明
n8n 社区论坛提问和看别人的解决方案
n8n 工作流模板官方模板库,可以直接导入使用
n8n GitHub源码、Issue、Release Notes
n8n AI 文档AI Agent 构建专题文档
n8n 博客教程官方博客教程,有很多实战案例

写给面试的你:面试中如果被问到"你怎么提高生信分析效率",可以回答"我用 n8n 搭建了自动化工作流,定时从 GEO 下载数据、运行分析脚本、AI 生成报告、邮件通知团队,把原来手动 2 小时的工作缩短到全自动 5 分钟"——这是加分项,说明你有工程化思维。