# Typeform接入 Server酱：表单有新提交时推送到微信（2026 教程）

> 通过 Webhook 将 Typeform 表单提交通知推送到微信，支持固定标题直连和云函数中转解析正文两种方式。

- 网页版：https://sct.ftqq.com/docs/integrations/typeform/
- 更新日期：2026-07-17

# Typeform + Server酱：表单有新提交时推送到微信

> 效果：Typeform 表单收到新回复时，微信立即收到通知。

## 前置条件

- 获取 Server酱 SendKey（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）
- 拥有 Typeform 账号及需要接收通知的表单

## 配置步骤

### 方式一：固定标题直连（无需代码）

Server酱 API 优先读取 URL query 中的 `title` 参数，因此可以直接将标题写在 Webhook URL 中。

1. 复制以下 URL，将 `你的SENDKEY` 替换为真实值：

```text
https://sctapi.ftqq.com/你的SENDKEY.send?title=Typeform%E6%9C%89%E6%96%B0%E5%9B%9E%E5%A4%8D
```

2. 在 Typeform 中进入指定表单，点击 Connect → Webhooks → 添加 Webhook。
3. 将上述 URL 粘贴为 Webhook 地址并保存。

当表单收到新提交时，Typeform 会向该 URL 发送包含 `form_response` 结构的 JSON，Server酱 会优先使用 URL 中的 title，因此通知标题将为「Typeform有新回复」。

Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道，详见 /getting-started/channels/。

### 方式二：中转推送正文内容

若需在消息正文中查看表单的具体回答，需增加一层中转（如 Cloudflare Workers 或云函数），解析 Typeform 发送的 JSON 后再请求 Server酱 API。

中转逻辑：接收 Typeform 的 POST 请求 → 解析 `form_response` 中的答案 → 构造 `title` 和 `desp` → 转发至 Server酱 API。

## 完整示例

以下为 Cloudflare Workers 中转脚本示例，解析 Typeform 提交内容并推送至 Server酱：

```javascript
export default {
  async fetch(request) {
    if (request.method !== 'POST') return new Response('Method Not Allowed', { status: 405 });

    const sendkey = '你的SENDKEY'; // 替换为你的 SendKey
    const api = `https://sctapi.ftqq.com/${sendkey}.send`;

    try {
      const payload = await request.json();
      const title = 'Typeform有新回复';

      // 根据 Typeform 实际返回的 JSON 结构提取答案，此处省略具体字段
      // 示例：解析 form_response 中的答案并拼接为 desp 文本
      let desp = '已收到表单回复，详情请查看 Typeform 后台';

      await fetch(api, {
        method: 'POST',
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        body: `title=${encodeURIComponent(title)}&desp=${encodeURIComponent(desp)}`
      });

      return new Response('OK');
    } catch (e) {
      return new Response('Error', { status: 500 });
    }
  }
};
```

将此 Worker 部署后，把 Worker 的 URL 填入 Typeform 的 Webhooks 配置中即可。

## 常见问题

**免费额度是多少？**

Server酱免费版每日可发送 5 条通知，每分钟上限 50 条。订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。

**配置后没收到消息？**

检查 URL 中的 SendKey 是否正确，或参考[常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/)。若使用中转方式，请查看云函数运行日志确认是否收到 Typeform 请求。

**如何推送表单的具体回答内容？**

直连方式只能推送固定标题。若需推送具体内容，必须使用云函数或 Workers 中转，解析 Typeform 发送的 `form_response` JSON，提取答案后写入 Server酱 API 的 `desp` 参数。

**Server酱³ 的 API 地址是什么？**

若 SendKey 以 `sctp` 开头，API 端点为 `https://你的UID.push.ft07.com/send/你的SENDKEY.send`，其中 UID 是 `sctp` 后面的数字。

## 相关集成

- [/integrations/python/](https://sct.ftqq.com/docs/integrations/python/) —— Python 脚本推送
- [/integrations/uptime-kuma/](https://sct.ftqq.com/docs/integrations/uptime-kuma/) —— Uptime Kuma 宕机告警
- [/integrations/qinglong/](https://sct.ftqq.com/docs/integrations/qinglong/) —— 青龙面板任务通知


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

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

```text
请帮我把 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 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

