IBM Cloud Docs
为集成添加定制对话流

为集成添加定制对话流

在对话中使用 JSON 编辑器,可以访问从 Web 聊天集成中提交的信息。

从 API 版本 2020-04-01 开始,作为 V2 context API 请求的一部分传递的 /message 对象包含 integrations 对象。 此对象可以传递上下文中特定于单个集成类型的信息。 有关更多信息,请参阅 上下文变量

integrations 对象仅在 V 2020-04-01 或更高版本的 v2 API 中可用。

要利用 context.integrations 对象,可以创建按如下所示命名的上下文变量,以获取和设置不同集成的值:

特定于集成的上下文变量
集成类型 上下文变量语法
电话 $integrations.voice_telephony
Web 聊天中的 Salesforce 服务台 $integrations.salesforce
SMS with Twilio $integrations.text_messaging
Web 聊天 (和助手预览) $integrations.chat
Web 聊天中的 Zendesk 服务台 $integrations.zendesk

构建特定于集成的对话流

创建一个经过优化的对话,以使用部署该对话的每个通道或客户机接口提供的最佳功能。

可以通过以下方式定制交谈:

  • 要添加仅由特定集成类型处理的整个对话分支,请将相应的集成类型上下文变量(例如,$integrations.chat)添加到对话根节点的如果助手识别到字段。

  • 要添加仅由特定集成类型处理的单个对话节点,请将相应的集成类型上下文变量(例如,$integrations.zendesk)添加到对话子节点的如果助手识别到字段。

  • 要基于集成类型为单个对话节点添加略有不同的响应,请完成以下步骤:

    • 在节点的编辑视图中,单击定制,然后将多个条件响应开关设置为开启。 单击应用

    • 在对话节点响应部分中,为每个定制响应类型添加相应的条件和对应的响应。

      以下示例显示如何为显示文本响应的集成指定最佳格式的超文本链接。 对于支持 Markdown 格式设置的 Web 聊天集成,可以在响应文本中包含链接标签,使响应看起来更美观。 对于 SMS with Twilio 集成,可以跳过在 Web 页面中有意义的格式设置,并添加直接 URL。

      定制条件响应
      集成类型 条件 样本文本响应
      SMS with Twilio $integrations.text_messaging For more information, go to https://www.ibm.com.
      Web 聊天 $integrations.chat For more information, go to [the ibm.com site](https://www.ibm.com).
      用于显示是否未满足其他条件的响应。 true For more information, go to ibm.com.

在不同的内置集成或助手预览中显示富响应类型时,这些类型的行为通常有所不同。

如果需要为不同通道提供定制响应,并且不需要根据正在使用的集成来修改对话流,那么还可以使用 channels 数组将响应作为特定集成的目标。

Web 聊天:访问敏感数据

如果为 Web 聊天启用安全性,那么可以配置 Web 聊天实现以将加密的数据发送到对话。 从 Web 聊天发送的有效内容数据会存储在名为 context.integrations.chat.private.user_payload 的专用上下文变量中。 不会将专用变量从对话发送到任何集成。 有关如何传递数据的更多信息,请参阅 加密 Web 聊天中的敏感数据

要访问有效内容数据,可以引用对话节点条件中的 context.integrations.chat.private.user_payload 对象。

您必须知道在有效内容中发送的 JSON 对象的结构。

例如,如果在 JSON 有效内容中传递了值 "mvp:true",那么可以添加一个对话流来检查此值,以定义仅适用于 VIP 客户的响应。 添加一个具有条件的对话节点,如下所示:

作为节点条件的专用变量
字段
如果助手识别到 $integrations.chat.private.user_payload.mvp
助手响应 I can help you reserve box seats at the upcoming conference!

Web 聊天:访问 Web 浏览器信息

使用 Web 聊天集成时,将自动收集并存储有关客户用于访问 Web 聊天的 Web 浏览器的信息。 这些信息会存储在 context.integrations.chat.browser_info 对象中。

您可以设计对话以利用有关所用 Web 浏览器的详细信息。 以下属性源自表示正在运行 Web 聊天的窗口的 window 对象:

  • browser_name:浏览器名称,例如 chromeedgefirefox
  • browser_version:浏览器版本,例如 80.0.0
  • browser_OS:客户计算机的操作系统,例如 Mac OS
  • language:浏览器的缺省语言环境代码,例如 en-US
  • page_url:嵌入 Web 聊天的 Web 页面的完整 URL。 例如: https://www.example.com/products
  • screen_resolution:指定在其中显示 Web 页面的浏览器窗口的高度和宽度。 例如: width: 1440, height: 900
  • user_agent:User-Agent 请求头中的内容。 例如: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0
  • client_ip_address:客户计算机的 IP 地址。 例如: 183.49.92.42

示例:在对话中使用页面 URL 信息

您可以在 Web 站点上的多个页面中嵌入 Web 聊天。 您可能希望根据客户要求与他人交谈的页面,将聊天传输从 Web 聊天路由到不同的 Salesforce 代理。 如果客户位于 Web 站点的保险计划页面上 (https://www.example.com/insurance.html),那么您需要将聊天转接路由到属于公司保险计划专家的座席。 如果客户位于投资 Web 页面上 (https://www.example.com/invest.html),那么您需要将聊天转接路由到属于公司投资机会专家的座席。 可以向执行转接的对话节点添加多个条件响应,并添加类似下面的逻辑:

条件响应 1

  • 条件: $integrations.chat.browser_info.page_url.contains('insurance.html')
  • 响应类型:连接到人工座席
  • 按钮标识:Z23453e25vv(用于路由到保险专家座席队列的按钮)

条件响应 2

  • 条件: $integrations.chat.browser_info.page_url.contains('invest.html')
  • 响应类型:连接到人工座席
  • 按钮标识:Z23453j24ty(用于路由到投资专家座席队列的按钮)

Web 聊天:复用 JWT 以进行 Webhook 认证

您可以将用于保护 Web 聊天的 JSON Web 令牌 (JWT) 用于对 Webhook 调用进行认证。 如果在将 Web 聊天添加到 Web 页面时在 identityToken 属性中指定了令牌,那么该令牌会存储在名为 context.integrations.chat.private.jwt 的专用变量中。 有关传递 JWT 的更多信息,请参阅 启用 Web 聊天安全性

  1. 在对话中,打开 Webhook

  2. 单击 添加标题

  3. 头名称中,输入任何名称,例如 JWT

  4. 头值字段中,添加 $integrations.chat.private.jwt