Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Note
In dit artikel worden functies beschreven die worden gebruikt in agents of agentstromen die mogelijk worden gemaakt met het standaardharnas.
Met Copilot Studio kunt u naadloos en contextueel agentgesprekken doorgeven aan een menselijke agent via een betrokkenheidshub.
Door gebruik te maken van aangepaste ontwikkeling kun je je agent zo instellen dat hij gesprekken overdraagt aan elke engagementhub.
Prerequisites
- Je hebt je agent opgebouwd met Copilot Studio.
- Je hebt een engagementhub nodig die programmatisch kan communiceren via API's of SDK's.
Important
Voor dit artikel zijn enkele vaardigheden voor softwareontwikkeling vereist. De stappen in dit artikel zijn bedoeld voor ervaren IT-professionals met een solide kennis van ontwikkelhulpprogramma's, hulpprogramma's en geïntegreerde ontwikkelomgevingen (IDE's).
Overview
Een volledige overdracht naar een engagementcentrum volgt dit patroon:
- Een klant communiceert met het chatcanvas van de contacthub.
- De contacthub leidt de inkomende chat via ingebouwde chatrouteringsmogelijkheden om naar een agent.
- Een aangepaste adapter stuurt de inkomende chatberichten van de contacthub door naar een Copilot Studio-agent.
- Zodra de klant de overdracht activeert, begint Copilot Studio de overdracht met volledige gesprekscontext.
- De aangepaste adapter onderschept het overdrachtsbericht, parseert de volledige gesprekscontext en leidt het geëscaleerde gesprek naadloos om naar een bekwame menselijke agent, op basis van beschikbaarheid.
- De chat van de klant wordt naadloos en contextueel overgedragen aan een menselijke agent die het gesprek kan hervatten.
Om het gesprek aan een menselijke agent over te dragen, moet u een aangepaste overdrachtsadapter bouwen.
Een aangepaste overdrachtsadapter bouwen
Een adapter overbrugt gesprekken van en naar uw agentcontacthub door berichten door te sturen en te transformeren tussen klanten, agenten en menselijke agenten.
De populairste hubs voor agentcontact bieden softwareontwikkelingskits (SDK's) of documenteren hun API's openbaar, zodat u dergelijke adapters kunt bouwen.
In dit document wordt niet besproken wat een aangepaste adapter kan bevatten. Het volgende voorbeeld van een overdrachtsbericht, gebaseerd op wat Copilot Studio genereert als onderdeel van onze standaard overdracht naar een live agent, kan u echter op weg helpen.
Met deze codefragmenten en voorbeelden kunt u context uit het botgesprek halen om agentgesprekken naadloos en contextueel over te dragen aan elke generieke contacthub.
Nettolading van voorbeeld van overdrachtsbericht
Handoff ondersteunt momenteel alleen Direct Line. Zie interactie met een agent via Direct Line voor meer informatie. Wanneer je de overdracht start, genereert en verstuurt de adapter een gebeurtenisactiviteit met de naam handoff.initiate.
U kunt een volledig voorbeeld van een overdrachtsberichtactiviteit op onze GitHub-site bekijken.
Context uit overdrachtsbericht halen
Als u de gesprekscontext wilt gebruiken, parseert u de handoff.initiate gebeurtenisactiviteit.
Het volgende codefragment ontleedt de handoff.initiate gebeurtenisactiviteit en extraheert de conversatiecontext. Bekijk het volledige codevoorbeeld op 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>
}
}