如何为Salesforce Einstein Chatbot关闭按钮添加自定义操作
Salesforce Einstein Chatbot 关闭流程自定义实现方案
以下是3种可落地的实现方案,可根据你的自定义操作类型、开发成本要求选择:
方案1:前端事件钩子监听(最常用,适合前端/轻量操作)
利用Salesforce Embedded Service Chat 公开的全局事件回调,拦截关闭触发逻辑:
- 在聊天组件部署的站点页面中,嵌入自定义JS代码,注册
embedded_svc.settings.beforeChatEnd回调函数 - 回调函数内写入你要执行的自定义操作(例:上报会话数据、弹出自定义确认框、提交用户反馈等)
- 异步操作完成后调用
embedded_svc.liveAgentAPI.endChat()主动触发聊天关闭,替换原有的默认确认流程
注意:如果自定义操作是异步逻辑,需要用Promise等方式等待执行完成再调用关闭接口,避免逻辑被打断
方案2:Bot 会话流配置(适合后端/无前端交互的操作)
如果你的自定义操作不需要前端交互,可直接在Einstein Bot的配置中修改触发逻辑:
- 进入Salesforce Setup → Einstein Bots → 打开对应Bot的版本编辑页
- 在「对话流程」中找到会话结束触发的流,在默认的结束节点前添加自定义操作节点
- 支持的操作包括调用Apex代码、创建/更新Salesforce记录、发送平台通知、调用外部API等
- 配置完成后激活Bot版本即可,所有会话结束(包括用户点叉、主动触发结束)都会先执行自定义操作再关闭会话
方案3:自定义聊天UI组件(灵活度最高,适合复杂定制需求)
如果前两种方案无法满足你的定制需求,可完全替换默认聊天组件:
- 用LWC/Aura开发自定义聊天窗口组件,重写关闭按钮的点击事件
- 点击关闭按钮后先执行全链路自定义操作,再调用Salesforce标准的聊天会话关闭API完成流程
该方案开发成本最高,但可完全自主控制所有交互逻辑,没有标准组件的功能限制
注意事项
- 所有配置和代码改动先在Sandbox完成全场景测试,再部署到生产环境
- 自定义操作要添加异常捕获逻辑,避免操作报错导致聊天窗口无法正常关闭的问题
- 如果需要用户在关闭前完成交互(例:填写满意度调研),优先选择方案1实现
内容的提问来源于stack exchange,提问作者shylesh
相关产品推荐
相关产品推荐

