n8n + Server酱:工作流状态微信通知

效果:当 n8n 工作流执行成功或失败时,自动发送一条包含执行详情的消息到你的微信。

前置条件

  1. 一个 SendKey:用于调用 Server酱 API。如果你还没有,请参考 30 秒获取 SendKey 教程
  2. 一个可用的 n8n 实例:本地部署或云端服务均可。

配置步骤

1. 在工作流中添加 HTTP Request 节点

在你的 n8n 工作流中,添加一个 HTTP Request 节点。在节点配置中,按以下方式填写:

  • Method: POST
  • URL: https://sctapi.ftqq.com/你的SENDKEY.send
  • Body Content Type: 选择 Form-DataJSON

然后,添加两个参数:

  • title: 通知标题。例如:n8n工作流执行【成功】
  • desp: 通知正文,支持 Markdown。你可以在这里引用上游节点的数据,例如:处理结果:{{ $json.status }}

提示你的SENDKEY 建议通过 n8n 的凭据或变量功能管理,避免在多个节点中硬编码。具体入口请以你使用的 n8n 版本界面为准。

2. 使用表达式动态生成消息内容

titledesp 字段中,你可以使用 n8n 表达式(双花括号 {{}} 包裹)来引用上游节点的数据,实现动态内容。

例如,在 desp 字段中写入(引用上游节点输出的字段):

**处理对象**:{{ $json.name }}
**处理结果**:{{ $json.status }}
**完整数据**:{{ JSON.stringify($json) }}

3. 配置全局错误告警 (Error Workflow)

为了捕获所有工作流的错误并集中告警,可以创建一个专门的 Error Workflow

  1. 新建一个工作流。
  2. 添加 Error Trigger 节点作为触发器。
  3. 连接一个 HTTP Request 节点,并按步骤 1 和 2 配置 Server酱 API 调用。Error Trigger 的输出数据中包含出错的工作流与错误信息,可在 desp 中用表达式引用(具体字段可在节点的输入数据面板中查看)。
  4. 在其他需要监控的工作流设置中,找到错误处理部分,指定刚才创建的 Error Workflow。

这样,任何关联工作流发生错误时,都会触发这个 Error Workflow 并向你发送微信告警。

完整示例

以下是一个简单的“工作流完成通知”节点配置示例。假设 SendKey 已存储在名为 SERVERCHAN_KEY 的变量中。

  1. HTTP Request 节点配置:
    • Method: POST
    • URL: https://sctapi.ftqq.com/{{$vars.SERVERCHAN_KEY}}.send
    • Body Content Type: Form-Data
    • Parameters:
      • title: n8n工作流执行通知
      • desp: 工作流执行完毕。结果:{{ $json.status }}

常见问题

额度是多少? 免费版每日可发送 5 条消息。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

消息没收到怎么办? 请首先检查 n8n 节点的执行日志,查看 HTTP 请求是否成功发出及 Server酱 的返回信息。更多排查步骤请参考 Server酱 常见问题与排查

有发送频率限制吗? 为防止滥用,Server酱 API 有频率限制,免费版每分钟最多发送 50 条。请合理设计工作流触发频率。

可以推送到企业微信或钉钉吗? 可以。Server酱 支持将消息转发到企业微信应用、钉钉群机器人、飞书群机器人等通道。只需在 Server酱 官网配置一次即可,n8n 中的调用方式不变。详见 通道对比与配置

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。