Skip to content

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/n8n

访问地址http://localhost:5678

2. 初始设置

  1. 打开浏览器访问 http://localhost:5678
  2. 创建管理员账户
  3. 开始创建工作流

集成方式

方式一: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.json

2. 定时任务 + 通知

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 APIPOST /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 发送 Telegram

2. 监控告警

Webhook (监控触发) → 
  判断阈值 → 
  IF 超限 → 
  OpenClaw 发送告警

3. 数据处理

Webhook (接收数据) → 
  数据清洗 → 
  写入数据库 → 
  OpenClaw 确认完成

4. 社交媒体自动化

Cron (每小时) → 
  抓取内容 → 
  AI 生成文案 → 
  发布 Twitter/LinkedIn → 
  OpenClaw 记录日志

故障排查

n8n 无法访问

bash
# 检查容器状态
docker ps | grep n8n

# 查看日志
docker logs n8n

# 重启容器
docker restart n8n

Webhook 不触发

  1. 确认工作流已激活(Activate 开关)
  2. 检查 Webhook URL 是否正确
  3. 查看 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. 性能优化

  • 使用队列处理大量任务
  • 设置并发限制
  • 添加重试机制

相关资源

基于 OpenClaw 开源项目