Freigeben über


Übergabe an einen generischen Kundenbindungs-Hub konfigurieren

Mit Copilot Studio können Sie Agentenunterhaltungen nahtlos und kontextbezogen über einen Kundenbindungs-Hub an einen menschlichen Agenten übergeben.

Mit einigen benutzerdefinierten Entwicklungen können Sie Ihren Agenten so konfigurieren, dass Unterhaltungen an einen beliebigen Kundenbindungs-Hub übergeben werden. In dieser Anleitung wird beschrieben, wie Sie dies tun können.

Anforderungen

Wichtig

Einige Anweisungen in diesem Abschnitt erfordern Softwareentwicklung von Ihnen oder Ihren Entwicklern. Sie richten sich an erfahrene IT-Fachkräfte, zum Beispiel für die IT-Administration oder -Entwicklung, die ein solides Verständnis für Entwicklertools, Dienstprogramme und IDEs haben, die Kundenbindungs-Hubs von Drittanbietern mit Copilot Studio integrieren möchten.

Überblick

ILLUSTRATION MIT GENERISCHEM ADAPTERDATAFLOW.

Eine vollständige Übergabe an einen Kundenbindungs-Hub folgt diesem Muster:

  1. Eine Kundschaft interagiert mit dem Chat-Canvas des Kundenbindungs-Hubs.

  2. Der Kundenbindungs-Hub leitet den eingehenden Chat über integrierte Chat-Routing-Funktionen an einen Agenten weiter.

  3. Ein benutzerdefinierter Adapter leitet die eingehenden Chat-Nachrichten vom Kundenbindungs-Hub an einen Copilot Studio-Agenten weiter.

  4. Sobald die Kundschaft die Übergabe auslöst, startet Copilot Studio die Übergabe mit dem vollständigen Unterhaltungskontext.

  5. Der benutzerdefinierte Adapter fängt die Übergabemeldung ab, analysiert den gesamten Unterhaltungskontext und leitet die eskalierte Unterhaltung je nach Verfügbarkeit nahtlos an einen erfahrenen realen Agenten weiter.

  6. Der Chat der Kundschaft wird nahtlos und kontextbezogen an einen menschlichen Agenten übergeben, der die Unterhaltung fortsetzen kann.

Um die Unterhaltung an einen menschlichen Agenten weiterzuleiten, müssen Sie einen benutzerdefinierten Übergabeadapter erstellen.

Erstellen eines benutzerdefinierten Übergabeadapters

Ein Adapter überbrückt Unterhaltungen zu und von Ihrem Agenten-Kundenbindungs-Hub, indem er Nachrichten zwischen Kundschaft, Agenten und menschlichen Agenten weiterleitet und transformiert.

Die meisten gängigen Agent-Kundenbindungs-Hubs stellen Software Development Kits (SDKs) bereit oder dokumentieren ihre APIs öffentlich, sodass Sie solche Adapter erstellen können.

Es würde den Rahmen dieses Dokuments sprengen, mögliche Inhalte eines benutzerdefinierten Adapters zu erläutern. Die folgende Beispielübergabemeldung, die darauf basiert, was Copilot Studio im Rahmen unserer Standardübergabe an eine Live-Agent-Umgebung generiert, kann Ihnen jedoch beim Einstieg helfen.

Mit diesen Codeschnipseln und Beispielen können Sie den Kontext aus der Unterhaltung extrahieren, um Agentenunterhaltungen nahtlos und kontextbezogen an einen beliebigen generischen Kundenbindungs-Hub zu übergeben.

Nutzlast der Beispielübergabemeldung

Die Übergabe wird derzeit nur über Direct Line unterstützt. Weitere Informationen finden Sie unter Mit einem Agenten über Direct Line interagieren. Bei der Übergabe wird eine Ereignisaktivität namens handoff.initiate ausgelöst und an den Adapter gesendet.

Sehen Sie sich eine vollständige Beispielübergabemeldungsaktivität auf unserer GitHub-Website an.

Kontext aus Übergabemeldungen extrahieren

Um Gesprächskontext verwenden zu können, müssen Sie die handoff.initiate-Ereignisaktivität analysieren. Der folgende Codeausschnitt analysiert die handoff.initiate-Ereignisaktivität und extrahiert den Konversationskontext. Sehen Sie sich das vollständige Codebeispiel auf GitHub an.

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>
    }
}