如何在IBM Watson Assistant聊天机器人中向客户发送聊天记录邮件
IBM Watson Assistant Lite 计划聊天记录导出及邮件发送实操方案
首先明确Lite计划的核心限制:平台内置的会话日志仅保留7天,且不开放全量日志拉取API,因此所有会话数据的采集、存储、发送逻辑都需要在你自己的业务侧实现,具体步骤如下:
1. 实时捕获会话消息
如果你使用官方Web Chat组件嵌入前端页面,可通过组件自带的事件钩子实时捕获双向消息:
- 初始化Web Chat时注册
send和receive事件监听,分别捕获用户发送的消息和助手返回的回复,按会话维度存储到临时变量中 - 示例代码如下:
window.watsonAssistantChatOptions = { integrationID: "你的集成ID", region: "你的服务部署区域", serviceInstanceID: "你的服务实例ID", onLoad: async (instance) => { // 初始化当前会话的消息存储数组 const sessionHistory = []; // 监听用户发送消息 instance.on({ type: "send", handler: (event) => { sessionHistory.push({ sender: "用户", content: event.data.input.text, time: new Date().toLocaleString() }); } }); // 监听助手返回消息 instance.on({ type: "receive", handler: (event) => { sessionHistory.push({ sender: "助手", content: event.data.output.generic[0]?.text || "非文本消息", time: new Date().toLocaleString() }); } }); await instance.render(); } }; setTimeout(function(){const t=document.createElement('script');t.src="https://web-chat.global.assistant.watson.appdomain.cloud/versions/latest/WatsonAssistantChatEntry.js";document.head.appendChild(t);});
2. 持久化存储会话记录
- 会话结束触发时机(用户主动点击结束会话按钮、页面卸载前、超过15分钟无消息交互),将当前
sessionHistory数组连同唯一会话ID、用户关联信息一起提交到你的后端服务,存入业务数据库 - 不要依赖Watson Assistant平台的内置日志存储,Lite计划无权限通过API调取该数据
3. 实现邮件发送逻辑
在你的后端服务中集成邮件发送能力:
- 当用户提交需要发送聊天记录的邮箱地址时,后端从数据库查询对应会话ID的完整聊天记录,整理为纯文本或HTML格式
- 将整理后的内容作为邮件正文或附件,调用邮件服务接口发送到指定邮箱即可
注意:如果使用自定义的API接入Watson Assistant,可直接在请求/响应的中转环节捕获所有会话消息,逻辑和上述方案一致,不需要依赖前端事件。
内容的提问来源于stack exchange,提问作者Suman Sapkota
相关产品推荐
相关产品推荐

