Konfigurowanie przekazania do ogólnego centrum zaangażowania
Program Copilot Studio umożliwia szybkie i łatwe przekazanie konwersacji z agentem ludzkim agentom za pośrednictwem centrum obsługi.
W przypadku niektórych procesów niestandardowych, można skonfigurować agenta do przekazywania konwersacji do centrum obsługi. W tym przewodniku opisano sposób korzystania z tej procedury.
Wymagania wstępne
- Należy posiadać bota zbudowanego za pomocą Copilot Studio.
- Potrzebne jest centrum obsługi umożliwiające interakcję programistyczną przy użyciu interfejsów API lub zestawu SDK.
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
Pełne przekazanie do centrum zaangażowania jest zgodne z następującym wzorcem:
Użytkownik końcowy wchodzi w interakcję z kanwą czatu w centrum obsługi.
Centrum obsługi przesyła nadchodzącą rozmowę za pośrednictwem wbudowanych funkcji rozsyłania rozmów do agenta.
Niestandardowy adapter przekazujerozmowę przychodzącą z centrum obsługi do agenta Copilot Studio.
Kiedy użytkownik rozpocznie przekazanie wyzwalacza, Copilot Studio inicjuje przekazanie wraz z pełnym kontekstem konwersacji.
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.
Rozmowa użytkownika 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 od i z centrum obsługi agenta poprzez przekazywanie i transformowanie wiadomości pomiędzy użytkownikiem, agentem, i agentem ludzkim.
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 próbki i przykłady kodu umożliwiają wyodrębnienie kontekstu z konwersacji z botem w celu zapewnienia bezproblemowego i płynnego przekazania rozmów z agentem do ogólnego centrum obsługi.
Przykładowy ładunek komunikatu przekazania
Przekazanie jest obecnie obsługiwane tylko nad Direct Line. Więcej informacji o współpracy z agentem 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>
}
}