n8n 本地工作流集成
将本地 n8n 工作流引擎集成到 OpenClaw,实现可视化自动化。
快速开始
1. 部署 n8n
bash
docker run -d \
--name n8n \
--restart unless-stopped \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE=Asia/Shanghai \
n8nio/n8n2. 初始设置
- 打开浏览器访问 http://localhost:5678
- 创建管理员账户
- 开始创建工作流
集成方式
方式一:Webhook 触发
n8n 工作流:
Webhook 节点 → 处理逻辑 → 输出结果OpenClaw 调用:
bash
curl -X POST "http://localhost:5678/webhook/your-workflow" \
-H "Content-Type: application/json" \
-d '{"input": "your data"}'方式二:OpenClaw 执行 n8n
配置环境变量:
bash
export N8N_WEBHOOK_URL="http://localhost:5678/webhook/your-workflow"通过 OpenClaw 执行:
bash
openclaw exec "curl -X POST \$N8N_WEBHOOK_URL -d '{\"data\":\"value\"}'"示例工作流
1. OpenClaw 通知工作流
当 n8n 完成某项任务后,通过 OpenClaw 发送 Telegram 通知。
工作流结构:
Webhook → 处理数据 → HTTP Request (OpenClaw API) → 发送通知导入模板:
bash
# 导入工作流模板
curl -X POST "http://localhost:5678/api/v1/workflows" \
-H "Content-Type: application/json" \
-d @/root/.openclaw/workspace/skills/n8n-workflow/workflow-openclaw-notification.json2. 定时任务 + 通知
Cron (定时) → 执行任务 → Webhook → OpenClaw → 发送结果n8n Cron 配置:
json
{
"parameters": {
"rule": {
"interval": [{ "field": "hours", "hoursInterval": 1 }]
}
},
"name": "Cron",
"type": "n8n-nodes-base.cron"
}3. 多服务集成
Webhook →
├→ Gmail (发送邮件)
├→ Slack (发送消息)
├→ Database (写入数据)
└→ OpenClaw (汇总通知)常用节点
| 节点 | 用途 | 配置 |
|---|---|---|
| Webhook | 接收 OpenClaw 调用 | HTTP POST |
| Cron | 定时触发 | 自定义间隔 |
| HTTP Request | 调用 OpenClaw API | POST /message/send |
| Code | 自定义逻辑 | JavaScript/Python |
| IF | 条件分支 | 表达式判断 |
| Merge | 合并数据 | 多路输入 |
OpenClaw API 参考
发送消息
bash
curl -X POST "http://localhost:18789/message/send" \
-H "Content-Type: application/json" \
-d '{
"target": "telegram:1397306645",
"message": "Hello from n8n!"
}'执行命令
bash
curl -X POST "http://localhost:18789/exec" \
-H "Content-Type: application/json" \
-d '{
"command": "echo \"Hello from n8n\""
}'实用场景
1. 每日报告
Cron (每天 9:00) →
收集数据 →
生成报告 →
OpenClaw 发送 Telegram2. 监控告警
Webhook (监控触发) →
判断阈值 →
IF 超限 →
OpenClaw 发送告警3. 数据处理
Webhook (接收数据) →
数据清洗 →
写入数据库 →
OpenClaw 确认完成4. 社交媒体自动化
Cron (每小时) →
抓取内容 →
AI 生成文案 →
发布 Twitter/LinkedIn →
OpenClaw 记录日志故障排查
n8n 无法访问
bash
# 检查容器状态
docker ps | grep n8n
# 查看日志
docker logs n8n
# 重启容器
docker restart n8nWebhook 不触发
- 确认工作流已激活(Activate 开关)
- 检查 Webhook URL 是否正确
- 查看 n8n 执行日志
OpenClaw 无响应
bash
# 检查 Gateway 状态
openclaw gateway status
# 检查端口
curl http://localhost:18789/healthz最佳实践
1. 错误处理
工作流节点 → Error Trigger → 发送告警2. 数据持久化
工作流 → 写入 SQLite/PostgreSQL → 后续查询3. 认证安全
bash
# n8n 添加 Basic Auth
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER="admin"
export N8N_BASIC_AUTH_PASSWORD="your-password"4. 性能优化
- 使用队列处理大量任务
- 设置并发限制
- 添加重试机制