Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Copilot Studio kan du lämna ut agentkonversationer sömlöst och kontextuellt till en mänsklig agent via en engagemangshubb.
Med en viss anpassad utveckling kan du konfigurera agenten till att överlämna konversationer till en valfri engagemangshubb.
Förutsättningar
- Du har skapat din agent med Hjälp av Copilot Studio.
- Du behöver en engagemangshubb som kan interagera programmatiskt med hjälp av API:er eller SDK.
Viktigt
Den här artikeln kräver vissa kunskaper om programvaruutveckling. Stegen i den här artikeln är för erfarna IT-proffs med en gedigen förståelse för utvecklarverktyg, verktyg och integrerade utvecklingsmiljöer (IDE).
Översikt
En komplett överlämning till en engagemangshubb följer detta mönster:
- En kund interagerar med engagemangshubbens chattfönster.
- Engagemangshubben skickar den inkommande chatten via de inbyggda vidarebefordringsfunktionerna för chatt till en agent.
- En anpassad adapter vidarebefordrar de inkommande chattmeddelandena från engagemangshubben till en Copilot Studio-agent.
- När kunden utlöser överlämning, Copilot Studio startar överlämningen med en fullständig konversationskontext.
- Den anpassade adaptern fångar upp meddelandet och tolkar den fullständiga konversationskontexten och vidarebefordrar sömlöst den eskalerade konversationen till en utbildad mänsklig agent utifrån tillgänglighet.
- Kundens chatt överlämnas sömlöst kontextuellt till en mänsklig agent som kan återuppta konversationen.
Om du vill överlämna en konversation till en mänsklig agent måste du bygga en anpassad överlämningsadapter.
Skapa en anpassad överlämningsadapter
En adapter överbryggar samtal till och från din agentengagemangshubb genom att vidarebefordra och omvandla meddelanden mellan kunder, agenter och mänskliga agenter.
De vanligaste engagemangshubbarna för agenter tillhandahåller programvaruutvecklingssatser (SDK:er) eller dokumenterar deras API:er offentligt, vilket gör att du kan bygga sådana adaptrar.
Det här dokumentet beskriver inte vad en anpassad adapter kan innehålla. Följande exempel på överlämningsmeddelande, baserat på vad Copilot Studio genererar som en del av vår standardöverlämning till en live-agentupplevelse, kan dock hjälpa dig att komma igång.
Med hjälp av dessa kodavsnitt kan du extrahera kontext från agentkonversationen till sömlös och sammanhangsberoende överlämning av agentkonversationer till en generisk engagemangshubb.
Exempel på nyttolast för överlämningsmeddelande
Överlämning stöder för närvarande endast Direct Line. Mer information finns i interagera med en agent via Direct Line. Vid överlämningen genererar adaptern en händelseaktivitet som heter handoff.initiate och skickar den.
Du kan visa ett fullständigt exempel på överföring av meddelandeaktivitet på vår GitHub-webbplats.
Extrahera kontext från ett överlämningsmeddelande
Om du vill använda konversationskontext parsar du händelseaktiviteten handoff.initiate .
Följande kodavsnitt tolkar handoff.initiate-händelseaktiviteten och extraherar konversationssammanhanget. Se exempel på fullständig kod på 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>
}
}