网页即时沟通 · 飞书协同回复

站点访客在网页多轮文字对话,新消息异步推飞书群卡片;点「在网页回复」即可写回访客,后台也可同屏跟进。联系方式可选勾选,推送失败不挡入库。
适合:需要「网页聊得起来、手机侧跟得上」的个人实践站、咨询入口与轻量客服通道搭建者。
构建
- · 自定义机器人只出站;回复走卡片「在网页回复」短链。
- · 推送失败不挡入库;联系方式可选勾选。
背景与做法
站点只有表单留言时,沟通是「投递 + 等待」:访客说完就走,回复只能改走微信;运营侧要频繁刷后台。想用飞书当工作台,但群机器人默认只能推、不能在飞书聊天框里官方双向回写。需要在不引入重型客服 SaaS 的前提下,把「网页多轮对话」和「飞书即时触达」接成一条轻链路。
- 访客:在 /message 或首页入口直接开聊
- 站点主理人:飞书群收卡片,手机点链接回复
- 可选:后台 /steven/messages 同屏管理多会话
本轮范围
已实现
- 01
会话模型:guestToken(访客轮询)+ replyToken(飞书回复链)
- 02
访客发消息 → 写入 CMS → 异步推飞书交互卡片
- 03
卡片按钮「在网页回复」→ 全屏固定布局回复页,写回后访客侧自动刷新
- 04
后台在线对话列表:已读、结束、删除、同屏回复
- 05
联系方式默认隐藏,勾选后出现输入框
- 06
移动端交互:16px 输入防缩放、列表内滚动防整页上跳
未纳入
- 01
飞书开放平台事件订阅(真·群内 @ 机器人回消息)— 需要完整应用与验签,后续可加
- 02
未读角标推送、多客服分配、附件图片
- 03
WebSocket 真实时(当前轮询约 2.5–3s,对咨询场景足够)
界面
关键决策
用自定义机器人 Webhook 做出站通知,成本低、与现有群一致
双向用「卡片 → 网页回复」补全,避免协议号 / 非官方通道
推送失败只记日志,入库仍成功,访客体验不绑通知通道
联系方式可选:降低首聊摩擦,另联需求再勾选
注意点
iOS 输入框 <16px 会整页放大——统一 text-base
scrollIntoView 会拖动整页——只滚消息列表容器
轮询时若用户在看历史,不要强行滚到底——近底才 stick
rsync 部署后要硬杀 next-server,否则旧进程仍服务旧路由
publicSiteUrl 未配时,卡片回复链接可能指错域名
结果
- 访客可在站内完成多轮文字沟通,不必先加好友
- 飞书群卡片可一键进入回复页,手机侧跟进成本低
- 后台可集中看未读与历史,表单留言与对话分流保留
- 本站已用于真实留言 / 对话入口(/message)
个人站点要的「即时感」,不必一上来上全套客服中台。先把会话、通知、回复短链跑通;飞书负责触达,网页负责对话态。自定义机器人的边界要认清:只推不收,用网页补双向。