
n8n-automation实战:从Zapier逃离,自部署工作流自动化完全指南
从被Zapier逼到崩溃到用n8n自部署工作流自动化,完整教程涵盖Docker部署、AI内容监控工作流、Code节点、错误处理和通过OpenClaw对话触发工作流。
📋 实验室验证报告
我第一次认真用n8n,是在被Zapier逼到崩溃之后。
当时有个需求很简单:监控一个RSS源,有新内容就发到Telegram群,同时把标题和链接写到Google Sheet里存档。Zapier能做,但免费版限制死了,升级又要每月20美元。我不是没钱,就是觉得这点东西值不了那个价。
然后发现了n8n。自部署,开源,免费。拉Docker镜像,半小时搞定,Zapier的年费省下来了。
但真正让我迷上n8n的,不是省钱,是后来发现它能跑的东西远超我的预期。
n8n是什么,一句话版本
工作流自动化平台。可视化拖拽连接各种服务,触发某个事件 → 执行一连串操作。
跟Zapier、Make(前身Integromat)是同类产品,但n8n可以完全自部署,有完整的JavaScript代码节点,支持复杂分支逻辑,对技术用户更友好。
在OpenClaw里,我们通过n8n-automation技能来管理n8n工作流,在对话里就能直接查、触发、创建工作流,不用每次都打开浏览器操作界面。
先把n8n跑起来
最简单的方式是Docker:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/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"
volumes:
- ~/.n8n:/home/node/.n8n
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_password
- WEBHOOK_URL=https://your-domain.com/
WEBHOOK_URL很重要——如果你要用n8n接收外部触发(比如GitHub Webhook、Telegram Bot),需要把这个配成你的公网地址,不然外部请求进不来。
配置n8n-automation技能
在OpenClaw里,先找到n8n-automation技能并安装。技能需要几个配置项:
- n8n URL:你的n8n实例地址,比如 http://localhost:5678 或 https://n8n.yourdomain.com
- API Key:在n8n界面里 Settings → API → Create API Key 生成
配好之后,在OpenClaw里就可以用自然语言操作n8n了。比如说"列出所有工作流",技能会自动调用n8n API返回列表。
第一个真实工作流:AI内容监控
分享一个我们实际在用的工作流:监控Twitter/X上的AI相关关键词,用GPT过滤筛选,把有价值的内容推送到Telegram频道。
流程设计:
- Schedule Trigger — 每小时执行一次
- HTTP Request — 调用Twitter/X API搜索关键词("AI agent" OR "LLM" OR "Claude")
- Code节点 — 去重,过滤转发数<50的内容
- OpenAI节点 — 让GPT判断内容价值(1-10分),过滤掉分数低于7的
- Telegram节点 — 格式化推送到我们的内部频道
- Google Sheets节点 — 存档
这个工作流每天帮我处理几百条推文,我只看最后筛出来的十几二十条。
在n8n界面里搭这个大概需要20分钟。但如果通过OpenClaw的n8n-automation技能,我可以直接说:"帮我创建一个工作流,每小时搜索Twitter的AI关键词,用GPT过滤高质量内容,推送到Telegram"——技能会把工作流JSON生成出来,我直接导入n8n就能用。
Code节点:n8n的超能力
n8n跟纯拖拽工具最大的区别,是有个Code节点可以跑任意JavaScript(或Python)代码。
这个节点解锁了很多复杂逻辑。比如我需要处理一个奇怪的API响应格式:
// Code节点示例:解析复杂数据结构
const items = $input.all();
const results = [];
for (const item of items) {
const rawData = item.json.data;
// 展平嵌套结构
const flattened = rawData.entries.map(entry => ({
id: entry.id,
title: entry.content?.title || 'Untitled',
timestamp: new Date(entry.created_at * 1000).toISOString(),
score: entry.metrics?.engagement_score ?? 0
}));
// 只保留分数大于5的
const filtered = flattened.filter(e => e.score > 5);
results.push(...filtered.map(f => ({ json: f })));
}
return results;
这段代码放在Code节点里,就能把乱七八糟的API返回处理成你想要的格式,下游节点直接用干净的数据。
错误处理:别让工作流悄悄死掉
用n8n一段时间之后,你会遇到一个经典问题:某个外部API偶尔超时,工作流整条失败,你完全不知道。
几个实用习惯:
1. 开错误工作流
在n8n设置里可以配置一个全局错误工作流,任何工作流失败都会触发它。我设置的是:发一条Telegram消息告诉我哪个工作流挂了,失败原因是什么。
2. 在关键节点加try/catch
HTTP Request节点有个选项叫"On Error: Continue",开了之后这个节点失败不会中断整个流,你可以在下游节点检查是否有错误并处理。
3. 定期检查执行历史
n8n的Executions面板能看到每次执行的状态和耗时。我每周用OpenClaw执行一次:直接对话"查一下n8n最近一周有没有失败的执行",技能调API拉执行记录,把失败的筛出来告诉我。
通过OpenClaw对话触发工作流
这是我觉得n8n-automation技能最实用的地方:不用打开浏览器,直接在Telegram里跟AI说话就能操作。
常用场景:
- "触发一下内容抓取工作流" → 技能直接调n8n API执行
- "看看今天的工作流有没有出错" → 技能查执行记录并汇总
- "暂停每日报告工作流,我出差三天" → 技能把工作流设为停用状态
- "把这个工作流的触发时间改成每天早上8点" → 技能更新Schedule节点配置
把常见操作变成对话,比点来点去的操作界面方便多了,尤其是在手机上。
一些踩过的坑
最后说几个我们实际遇到过的问题:
Webhook URL不对:如果n8n在内网,外部服务的Webhook打不到,所有以Webhook为触发器的工作流都废了。解决方案要么是配公网地址+反向代理,要么是改成轮询模式。
凭证过期没通知:连接Google Sheets、Gmail这些服务的OAuth Token会过期,过期之后相关工作流全部失败,但n8n不会主动通知你。建议在错误工作流里专门处理"401 Unauthorized"的情况,第一时间告警。
大数据量慢:如果某个工作流要处理几千条数据,在单个节点里循环处理会很慢。n8n其实支持把数据分批处理,用SplitInBatches节点,每批处理100条,效率会高很多。
n8n学习曲线不算陡,基本操作一两天就熟了。真正值钱的是想清楚"哪些重复工作可以自动化"——工具只是工具,想法才是护城河。
⚙️ 安装与赋能
clawhub install n8n-automation-self-hosted-workflow-guide-practical安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。