共用方式為


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

Copilot Studio 讓您通過參與中心將專員對話無縫地移交給人類專員。

通過一些自定義開發,您可以配置專員以將對話移交給任何參與中心。 本指南描述您如何執行此動作。

必要條件

重要

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

概觀

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

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

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

  2. 參與中心通過內置的聊天路由功能將傳入的聊天路由到專員。

  3. 自定義適配器將來自參與中心的傳入聊天消息中繼到 a Copilot Studio 專員。

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

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

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

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

建立自訂的移交配接器

適配器通過在最終使用者、座席和人工座席之間中繼和轉換消息,將對話橋接到專員參與中心或從 # 參與中心進行橋接。

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

自訂適配器可能包含的內容超出了本文件的範圍。 不過,以下範例切換訊息是基於 Copilot Studio 產生的內容 (作為我們標準移交到真人專員體驗的一部分),可協助您入門。

這些代碼片段和範例允許您從對話中提取上下文,以便根據上下文無縫地將專員對話移交給任何通用參與中心。

範例移交訊息承載

目前僅支援透過 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>
    }
}