Tawk.to Webhook → 飞书通知

Cloudflare Worker 部署指南 · Shanghai Wonder Tours

📋 架构概览

Tawk.to
聊天事件
→
Cloudflare
Worker
→
飞书群
消息卡片

当客户在网站上开始聊天、结束聊天、生成聊天记录或创建工单时,Tawk.to 会发送 webhook 到 Cloudflare Worker,Worker 将事件格式化为飞书消息卡片并推送到你的飞书群。

支持的 4 种事件:

chat:start 💬 聊天开始 chat:end 🔚 聊天结束 chat:transcript_created 📝 聊天记录 ticket:create 🎫 新工单

飞书 第一步:创建飞书自定义机器人

1打开飞书,进入你要接收通知的群聊(或新建一个群)
2点击群聊右上角的 「···」 → 「设置」 → 「群机器人」
3点击 「添加机器人」 → 选择 「自定义机器人」
4设置机器人名称(如 "Tawk 聊天通知")和描述
5点击 「添加」,复制生成的 Webhook URL:
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
⚠️ 重要:请保存好这个 URL,后面部署 Worker 时需要配置。不要泄露给他人。
6(可选)在机器人安全设置中,可以选择 「自定义关键词」,设置为 Tawk,只接收包含该关键词的消息

CF 第二步:部署 Cloudflare Worker

有两种部署方式,选择适合你的:

方式 A:通过 Dashboard 在线部署(推荐,无需安装工具)

1登录 Cloudflare Dashboard → 左侧菜单 「Workers & Pages」
2点击 「Create Worker」 → 给 Worker 命名为 tawk-webhook-feishu
3将 cloudflare-worker/tawk-webhook-feishu/src/index.js 的完整代码粘贴到编辑器中
4点击 「Save and deploy」
5进入 Worker 的 「Settings」 → 「Variables」,添加环境变量:
变量名值类型说明
FEISHU_WEBHOOK_URL 第一步获取的飞书机器人 URL Secret 必填
TAWK_WEBHOOK_SECRET Tawk.to Dashboard 中创建 webhook 时显示的密钥 Secret 选填(用于签名验证)
NOTIFICATION_LANG zh Text 通知语言,默认中文
6保存后,记录 Worker 的 URL:
https://tawk-webhook-feishu.<你的子域名>.workers.dev

方式 B:通过 Wrangler CLI 部署

# 进入 Worker 目录 cd cloudflare-worker/tawk-webhook-feishu # 安装 wrangler npm install -g wrangler # 登录 Cloudflare wrangler login # 配置环境变量(需要输入值) wrangler secret put FEISHU_WEBHOOK_URL # 粘贴飞书机器人 URL,回车 wrangler secret put TAWK_WEBHOOK_SECRET # 粘贴 Tawk.to webhook 密钥,回车(可选) # 部署 wrangler deploy

Tawk 第三步:在 Tawk.to 创建 Webhook

2选择正确的 Property(Shanghai Wonder Tours)
3左侧导航点击 「Administration」 → 「Webhooks」
4点击 「Create Webhook」
5填写表单:
Name飞书通知
Endpoint URLhttps://tawk-webhook-feishu.<你的子域名>.workers.dev
Events勾选全部 4 项(见下方)
📌 勾选以下事件:
☑ Chat Start — 客户开始聊天时通知
☑ Chat End — 聊天结束时通知
☑ New Chat Transcript — 聊天记录生成后通知(含完整对话)
☑ New Ticket — 新工单创建时通知
6点击 「Save」
7保存后会显示 Webhook Secret Key,复制它:
Webhook Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠️ 重要:回到 Cloudflare Worker 设置,将这个 Secret Key 填入 TAWK_WEBHOOK_SECRET 环境变量,用于验证 webhook 来源真实性。

✅ 第四步:测试

1打开你的网站 shanghawondertours.com
2点击右下角 Tawk.to 聊天窗口,发送一条消息
3检查飞书群是否收到 "💬 聊天开始" 消息卡片
4关闭聊天窗口,等待 3 分钟后检查是否收到 "📝 聊天记录" 消息卡片(含完整对话内容)
✅ 如果飞书群收到消息卡片,说明配置成功!
❌ 如果没有收到,检查:
  1. Cloudflare Worker 环境变量是否正确设置
  2. Tawk.to webhook URL 是否指向正确的 Worker 地址
  3. 飞书机器人 URL 是否正确
  4. 在 Cloudflare Worker 的 "Logs" 中查看实时日志

📲 飞书消息预览

以下是各种事件在飞书群中显示的效果:

💬 聊天开始
访客 V1561719148780935
地区 Shanghai, CN
时间 2026-08-05 14:03
来源 https://www.google.com/
首条消息 (访客): 你好,我想了解上海一日游
🎫 新工单
访客 John Smith
邮箱 [email protected]
工单号 #3
主题 预订咨询
内容: 请问8月份有上海到苏州的团吗?
📝 聊天记录
访客 V1561719148780935
地区 Shanghai, CN
聊天记录:
[14:03] 客服: 👋 您好!有什么可以帮您?
[14:04] 访客: 想了解上海一日游的价格
[14:05] 客服: 我们有多个一日游路线...

🔧 故障排查

问题解决方法
飞书没有收到消息 1. 检查 Worker 日志:Dashboard → Workers → tawk-webhook-feishu → Logs
2. 确认 FEISHU_WEBHOOK_URL 正确
3. 在浏览器中直接 POST 测试飞书 URL
Worker 返回 401 签名验证失败。确保 TAWK_WEBHOOK_SECRET 与 Tawk.to Dashboard 中显示的一致。如不需要验证,留空即可。
飞书返回 code: 19021 关键词校验失败。在飞书机器人设置中,安全设置改为"自定义关键词"并填入"Tawk"或关闭关键词校验。
飞书消息太长被截断 聊天记录超过 20 条消息时自动截断。如需更多,修改 Worker 中 maxMessages 的值。
Tawk.to 重试多次 Worker 响应超过 30 秒或返回非 2XX。检查 Worker 是否正常部署。

📁 文件结构

cloudflare-worker/ └── tawk-webhook-feishu/ ├── src/ │ └── index.js # Worker 主代码 ├── package.json # npm 配置 └── wrangler.toml # Cloudflare Worker 配置
Shanghai Wonder Tours · Tawk.to Webhook 飞书通知配置指南