[本文是预发行文档,可能会有所更改。]
您的客户服务代表(服务代表或代表)依赖于来自各种系统的数据和信息。 使用插件,您可以直接与非 Microsoft CRM 数据进行交互。 此直接交互有助于减少服务代表切换到其他选项卡和工具来完成工作的需要,并提高解决问题的速度和客户满意度。
先决条件
- 在 Copilot Studio 中,如果您要在嵌入式 AI 代理中使用提示插件,请创建一个提示插件。
- 在 Copilot Studio 中,如果您要在嵌入式 AI 代理中使用连接器插件,请创建一个自定义连接器插件。
配置插件
若要在 Copilot Studio 中创建插件后在嵌入式 AI 代理中使用提示插件或连接器插件,您必须在管理中心中启用该插件。 以下部分介绍如何启用和配置插件。
- 在 Copilot Service 管理中心中,选择高效办公。
- 在高效办公页面上,为生成式 AI 的插件(预览版)选择管理。 将显示生成式 AI 插件(预览版)页面,其中包含为环境生成的所有插件提示。
- 选择要启用的提示插件,然后在命令栏上选择打开。
- 在选择访问类型中,选择以下类型之一:
- 具有 Copilot 的所有代理:通过代理体验配置文件为其启用 Copilot 的代理。
- 特定用户角色:选择列表中的角色。
- 定义输入(可选) 屏幕随即显示。 此步骤是可选的,允许您提供 Copilot 可以自动用于生成答案的上下文。 如果不添加输入,则服务代表必须在运行插件时手动指定上下文。 若要配置输入并了解有关此功能工作原理的详细信息,请执行定义输入部分中的步骤。
- 选择下一步,然后在插件数据屏幕上,选择存储此插件的数据。 数据作为服务代表与 Copilot 的交互的一部分以聊天记录的形式存储在您的 Dataverse 数据库中。 了解更多信息,请参阅 Copilot 记录和交互数据。
- 选择启用插件。
- 在页面顶部的警报消息中选择发布更改,然后在出现的确认对话框中选择确认。 发布更改可能需要 15 分钟。
定义提示的输入
在定义输入(可选) 屏幕上添加输入时,可以通过自动合并相关数据使提示具有上下文感知功能。 此输入允许 Copilot 直接访问指定字段,而无需客户服务代表手动输入系统中已存在的信息。
如果不配置输入,则提示将保持静态,并且无法访问上下文。 然后,该插件会提示服务代表输入他们必须手动输入的其他信息。
例如,您有一个提示,该提示根据客户的名称和案例 ID 检索客户的订单详细信息。 您可以将客户名称和案例 ID 字段添加为定义输入(可选) 中的输入。
当服务代表打开案例并触发提示时,Copilot 会自动从案例记录中获取客户名称和案例 ID,并将其用作提示的输入。
对于嵌入式 AI 代理,您需要生成参数键。 参数键是 JavaScript 文件中用于从非 Microsoft CRM 检索所需上下文的唯一标识符。
设置参数键
若要在定义输入页面上设置参数,请执行以下步骤:
指定记录类型和数据字段。 您需要指定此信息以生成参数键。
选择复制以复制参数键中的值。 参数键值是系统在 JavaScript 中使用的变量,用于存储系统作为输入传递给插件的值。
选择保存。
选择下一步以转到将插件数据保存在 Dynamics 365 中,然后完成步骤以完成插件配置。
使用您在 JavaScript 文件中在步骤 2 中复制的参数键。 在将参数键作为输入传递给插件中了解详细信息。
将参数键作为输入传递给插件
创建一个 JavaScript 文件,该文件使用您在设置参数键的步骤 2 中复制的参数键变量,并订阅 Microsoft CCaaS Embed SD 中的 Microsoft.CCaaS.EmbedSDK.Copilot.onGetPluginData
函数。 以下操作适用:
- 该函数侦听获取插件数据的请求。
- 它从系统中检索所需的数据,并将值分配到参数键变量。 此参数键变量是在设置参数键部分的步骤 2 中复制的值。
- 它将参数键变量的值返回到插件。 插件使用此值作为提示的输入。
例如,您在定义输入(可选) 页面中生成了两个参数键:incident____customerid_account____accountid
和 customerid_account____accountid
。 下面是函数的示例代码,该函数针对 incident____customerid_account____accountid
返回值 1 并针对 customerid_account____accountid
返回值 2,这些值随后作为输入传递到插件。
Microsoft.CCaaS.EmbedSDK.Copilot.onGetPluginData((request) => {
return new Promise((resolve, reject) => {
// 7 get plugin data
const { objectData } = request;
const pluginContext = objectData || {};
const { entityId, entityName, parameters, parameterValues } = pluginContext;
let responseData = null;
console.log("External adapter plugin invoked...");
if (entityName === "incident" && // sample entity name (case == incident)
parameters.length > 0) {
// copy parameter values
const values = parameterValues;
// override parameter values for 1P or 3P scenario
parameters.forEach((param) => {
if (param === "incident____customerid_account____accountid") {
values[param] = "1";
}
if (param === "customerid_account____accountid") {
values[param] = "2";
}
});
// return the updated parameter values
responseData = {
entityId,
entityName,
parameters,
parameterValues: values,
};
}
const dataResponse = {
objectId: request.objectId,
objectType: request.objectType,
data: responseData,
};
console.log("External adapter sending data from plugin:",responseData);
resolve(dataResponse);
});
});
备注
请确保将此文件托管在 Web 服务器上,并使其可公开访问,以避免出现身份验证问题。
在非 Microsoft CRM 中配置 URL
您可以将 JavaScript 文件的 URL 追加到 Copilot 可嵌入小组件 URL,用于通过将 "&copilotExtensionUrl=<URL to customer hosted .js file>"
添加到现有嵌入 URL 来在非 Microsoft CRM 中嵌入 Copilot 小组件。
例如,如果 JavaScript 文件的 URL 是 https://embedcopilotnonprod.blob.core.windows.net/embedcopilotnonprodcontainer/demopromptplugin.js
,则您需要在非 Microsoft CRM 中添加的 URL 如下所示:
https://copilotforservice-prod.azureedge.net/widget/index.html?dynamicsUrl=https://X<your_org_URL>&copilotExtensionUrl=https://embedcopilotnonprod.blob.core.windows.net/embedcopilotnonprodcontainer/demopromptplugin.js
管理插件
使用命令菜单上的选项来管理插件。 编辑按钮可让您更新插件设置并发布更改。 在发布过程中,您无法更改任何设置。
注意事项
- 您只能添加一个插件操作。
- 如果您更新插件,我们建议您保存插件并在 Copilot Studio 中重新发布。 然后,您可以在 Copilot Service 管理中心中的生成式 AI 的插件(预览版) 上选择刷新以查看更改。