将自定义服务台与 Orchestrate Chat 集成

版权:年份:2025 最后更新:"2025-04-24"

定制服务台可让企业高效地管理和解决用户请求、问题或事件。 通过根据您的具体需求定制体验,它可以提高客户满意度,提升运营效率,并提供更好的可视性和控制。

先决条件

在开始集成之前,您需要创建一个符合 Orchestrate Chat 服务台模型标准的对象或类。 请在此处下载所需的接口。

重要说明:

只有在将 watsonx Assistant 添加为协作代理时,Orchestrate Chat才支持自定义服务台集成。 必须在 watsonx Assistant 中配置该集成。

集成概述

Orchestrate Chat 支持与定制服务台或联络中心集成,从而使用户能够与人工座席互动。 整合:

  1. 根据 Orchestrate Chat 服务台模型创建符合要求的对象或类。 更多信息,请参阅先决条件

  2. 在 Orchestrate Chat 配置中实施一个工厂函数 ,在收到请求时返回一个新的集成实例。

定制服务台集成的要求

要使用 Orchestrate Chat,您的服务台必须

  • 支持基于浏览器的通信。

  • 遵守 Orchestrate Chat 的界面标准。

  • 提供 HTTP 端点或 WebSocket 接口:

    • 开始聊天

    • 接收用户信息。

    • 向用户发送代理信息。

集成步骤

要启用 Orchestrate Chat 与自定义服务台之间的通信,您必须

  1. 开发集成代码 ,以处理启动聊天和向代理发送消息等操作。 确保它符合 Orchestrate Chat 的 API 规范。

  2. 通过工厂功能公开集成 ,以便 Orchestrate Chat 可以访问和运行它。

  3. 将集成代码包含在网站中或单独托管。

注:

该代码并非托管在 watsonx Orchestrate 上,而是托管在您自己的服务器上。

处理机密

如果您的服务台需要保密信息(如 API 密钥):

  • 使用服务器端中间件代理请求。

  • 中间件会在转发请求前添加所需的机密。

跨源请求

如果您的服务台托管在不同的域上:

  • 请确保它支持 CORS

  • 如果没有,则通过服务器代理请求。

集成实例

下面的基本示例展示了如何注册使用工厂函数的自定义服务台集成:

<script>
// Define your custom service desk class
class MyServiceDesk {
    constructor(parameters) {
        this.callback = parameters.callback;
        console.log("Service Desk started", parameters);
    }

    getName() {
        return 'MyServiceDesk';
    }

    startChat() {
        // Start chat logic
        // Call callback.agentJoined when an agent joins
        // Call callback.sendMessageToUser when agent sends a message
    }

    endChat() {
        // End chat logic
    }

    sendMessageToAgent() {
        // Send user message to agent
    }
}

// Register the integration with Orchestrate Chat
window.wxOConfiguration = {
    orchestrationID: '...',
    serviceDesk: {
        customFactory: (parameters) => new MyServiceDesk(parameters),
    },
};
</script>

API 概述

Orchestrate Chat 提供公共 API,用于与自定义服务台集成。 您必须实施整合:

  • startChat:聊天开始时通知服务台。

  • sendMessageToAgent:向代理发送用户信息。

Orchestrate Chat 还提供回调功能,以便服务台做出回应:

  • agentJoined:有代理加入时发出通知。

  • sendMessageToUser:从代理向用户发送信息。

路由与通信

  • serviceDesk.customFactory 属性必须返回一个具有所需方法的对象或类。

  • 工厂接收一个回调对象 ,您的集成使用该对象与 Orchestrate Chat 进行通信。

客服人员的聊天记录

Orchestrate Chat 提供在代理界面显示聊天记录的配置。 客服人员可以查看与用户的过往对话。

互动流程

典型的互动方式如下

  1. Orchestrate Chat 会初始化使用 customFactory 的自定义服务台的单个实例。

  2. 用户发送信息后, connect_to_agent

  3. 如果已实施,Orchestrate Chat 会调用 areAnyAgentsOnline 来检查代理的可用性。

  4. 用户点击请求代理

  5. 协调聊天呼叫 startChat ,启动与服务台的会话。

  6. 横幅通知用户正在连接一个代理。

  7. 当代理加入时,您的集成会调用 callback.agentJoined

  8. 代理信息通过 callback.sendMessageToUser 发送。

  9. 用户信息通过 sendMessageToAgent 发送。

  10. 聊天结束时,Orchestrate Chat 会调用 endChat

API 详细信息

要将自定义服务台与 Orchestrate Chat 集成,您需要实现 TypeScript 接口中定义的特定方法。

实现方法(来自自定义服务台界面)

您的整合必须包括以下方法:

  • getName:返回服务台的名称。

  • startChat:开始新的聊天会话。

  • endChat:结束当前聊天会话。

  • sendMessageToAgent:向代理发送用户信息。

  • areAnyAgentsOnline (可选) :检查当前是否有可用的代理。

回调方法(来自 ServiceDeskCallback 接口)

通过这些方法,您的服务台可以向 Orchestrate Chat 发送更新:

  • agentEndedChat:代理结束了聊天。

  • agentJoined:代理加入了聊天。

  • agentLeftChat:代理退出聊天。

  • agentTyping:代理正在打字。

  • beginTransferToAnotherAgent:开始向另一个代理转移。

  • sendMessageToUser:从代理向用户发送信息。

  • setErrorStatus:向 Orchestrate Chat 报告错误状态。

支持的响应类型

callback.sendMessageToUser 方法用于向用户显示信息。

支持的格式:

  • 简单文本字符串 :显示基本文本信息。

  • MessageResponse 对象 :Orchestrate Chat 使用的结构化格式(仅支持部分类型)。

目前,自定义服务台集成仅支持文本(简单字符串) 响应类型。