IBM Watson Assistant 与 Zendesk 的集成

问题描述

我按照此处列出的所有步骤将 IBM Watson Assistant 集成到 Zendesk this question and answer

但我正在努力寻找我应该如何将值传递给 Zendesk。提供的信息不够清楚,如果我请求代理,没有关于用户的信息,它在 zendesk 中显示如下:

Screen Shot 2021-04-12 at 11 08 10

文档说:

使用以下语法指定信息。对两个名称和值对使用确切的名称名称和电子邮件)。

{ 用户负载:{
name: '#{customerName}',电子邮件:'#{customerEmail}' } }

然后:

决定是否允许身份不明的用户访问 Zendesk。

网络聊天集成允许匿名用户发起聊天。但是,一旦您启用访问者身份验证,Zendesk 就会要求提供每个用户的姓名和电子邮件。如果您在未传递所需信息的情况下尝试连接,则连接将被拒绝。

如果您想允许匿名用户连接到 Zendesk,您可以提供虚构的姓名和电子邮件数据。编写一个函数,用虚构的姓名和电子邮件值填充这两个字段。

例如,您的函数必须检查您是否知道当前用户的姓名和电子邮件,如果不知道,则为他们添加预设值:

const userPayload = { "name" : "Jane Doe1","email" : "jdoe1@example.com",}

就我而言,由于用户将通过 Android 应用程序中的 webview 访问助手,因此我有姓名和电子邮件,并且不需要整个身份验证步骤,我只想将这些值传递给 zendesk,但不能完全弄清楚如何。在示例中,它只是设置了这个常量,但我不知道如何处理它,是否有代码示例?

提前致谢

解决方法

如果您只想将 emailusername 传递给 Zendesk 以便代理可以看到它们,如果您按如下方式设置对话上下文,则可以传递这些信息

context.integrations.zendesk.pre_chat = { username: "John",email: "j@j.com"}

这应该在代理的 zendesk 工作区中显示为标签。

如果您想使用 Zendesk 安全性并对聊天进行身份验证,则必须为网络聊天设置安全性并在 JWT 中嵌入 user_payload。 (如您链接的文档中所述)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...