Udostępnij za pośrednictwem


Konfigurowanie przekazania do ogólnego centrum zaangażowania

Copilot Studio umożliwia bezproblemowe i kontekstowe przekazywanie konwersacji agent człowiekowi agent za pośrednictwem centrum zaangażowania.

Przy odrobinie niestandardowego programowania możesz skonfigurować agent tak, aby przekazywał konwersacje do dowolnego centrum zaangażowania. W tym przewodniku opisano sposób korzystania z tej procedury.

Wymagania wstępne

Ważne

Instrukcje zawarte w tej sekcji wymagają opracowania oprogramowania przez użytkownika lub deweloperów. To rozwiązanie jest przeznaczone dla doświadczonych informatyków, np. administratorów IT lub programistów, którzy mają dogłębne zrozumienie narzędzi deweloperskich, narzędzi danych i zintegrowanych środowisk projektowych, którzy pragną zintegrować centra obsługi innych fiirm z Copilot Studio.

Omówienie

ILUSTRACJA PRZEDSTAWIAJĄCA ZWYCZAJNY ADAPTER PRZEPŁYWU DANYCH.

Pełne przekazanie do centrum zaangażowania jest zgodne z następującym wzorcem:

  1. Użytkownik końcowy wchodzi w interakcję z kanwą czatu w centrum obsługi.

  2. Centrum zaangażowania kieruje przychodzący czat za pośrednictwem wbudowanych funkcji routingu czatu do agent.

  3. Karta niestandardowa przekazuje przychodzące wiadomości czatu z centrum zaangażowania do a Copilot Studio agent.

  4. Gdy użytkownik końcowy wyzwala przekazanie, Copilot Studio rozpoczyna przekazanie z pełnym kontekstem konwersacji.

  5. Niestandardowy adapter przechwytuje komunikat o przekazaniu, analizuje pełny kontekst konwersacji i bezproblemowo rozsyła eskalowaną konwersację do prawdziwego przedstawiciela z odpowiednimi umiejętnościami, zależnie od dostępności.

  6. Rozmowa użytkownika końcowego jest sprawnie i w sposób kontekstowy przekazywana do agenta ludzkiego, który może wznowić konwersację.

Aby przekazać konwersację prawdziwemu przedstawicielowi, należy utworzyć niestandardowy adapter przekazania.

Tworzenie niestandardowego adaptera przekazania

Adapter łączy konwersacje do i z centrum zaangażowania agent, przekazując i przekształcając wiadomości między użytkownikami końcowymi, agentami i agentami ludzkimi.

Większość popularnych centrów obsługi agentów zapewnia zestawy SDK lub interfejsy API, dzięki czemu możliwe jest tworzenie takich adapterów.

Wykracza to poza zakres tego dokumentu, aby omówić, co może zawierać karta niestandardowa. Jednak poniższy przykładowy komunikat o przekazaniu, oparty na tym, co Copilot Studio generuje jako część naszego standardowego przekazania do agenta na żywo, może pomóc w rozpoczęciu pracy.

Te fragmenty kodu i przykłady umożliwiają wyodrębnienie kontekstu z konwersacji, aby bezproblemowo i kontekstowo przekazać konwersacje agent do dowolnego ogólnego centrum zaangażowania.

Przykładowy ładunek komunikatu przekazania

Przekazanie jest obecnie obsługiwane tylko nad Direct Line. Dowiedz się więcej o interakcji z agent over Direct Line. Po przekazaniu działanie zdarzenia o nazwie handoff.initiate jest wywoływane i wysyłane do zdarzenia.

Możesz zobaczyć pełen przykładowe działanie komunikatu przekazania w naszej witrynie GitHub.

Wyodrębnianie kontekstu z wiadomości dotyczącej przekazania

Aby użyć kontekstu konwersacji, należy przeanalizować działanie zdarzenia handoff.initiate. Poniższa próbka kodu analizuje działanie zdarzenia handoff.initiate i wyodrębnia kontekst konwersacji. Zobacz pełną próbkę kodu dostępną w witrynie 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>
    }
}