設定與一般參與中樞的轉接

Copilot Studio 讓你能透過互動中心,無縫且有情境地將客服人員的對話交接給真人客服人員。

透過一些自訂開發,您可以設定代理程式將交談移交給任何參與中心。

必要條件

重要

本文需要具備一定的軟體開發技能。 本文的步驟適合具備開發工具、工具及整合開發環境(IDE)知識的資深 IT 專業人士。

概觀

用於移交至參與中心的一般配接器資料流的螢幕擷取畫面。

完整交接至參與中心遵循以下模式:

  1. 客戶與互動中心的聊天介面互動。
  2. 參與中心透過內建聊天路由功能將傳入聊天路由至代理程式。
  3. 自訂適配器將傳入的聊天訊息從參與中心中繼到 Copilot Studio 代理程式。
  4. 一旦客戶觸發交接,Copilot Studio 就以完整的交談情境開始交接。
  5. 自訂配接器會攔截轉接訊息、剖析完整的交談上下文,並根據可用性將升級處理的交談順暢地路由傳送至訓練有素的真人專員。
  6. 客戶的聊天會根據上下文無縫地移交給可以恢復交談的人工代理程式。

若要將交談移交給真人專員,您需要建立自訂的移交配接器。

建立自訂的移交配接器

適接器會在客戶、Agent 和真人專員之間轉送並轉換訊息以橋接與 Agent 參與中樞之間的交談。

大多數流行的代理程式參與中心都提供軟體開發套件 (SDK) 或公開記錄其 API,使您能夠建立此類適配器。

這份文件並未涵蓋自訂轉接器可能包含的內容。 不過,以下由 Copilot Studio 產生的範例交接訊息,是我們標準轉接至實際客服人員體驗的一部分,能協助您快速上手。

這些程式碼片段和範例可讓您從交談中提取上下文,以便將代理程式交談無縫地、上下文地移交給任何通用參與中心。

範例交接訊息負載

Handoff 目前只支援 Direct Line。 欲了解更多資訊,請參閱透過 直線與代理人互動。 轉接時,配接器會引發稱為 handoff.initiate 的事件活動,並傳送配接器。

您可以在 GitHub 網站上看到完整的範例移交訊息活動

從移交訊息提取上下文

要使用對話上下文,需要解析handoff.initiate事件活動。 下列程式碼片段會剖析 handoff.initiate 事件活動,並抽取交談上下文。 請參閱 GitHub 上的完整程式碼範例

public void InitiateHandoff(string botresponseJson)
{
    BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);

    // Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
    Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
        item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
        && string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));

    if (handoffInitiateActivity != null)
    {
        // Read transcript from attachment
        if (handoffInitiateActivity.Attachments?.Any() == true)
        {
            Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
            if (transcriptAttachment != null)
            {
                Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
            }
        }

        // Read handoff context
        HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());

        // Connect to Agent Hub
        // <YOUR CUSTOM ADAPTER CODE GOES HERE>
    }
}