n8n 实战工作流模板:GitHub→飞书通知、定时爬虫→数据库、Webhook→多渠道推送

📅 2026/7/13 2:52:01
n8n 实战工作流模板:GitHub→飞书通知、定时爬虫→数据库、Webhook→多渠道推送
n8n 实战工作流模板GitHub→飞书通知、定时爬虫→数据库、Webhook→多渠道推送n8n 是一款开源的工作流自动化平台以可视化节点编排和丰富的集成能力著称。相比 Zapier 或 Make自托管 n8n 没有执行次数限制数据完全保留在自己的服务器上。本文跳过基础部署环节直接深入三个完整的实战工作流配置案例并提供可直接导入的 JSON 配置帮助你快速落地自动化业务流程。服务器配置n8n 在处理复杂工作流时需要足够的内存来维持 Node.js 运行时。推荐使用雨云服务器 rainyun-com注册填优惠码2026off领 5 折优惠券选择2 核 4GB 内存机型可同时运行多个活跃工作流而不出现内存溢出。推荐机型2 核 4GB / SSD 60GB操作系统Ubuntu 22.04 LTS建议配置2 核 4GB 已可流畅运行 50 个工作流若涉及大量数据处理建议升级到 4 核 8GB数据库方面生产环境强烈建议将 n8n 默认的 SQLite 切换到 PostgreSQL以提升并发执行的稳定性。前置准备Docker Compose 部署 n8n PostgreSQL# /opt/n8n/docker-compose.ymlversion:3.8services:postgres:image:postgres:16-alpinecontainer_name:n8n-postgresrestart:unless-stoppedvolumes:-/opt/n8n/pgdata:/var/lib/postgresql/dataenvironment:POSTGRES_DB:n8nPOSTGRES_USER:n8nPOSTGRES_PASSWORD:${PG_PASSWORD}n8n:image:n8nio/n8n:latestcontainer_name:n8nrestart:unless-stoppedports:-127.0.0.1:5678:5678volumes:-/opt/n8n/data:/home/node/.n8nenvironment:DB_TYPE:postgresdbDB_POSTGRESDB_HOST:postgresDB_POSTGRESDB_PORT:5432DB_POSTGRESDB_DATABASE:n8nDB_POSTGRESDB_USER:n8nDB_POSTGRESDB_PASSWORD:${PG_PASSWORD}N8N_HOST:n8n.yourdomain.comN8N_PORT:5678N8N_PROTOCOL:httpsWEBHOOK_URL:https://n8n.yourdomain.com/# 加密密钥首次设置后不能更改N8N_ENCRYPTION_KEY:${N8N_ENCRYPTION_KEY}# 时区GENERIC_TIMEZONE:Asia/ShanghaiTZ:Asia/Shanghaidepends_on:postgres:condition:service_healthy# 生成加密密钥openssl rand-hex32# 启动服务cd/opt/n8ndockercompose up-d配置步骤工作流一GitHub Push → 飞书群通知场景代码仓库有新的 Push 或 Pull Request 时自动向飞书群发送通知卡片包含提交者、分支、提交信息和对比链接。节点结构Webhook (GitHub)→IF过滤分支→HTTP Request飞书 Webhook完整 JSON 配置可在 n8n 中直接导入{name:GitHub Push 通知飞书,nodes:[{parameters:{httpMethod:POST,path:github-webhook,responseMode:onReceived,responseData:firstEntryJson},name:GitHub Webhook,type:n8n-nodes-base.webhook,position:[250,300]},{parameters:{conditions:{string:[{value1:{{$json[\ref\]}},operation:contains,value2:refs/heads/main}]}},name:过滤 main 分支,type:n8n-nodes-base.if,position:[500,300]},{parameters:{url:https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_FEISHU_HOOK_TOKEN,method:POST,jsonParameters:true,bodyParametersJson:{\n \msg_type\: \interactive\,\n \card\: {\n \elements\: [\n {\n \tag\: \div\,\n \text\: {\n \content\: \**仓库**{{$json[\\\repository\\\][\\\full_name\\\]}}\\n**分支**{{$json[\\\ref\\\].replace(refs/heads/, )}}\\n**提交者**{{$json[\\\pusher\\\][\\\name\\\]}}\\n**消息**{{$json[\\\head_commit\\\][\\\message\\\]}}\,\n \tag\: \lark_md\\n }\n },\n {\n \tag\: \action\,\n \actions\: [\n {\n \tag\: \button\,\n \text\: {\content\: \查看对比\, \tag\: \plain_text\},\n \url\: \{{$json[\\\compare\\\]}}\,\n \type\: \default\\n }\n ]\n }\n ],\n \header\: {\n \template\: \blue\,\n \title\: {\content\: \ 新代码已推送\, \tag\: \plain_text\}\n }\n }\n}},name:发送飞书通知,type:n8n-nodes-base.httpRequest,position:[750,250]}],connections:{GitHub Webhook:{main:[[{node:过滤 main 分支,type:main,index:0}]]},过滤 main 分支:{main:[[{node:发送飞书通知,type:main,index:0}],[]]}}}GitHub 端配置打开仓库 → Settings → Webhooks → Add webhookPayload URL 填入https://n8n.yourdomain.com/webhook/github-webhookContent type 选application/json选择触发事件Push eventsPull requestsHTTP Request 节点关键参数说明url飞书自定义机器人的 Webhook 地址methodPOSTContent-Typeapplication/jsonBody 中使用 n8n 表达式{{ }}动态填充 GitHub 事件数据工作流二定时爬虫 → 数据库存储场景每小时抓取指定网页的价格或文章列表去重后存入 PostgreSQL 数据库用于价格监控或内容聚合。节点结构Cron定时→HTTP Request抓取页面→HTML Extract提取数据→IF去重判断→Postgres写入数据库{name:定时爬虫存库,nodes:[{parameters:{rule:{interval:[{field:hours,minutesInterval:1}]}},name:每小时触发,type:n8n-nodes-base.scheduleTrigger,position:[250,300]},{parameters:{url:https://target-website.com/list,method:GET,options:{timeout:30000,redirect:{redirect:{maxRedirects:5}},response:{response:{responseFormat:text}}}},name:抓取页面,type:n8n-nodes-base.httpRequest,position:[500,300]},{parameters:{extractionValues:{values:[{key:title,cssSelector:.article-title,returnValue:text},{key:link,cssSelector:.article-title a,returnValue:attribute,attribute:href},{key:price,cssSelector:.price,returnValue:text}]},options:{returnArray:true}},name:提取数据,type:n8n-nodes-base.htmlExtract,position:[750,300]},{parameters:{operation:executeQuery,query:INSERT INTO crawled_items (title, link, price, crawled_at) VALUES ({{$json[\title\]}}, {{$json[\link\]}}, {{$json[\price\]}}, NOW()) ON CONFLICT (link) DO UPDATE SET price EXCLUDED.price, updated_at NOW()},name:写入 PostgreSQL,type:n8n-nodes-base.postgres,position:[1000,300]}]}Cron 调度配置说明调度规则Cron 表达式n8n 设置每小时整点0 * * * *interval: 1 hour每天上午 9 点0 9 * * *scheduleTrigger工作日每 30 分钟*/30 9-18 * * 1-5自定义 Cron在 n8n 的Schedule Trigger节点中可以直接输入 Cron 表达式或使用可视化选择器。工作流三Webhook → 多渠道推送含错误处理场景接受来自任意系统的 Webhook 告警同时推送到飞书、企业微信、钉钉和邮件并内置错误重试和错误日志节点。节点结构Webhook→Switch渠道路由→[飞书 / 企业微信 / 钉钉 / 邮件]→Error Trigger错误处理→发送错误日志{name:多渠道告警推送,nodes:[{parameters:{httpMethod:POST,path:alert-push,responseMode:onReceived},name:接收告警,type:n8n-nodes-base.webhook,position:[250,300]},{parameters:{dataType:string,value1:{{$json[\channel\]}},rules:{rules:[{value2:feishu,output:0},{value2:wecom,output:1},{value2:dingtalk,output:2},{value2:email,output:3}]},fallbackOutput:0},name:渠道路由,type:n8n-nodes-base.switch,position:[500,300]},{parameters:{url:https://open.feishu.cn/open-apis/bot/v2/hook/FEISHU_TOKEN,method:POST,jsonParameters:true,bodyParametersJson:{\msg_type\:\text\,\content\:{\text\:\[告警] {{$json[\\\title\\\]}}\\n{{$json[\\\message\\\]}}\}}},name:推送飞书,type:n8n-nodes-base.httpRequest,position:[750,150]},{parameters:{url:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyWECOM_KEY,method:POST,jsonParameters:true,bodyParametersJson:{\msgtype\:\text\,\text\:{\content\:\[告警] {{$json[\\\title\\\]}}\\n{{$json[\\\message\\\]}}\}}},name:推送企业微信,type:n8n-nodes-base.httpRequest,position:[750,300]}]}错误处理节点配置在 n8n 中每个工作流都支持设置Error Workflow。在工作流设置中指定错误工作流 ID当任何节点执行失败时n8n 会自动触发该错误工作流// 错误工作流中可用的数据结构// $json.execution.id - 失败的执行 ID// $json.execution.url - 执行详情链接// $json.error.message - 错误信息// $json.workflow.name - 工作流名称核心功能HTTP Request 节点进阶用法HTTP Request 是 n8n 中最通用的节点支持以下高级特性// 动态 URL使用前一节点的输出URL:{{https://api.example.com/users/$json[userId]}}// 认证头部Headers:{Authorization:Bearer {{ $credentials.apiToken }},X-Custom-Header:{{ $json[customValue] }}}// 分页处理Pagination 设置Pagination Mode:Update a Parameter Pagination Parameter:page Max Pages:10进阶技巧工作流版本管理# n8n 数据目录中包含工作流 JSON可用 Git 管理cd/opt/n8n/datagitinitgitaddworkflows/gitcommit-mbackup workflows$(date%Y%m%d)环境变量在工作流中的引用# 在 docker-compose.yml 中定义environment: -FEISHU_WEBHOOK_URLhttps://open.feishu.cn/open-apis/bot/v2/hook/YOUR_TOKEN# 在节点中引用URL:{{$env.FEISHU_WEBHOOK_URL}}常见问题QWebhook 节点收不到外部请求确认WEBHOOK_URL环境变量与实际域名一致且 Nginx 已正确反向代理到 5678 端口。测试方法curl -X POST https://n8n.yourdomain.com/webhook/test -d {test:1}QCron 工作流时区不对确认GENERIC_TIMEZONEAsia/Shanghai已正确设置重启容器后生效。n8n 管理界面右上角也会显示当前服务器时区。QHTTP Request 返回数据格式解析失败在节点的 Response 设置中将 “Response Format” 改为JSON并勾选 “Split Into Items” 可将数组自动拆分为多条数据流。Q工作流执行历史占满磁盘在 n8n 设置中N8N_EXECUTIONS_DATA_PRUNEtrueN8N_EXECUTIONS_DATA_MAX_AGE336开启自动清理默认保留 14 天执行记录。n8n 的强大之处在于一旦搭建好底座后续添加新自动化场景几乎零边际成本。无论是对接内部系统还是第三方服务可视化节点编排让非开发者也能快速上手。想要低延迟运行上述工作流雨云服务器 rainyun-com的2 核 4GB 机型是最佳起点优惠码2026off享 5 折优惠稳定运行数十个工作流不在话下。