创建完成命令
取票后,Zendesk会为您(专员)和用户之间创建一个专用频道。您将可以在这个频道内与用户自由对话。
对话完成后,专员可以在专用频道中键入完成指令,即可结束实时聊天。
由于该命令仅适用于Zendesk,因此在继续之前,您应该创建一个新树。
您的结果是什么?
- 请记住,在测试任何结果之前,在Stella上连接你的Zendesk频道。
结构示例 - 完成指令
Zendesk指令树的结构示例 - 完成指令
动手试试看
创建一个对话点 - 完成指令
添加一个对话点并命名为「Zendesk End Live Chat」。
在以下的部分,您会添加3个执行动作。请按照以下步骤进行操作并按照次序将执行动作放置于前置动作。
添加第一个执行动作,以下代码是用來结束即时聊天的:
return new Promise(async (resolve, reject) => {
try {
this.member = await this.inletEndLiveChat({
channel: this.channel,
member: this.member,
})
this.lodash.set(this.member, "group", null)
resolve({
member: this.member
})
} catch (e) {
reject(e)
}
})
- 添加第二个前置动作,以下代码是用來将对话完成的信息发送到Zendesk (您可以在 response 的 text 更改文字的内容):
return new Promise(async (resolve, reject) => {
try {
console.log("in Send End Live Chat Message to Zendesk")
let assignments = await this.getAssignmentsByMemberId({
memberId: this.member._id,
sortBy: { _id: -1 },
})
console.log("assignments", assignments)
let assignment = assignments[0]
console.log("assignment", assignment)
console.log("channelId", assignment.targets[0].channel)
let result = await this.sendZendeskResponse({
member: this.member,
channelId: assignment.targets[0].channel,
threadId: assignment._id,
response: {
type: "TEXT",
text: "WhatsApp live chat session ended"
},
allowChannelBack: false,
})
console.log("result", result)
resolve()
} catch (e) {
reject(e)
}
})
- 添加第三个前置动作,以下代码是用來删除所有Agenda的:
return new Promise(async (resolve, reject) => {
try {
await this.deleteMemberAgenda({
memberId: this.member._id,
})
resolve()
} catch (e) {
reject(e)
}
})
- 创建一个响应用來告诉用户,即时聊天已经结束。
结束实时聊天消息
添加一个通用对话点 - 完成指令
- 添加一个通用对话点,然后使用 「AND」创建一个具有两个条件的触发点 (有关创建条件的详情,请点击此处):
Zendesk完成指令触发点
第一个条件 - Type Zendesk Text:
this.messageEvent.type === "ZENDESK_TEXT"
第二个条件 - /done:
/(\/done)/i.test(this.messageEvent.data.text)
- 启用重定向并连接到您为完成指令制作的树对话点。
重定向至完成指令树对话点
- 将此树和此通用对话点添加到您的入口频道(如WhatsApp)。
添加树和通用对话点到入口频道
- 检查你是否能达到预期的结果.