Stella Platform Documentation

Stella Platform Documentation

  • 文档
  • 标准设置程序
  • 参考
  • 常见问题
  • Bot API
  • 接口
  • Languages icon中文
    • English

›设定Slack真人对话

开始使用

  • 试试创建您的聊天机器人

设定基本Facebook聊天机器人

  • 概览
  • 1.1:连接频道
  • 1.2:建设新的树状流程
  • 1.3:建设首个对话点
  • 1.4:建设通用对话点
  • 1.5:建设子对话点
  • 2.1:生产环境
  • 3.1:编写脸书帖子
  • 3.2:建设公开及私人回覆机器人

设定基本Instagram聊天机器人

  • 概览
  • 1.1: 连接频道
  • 1.2: 建设新的对话树
  • 1.3: 建设首个对话点
  • 1.4: 建设通用对话点
  • 1.5: 建设子对话点
  • 2.1: 建设故事提及
  • 2.2: 建设留言回覆机器人
  • 2.3: 建设推送信息

设定基本Web Chat聊天机器人

  • 概览
  • 1.1:连接频道
  • 1.2:建设新的树状流程
  • 1.3:建设首个对话点
  • 1.4:建设通用对话点
  • 1.5:建设子对话点

设定基本WhatsApp聊天机器人

  • 概览
  • 1.1: WABA设置
  • 1.2: 连接WABA
  • 1.3: 查看WABA认证状态
  • 1.4: 将现有号码迁移到WABA
  • 1.5: 重置 / 终止WABAA
  • 2.1:建设新的树状流程
  • 2.2:建设首个对话点
  • 2.3:建设通用对话点
  • 2.4:建设子对话点
  • 2.5:连接到数据库
  • 3.1:建设特选群组
  • 4.1: 创建产品信息

常见用例应用

  • 概览
  • 1.1: 将Fail-safe应用于聊天机器人
  • 1.2: 将会员退订流程应用于聊天机器人

聊天机器人进阶应用

  • 概览
  • 将Data Source应用于聊天机器人
  • 将Payload Value应用于聊天机器人
  • 将API应用于聊天机器人
  • 在聊天机器人中应用自定义语言
  • 将选择加入流程应用于聊天机器人
  • 将Agenda应用于聊天机器人
  • 将Stella API应用于聊天机器人
  • 将Web Event应用到Webchat的聊天机器人

Error Handling

  • 处理聊天机器人的错误

设定Stella合作伙伴

  • 概览
  • 1.1: 设置Stella合作伙伴账户
  • 1.2: 注册新客户
  • 1.3: 连接WABA
  • 1.4: 查看WABA认证状态
  • 1.5: 将现有号码迁移到 WABA
  • 1.6: 重置 / 终止WABA

模板树

  • 概览
  • 创建模板树
  • 管理代理树

聊天机器人测试和发布

  • 概览
  • 第一阶段 - 建立对话流程
  • 第二阶段 - 测试
  • 第三阶段 - 公开发布

设定Slack真人对话

  • 概览
  • 1.1:创建真人对话启动程序
  • 2.1:设置取票状态
  • 2.2:创建完成命令
  • 2.3:创建传输命令
  • 2.4:创建存档功能
  • 2.5:设置添加备注和标签命令
  • 3.1:自动结束实时聊天功能

设定Zendesk真人对话

  • 概览
  • 1.1:创建真人对话启动程序
  • 2.1:创建完成命令
  • 2.2: 自动结束实时聊天功能

设定FAQ聊天机器人

  • 概览
  • 1.1:确关键字匹配
  • 1.2: Keyword Groups Match & Diversion
  • 4.1:触发任何聊天机器人的对话点
  • 4.2:FAQ 聊天机器人数据分析
  • 4.3:设置自然语言处理
  • 5.1:筛选常见问题

设定NLP聊天机器人

  • 概览
  • 1.1:自然语言处理在聊天机器人的应用
  • 2.1:自然语言处理后备对话树设置
  • 3.1:多种自然语言处理

将Shopify商店连接到Stella

  • 概览
  • 1.1: 将Stella集成到Shopify
  • 2.1: 为Shopify设置Facebook Messenger聊天机器人
  • 2.2: 为Shopify设置WhatsApp聊天机器人
  • 2.3: Shopify的WhatsApp客户通知

Stella Inbox Setup

  • 概览
  • 1.1: 将频道连接到Slack
  • 1.2: 访问控制及控制面板
  • 1.3: 设置自定义讯息
  • 1.4: 对话频道类型
  • 2.1: 启动真人对话模式
  • 2.2: 关闭真人对话模式
  • 2.3: 取票系统
  • 2.4: 加入助手
  • 2.5: 会员标记
  • 3.1: 发送聊天机器人信息

创建传输命令

您只需输入传输指令即可将真人对话传输到另一个团队。

如果客户提出的问题不在您的专业范围之内,而需要转移到另一个团队跟进,这将特别有用。

请在您于2.1中创建的Slack指令树中设置此指令。


您的结果是什么?

首先,如果客户要求另一个团队来处理此查询,专员就可以输入 @[bot]transfer 以选择要传输到的团队。

其次,专员选择要传输的团队(例如业务团队)并结束原来的实时聊天。

第三,专员传输的渠道接收到刚被传输的票。

传输的渠道收到的刚被传输的票

示例树结构 - 传输指令

Slack指令示例树结构 - 传输指令

动手试试看

创建一个对话点 - 传输指令

  1. 创建第一个对话点并名命为「Transfer Command」。 然后,您可以自定义传输团队时显示的信息。于前置动作输入以下代码:
return new Promise(async (resolve, reject) => {
  try {
    let labelArray = [
      {
        name: "Business Team",
        label: "biz"
      },
      {
        name: "Dev Team",
        label: "dev"
      },
    ]
    const group = await this.getGroupByExternalId({
      adminExternalId: this.messageEvent.from,
      groupId: this.messageEvent.to,
      type: this.channel.type,
      channelId: this.channel._id,
    })

    if (group.active === false) {
      resolve()
    } else {
      let buttons = this.lodash.map(labelArray, (label) => {
        return {
          type: "postback",
          title: label.name,
          payload: {
            payload: "SELECT_TRANSFER_GROUP",
            value: label.label
          }
        }
      })
      await this.sendMessageToOutletGroup({
        group,
        response: {
          type: "BUTTON",
          text: "Which team would you like to transfer this ticket to?",
          buttons,
        },
      })
      resolve()
    }
  } catch (e) {
    reject(e)
  }
})

标签阵列是指可以接收传输票证的频道。您可以于「Name」为每个团队更改按钮名称,这些都可以在Broadcast Group中找到。

您亦可以在「response」下的「text」更改文本。

创建对话点 - 选择团队

  1. 创建第二个对话点并命名为「Select Group」。

  2. 在以下的部分,您会添加3个执行动作。请按照以下步骤进行操作并按照次序将动作放置于前置动作。

  3. 添加第一个前置动作并用以下代码将转移对话的信息发送到入口频道:

return new Promise(async (resolve, reject) => {
  try {
    const group = await this.getGroupByExternalId({
      adminExternalId: this.messageEvent.from,
      groupId: this.messageEvent.to,
      type: this.channel.type,
      channelId: this.channel._id,
    })

    const member = await this.getMember({ memberId: group.member })
    let response
    if (/zh/g.test(this.lodash.get(member, "locale", ""))) {
      response = {
        type: "TEXT",
        text: "請稍等,我們正安排另一位專員處理您的查詢。"
      }
    } else {
      response = {
        type: "TEXT",
        text: "Please wait for a moment, our representative will take over your chat soon."
      }
    }
      
    await this.sendMessageToInlet({
      messageEvent: this.messageEvent,
      channel: this.channel,
      response,
    })
    console.log("sending message to inlet")
    this.member.group = group
    this.member.inletMember = member
    resolve({
      member: this.member
    })
  } catch (e) {
    reject(e)
  }
})

您可以于「response」的「text」自定义消息以配合企业语气和方式。

  1. 添加第二个前置动作并用以下代码创建传输到新团队的票:
return new Promise(async (resolve, reject) => {
  try {
    const assignment = await this.getAssignment({ assignmentId: this.member.group.assignment })
    console.log("assignment", assignment)
    let member = this.member.inletMember
    let labelArray = [
      {
        name: "Business Team",
        label: "biz"
      },
      {
        name: "Dev Team",
        label: "dev"
      }
    ]
    let oldLabel = this.lodash.find(labelArray, { label: assignment.label })
    if (!oldLabel) {
      oldLabel = {
        name: "General",
        value: "general"
      }
    }
    let newLabel = this.lodash.find(labelArray, { label: this.messageEvent.data.payload.value })
    let relayMessage = assignment.relayMessage
    let summary = ""
    let relayText
    if (/zh/g.test(this.lodash.get(member, "locale", ""))) {
      relayText = `${this.member.firstName} ${this.member.lastName} has transferred ${member.firstName} ${member.lastName} to ${newLabel.name}\n${this.moment().format("YYYY-MM-DD")}`
      summary = `姓名: ${member.firstName} ${member.lastName}\n此查詢由 ${oldLabel.name} 轉移到 ${newLabel.name}\n請按以下連結開啟對話紀錄:`
    } else {
      summary = `Name: ${member.firstName} ${member.lastName}\nThis ticket is transferred from ${oldLabel.name} to ${newLabel.name}\nPlease view conversation history at:`
      relayText = `${this.member.firstName} ${this.member.lastName} has transferred ${member.firstName} ${member.lastName} to ${newLabel.name}\n${this.moment().format("YYYY-MM-DD")}`
    }
    relayMessage.slack.text = relayText
    console.log("reassigning")
    await this.reassignAssignment({
      messageEvent: this.messageEvent,
      channel: this.channel,
      label: this.messageEvent.data.payload.value,
      relayMessage,
      summary,
    })
    console.log("reassigned message sent")
    resolve()
  } catch (e) {
    reject(e)
  }
})

您可以自定义以下消息配合企业语气和方式:

  • summary
  • relayText
  • 您可以根据在Broadcast Group中的设置来编辑标签
  1. 添加第三个前置动作并用以下代码传送通知给输入传输指令的专员:
return new Promise(async (resolve, reject) => {
  try {
    console.log("in send transfer successful to group")
    console.log("group", this.member.group)
    await this.sendMessageToOutletGroup({
      group: this.member.group,
      responseUrl: this.messageEvent.response_url,
      response: {
        type: "ATTACHMENT",
        text: this.messageEvent.data.originalMessage.text.replace(/\+/g, " "),
        attachments: [
          {
            text: "Transferred",
            fallback: "Transferred",
            color: "#36a64f"
          }
        ],
        replaceOriginal: true
      }
    })
    resolve()
  } catch (e) {
    reject(e)
  }
})
  1. 最后, 用以下代码于Advanced > Response Object 添加两个响应:

第一個响應:

{
  "type": "TEXT",
  "text": "Your Transfer command has successfully sent. Thanks!"
}

第二个响应 (在完成步骤2.4后即会触发):

{
  "type": "BUTTON",
  "buttons": [
    {
      "type": "postback",
      "payload": "ARCHIVE",
      "title": "Archive Now"
    }
  ],
  "text": "Do you want to archive this channel now?"
}

添加一个通用对话点 - 传输指令

  1. 添加一个通用对话点并命名为 「Transfer Command Global」,然后使用 「AND」创建一个具有两个条件的触发点(有关创建条件的详细信息,请点击此处):

Slack传输指令触发点

第一个条件 - at bot:

new RegExp(`<@${this.channel.info.botId}`).test(this.messageEvent.data.text)

第二个条件 - regex transfer:

/transfer/i.test(this.messageEvent.data.text)
  1. 启用重定向并连接到您为传输制作的树对话点。

重定向至传输指令树对话点

添加一个通用对话点 - 选择团队

  1. 添加一个通用对话点并命名为 「Select Group Global」,然后使用 「AND」创建一个具有两个条件的触发点(有关创建条件的详细信息,请点击此处):

Slack选择团队触发点

第一个条件 - SELECT_TRANSFER_GROUP

this.lodash.get(this.messageEvent, "data.payload.payload") === "SELECT_TRANSFER_GROUP"

第二个条件 - Type Payload

this.messageEvent.type === "PAYLOAD"
  1. 启用重定向并连接到您为选择团队制作的树对话点。

重定向至选择团队树对话点
  1. 检查是否可以获得成功结果。
← 2.2:创建完成命令2.4:创建存档功能 →
  • 您的结果是什么?
  • 示例树结构 - 传输指令
  • 动手试试看
    • 创建一个对话点 - 传输指令
    • 创建对话点 - 选择团队
    • 添加一个通用对话点 - 传输指令
    • 添加一个通用对话点 - 选择团队
Stella Platform Documentation
Docs
Get StartedBot API ReferenceAPI ReferenceStandard Procedures
Community
FAQUser ShowcaseChat with Us
Copyright © 2022 Sanuker Inc. Limited