共用方式為


設定對一般業務開發中心的移交

Copilot Studio 可讓您透過互動中心將副手交談無縫且根據上下文移交給真人專員。

透過某些自訂的開發,您可以將副手設定成將交談移交給任何參與中心。 本指南描述您如何執行此動作。

先決條件

重要

本節中的某些說明需要您或您的開發人員進行軟體開發。 它適用於有經驗的 IT 專業人員,例如對開發人員工具、公用程式及 IDE 有深刻了解的 IT 系統管理員或開發人員,他們希望將第三方參與中心與 Copilot Studio 整合在一起。

概觀

顯示一般配接器資料流程的圖解。

完全移交給參與中心遵循以下模式:

  1. 最終使用者與參與中心的聊天畫布互動。

  2. 參與中心會透過內建的聊天路由功能,將傳入聊天路由至副手。

  3. 自訂配接器會將來自參與中心的傳入聊天訊息中繼至 Copilot Studio 副手。

  4. 使用者自觸發移交 後,Copilot Studio 會使用完整的交談上下文開始移交。

  5. 自訂配接器會攔截移交訊息、分析完整的交談上下文,並根據可用性將升級的交談無縫傳遞給訓練有素的真人專員。

  6. 使用者的聊天會無縫地和具有上下文地移交給可以繼續交談的真人專員。

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

建立自訂的移交配接器

配接器可以透過中繼並在終端使用者、副手和真人專員之間傳遞訊息,在您的專員參與中心溝通交談。

大多數流行的座席參與中心都提供軟體開發工具包(SDK)或公開記錄其 API,使您能夠構建此類適配器。

本文不涉及自定義適配器可以包含的內容。 但是,以下示例 轉接 消息(基於 Copilot Studio 我們的 標準 轉接 to a 真人專員 體驗的一部分)可以説明您入門。

這些程式碼片段和範例可讓您從副手交談中提取上下文,並將副手交談無縫地和具有上下文地到任何通用的參與中心。

範例移交訊息承載

目前僅支援透過 Direct Line 進行移交。 深入了解瞭如何透過 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>
    }
}