
Dieses Thema beschreibt die Einrichtung der Chatbot-Übergabe mit dem Zendesk Message-Übergabeprotokoll. Weitere Informationen zum Einrichten der Chatbot-Übergabe mit Facebook Messenger finden Sie unter Einrichten der Chatbot-Übergabe mit dem Facebook Messager-Übergabeprotokoll. Bei Verwendung dieser Methode wird der Status der Konversation nicht von Facebook verwaltet. Stattdessen wird die Konversation vom Zendesk Message-Server gespeichert und verwaltet.
So wird die Chatbot-Übergabe eingerichtet:
Verknüpfen der Seite
Fügen Sie als Erstes Facebook Messenger als Kanal hinzu, um die auf Ihrer Facebook-Seite stattfindenden Konversationen in Zendesk Message zu erfassen. Weitere Informationen finden Sie unter Hinzufügen und Verwalten von Kanälen sowie unter Einrichten des Facebook-Kanals.
Sobald Sie Facebook Messenger als Kanal zum Erfassen von Konversation auf Ihrer Facebook-Seite hinzugefügt haben, können Sie mit der Chatbot-Übergabe Nachrichten an Bots übergeben, wenn Sie offline sind.
Erstellen eines Echo-Bot-Servers
Erstellen Sie anschließend Ihren Echo-Bot-Server:
- Befolgen Sie die Schritte im Schnellstart-Tutorial von Facebook, um Ihren ersten Bot in nodejs zu erstellen.
Sie brauchen nur Schritte 1-5 im Abschnitt „Bot erstellen“ auszuführen, um mit dem Einrichten der Chatbot-Übergabe fortzufahren. Weiter unten wird beschrieben, wie Sie Chatbot-Übergabefunktionen basierend auf diesem Echo-Bot erstellen.
- Merken Sie sich beim Erstellen des Bots das Zugriffstoken der Facebook-App-Seite. Es wird später beim Einrichten der Chatbot-Übergabe benötigt.
Sie sollten jetzt einen funktionsfähigen Bot-Server, eine Facebook-Seite und eine Facebook-App haben, die den Bot-Server repräsentiert, der Ihre Facebook-Seite abonniert hat.
Einrichten der Meldungen zur Chatbot-Übergabe
Richten Sie die Übergabemeldung für den Bot im Zendesk Message-Dashboard ein.
- Klicken Sie in Zendesk Message auf das Symbol Admin und dann auf den Kanal, auf dem Sie die Chatbot-Übergabe einrichten möchten.
- Wählen Sie das gewünschte Profil aus.
- Klicken Sie auf die Registerkarte Integration.
- Aktivieren Sie den Schalter im Abschnitt Chatbot-Übergabe.
- Wählen Sie im Dropdownmenü Plattform die Option Zendesk Message aus.
- Konfigurieren Sie die Übergabemeldungen:
- Geben Sie im Feld „Übernahme von Bot“ die Zeichenfolge ein, bei deren Erkennung die Konversation vom Bot in die Liste mit eingehenden Anfragen übertragen werden soll. Beispiel: mit Agent chatten.
- Geben Sie im Feld „Übergabe an Bot“ die Zeichenfolge ein, bei deren Erkennung die Konversation wieder aus der Konversationsliste an den Chatbot übergeben werden soll. Beispiel: tschüss.
- Aktivieren Sie das Kontrollkästchen Markiert die Konversation als abgeschlossen..., wenn die Phrase „Übergabe an Bot“ automatisch gesendet werden soll, sobald der Agent die Konversation als abgeschlossen markiert.
- Klicken Sie auf Speichern
Handhabung der Chatbot-Übergabemeldung im Bot-Server
- Ihre Facebook-Seite in Zendesk Message verknüpft ist. Weitere Informationen finden Sie unter Verknüpfen Ihrer Seite.
- Sie das Seitenzugriffstoken Ihrer Facebook-App haben. Diesen Token haben Sie im Schnellstart-Tutorial von Facebook erstellt. Weitere Informationen finden Sie unter Erstellen eines Echo-Bot-Servers.
- Sie die Zendesk Messenger-App-ID haben, z. B. 200646160103180.
In diesem Abschnitt finden Sie Codebeispiele, die Sie zum Ändern des Bot-Server-Codes verwenden können, damit er die Übergabe- und Übernahme-Nachrichten handhabt, die Sie im Zendesk Message-Dashboard eingerichtet haben. In diesem Beispiel ist die Übernahmephrase („Übernahme von Bot“) mit Agent chatten und die Übergabephrase („Übergabe an Bot“) tschüss.
Der Konversationsverlauf sieht aus der Sicht des Besuchers so aus:
- Wenn der Besucher eine Konversation mit Ihrer Seite beginnt, wird er vom Bot bedient.
- Nach einem kurzen Nachrichtenaustausch zwischen Bot und Besucher möchte der Besucher mit einem Agenten sprechen und sendet die Nachricht mit Agent chatten.
- Der Agent sieht die Nachricht des Besuchers als neuen Chat im Zendesk Message-Dashboard.
- Nachdem er einige Zeit mit dem Besucher gechattet hat, ist das Problem gelöst und der Agent möchte die Steuerung wieder an den Bot zurückgeben. Er tut daher Folgendes:
- Wenn im Abschnitt „Übergabe an Bot“ das Kontrollkästchen Markiert die Konversation als abgeschlossen aktiviert ist, braucht der Agent nur auf Als abgeschlossen markieren markieren und die Phrase tschüss wird automatisch an den Besucher gesendet.
- Wenn im Abschnitt „Übergabe an Bot“ das Kontrollkästchen nicht aktiviert ist, muss der Agent manuell eingeben.
- Von diesem Zeitpunkt an wird die Konversation wieder vom Bot bedient, falls der Besucher zurückkommt.
- Für jeden Besucher einen Konversationsstatus speichern, der angibt, ob der Besucher vom Bot oder von einem Agenten über das Zendesk Message-Dashboard bedient werden soll.
- Anfänglich sollte jede Konversation vom Bot bedient werden.
- Bei jeder eingehenden Nachricht muss der Bot Folgendes tun können:
- Wenn der Bot vom Besucher eine Nachricht mit der Phrase mit Agent chatten erhält, muss er den Status ändern, um anzugeben, dass die Konversation jetzt von einem Agenten bedient wird.
- Wenn der Bot von der Seite eine Nachricht mit der Phrase tschüss erhält, muss er den Status ändern, um anzugeben, dass die Konversation jetzt wieder vom Bot bedient wird.
Codebeispiel zum Initialisieren des Bot-Status
Verwenden Sie dieses Codebeispiel als Vorlage zum Initialisieren des Bot-Status auf dem Bot-Server. Weitere Informationen zum Anzeigen dieses Beispiels mit hervorgehobener Syntax finden Sie unter Anhang:. Codebeispiele am Ende dieses Beitrags.
const BOT_SERVING = "1";
const AGENT_SERVING = "2";
const HANDS_ON_PHRASE = "chat with agent";
const HANDS_OFF_PHRASE = "bye bye";
let state = BOT_SERVING;
// in a more complete implementation, the state should be specific to each visitor, so this should be a map
// however for demonstration of this example, let's assume your bot is only serving one visitor.
Codebeispiel für die Handhabung der Übergabe- und Übernahme-Nachrichten
Verwenden Sie dieses Codebeispiel als Vorlage zur Handhabung von Übergabe- und Übernahme-Nachrichten auf dem Bot-Server. Weitere Informationen zum Anzeigen dieses Beispiels mit hervorgehobener Syntax finden Sie unter Anhang:. Codebeispiele am Ende dieses Beitrags.
...
app.post('/webhook', (req, res) => {
const body = req.body;
if (body.object === "page") {
body.entry.forEach(entry => {
if (entry.messaging) {
const event = entry.messaging && entry.messaging[0];
if (event.sender && event.message) {
if (event.message.is_echo) {
if (
event.sender.id === PAGE_ID &&
event.message.text === HANDS_OFF_PHRASE
) {
console.log("Agent sent HANDS_OFF_PHRASE -> switched to BOT_SERVING");
state = BOT_SERVING;
} else {
log("Received echo message -> IGNORE");
}
} else {
handleMessage(event.sender.id, event.message);
}
}
}
});
res.status(200).send('EVENT_RECEIVED');
} else {
res.sendStatus(404);
}
});
...
function handleMessage(senderId, message) {
let response;
if (message.text) {
if (message.text.trim() === HANDS_ON_PHRASE) {
state = AGENT_SERVING;
console.log("Visitor sent HANDS_ON_PHRASE -> switched to AGENT_SERVING");
} else {
if (state === BOT_SERVING) {
console.log("Visitor message is received, bot is serving, sending respond");
sendEcho(senderId, `[bot] ${message.text}`);
} else {
console.log("Visitor message is received, agent is serving, bot is standing by");
}
}
}
}
function sendEcho(message) {
request(
{
uri: "https://graph.facebook.com/v2.6/me/messages",
qs: { access_token: ACCESS_TOKEN },
method: "POST",
json: {
recipient: {
id: senderId
},
message: { text }
}
},
(err, res, body) => {
if (err || body.error) {
log("UNABLE TO SEND", err || body.error);
} else {
log("RESPONSE SENT");
}
}
);
}
- Facebook-Schnellstart-Tutorial (ab Schritt 6 im Abschnitt „Bot Erstellen“)
- Facebook Webhook Event Reference: messaging_postbacks (Englisch)
Bestätigen der Chatbot-Übergabe
Überprüfen Sie die folgenden drei Szenarien, um sicherzustellen, dass die Chatbot-Übergabe richtig funktioniert:
- Wenn ein Benutzer eine Konversation beginnt, sehen Sie das Bot-Echo; im Zendesk Message-Dashboard erscheint keine Nachricht.
- Wenn ein Benutzer die Phrase mit Agent chatten sendet, sehen Sie die Nachricht im Zendesk Message-Dashboard.
- Wenn der Agent die Phrase tschüss sendet (entweder automatisch oder indem er die Konversation durch manuelle Eingabe der Phrase als abgeschlossen markiert) und der Benutzer eine weitere Nachricht eingibt, beginnt die Konversation wieder von vorne (siehe Schritt 1).
Wenn alle drei Fälle wie erwartet funktionieren, haben Sie die Chatbot-Übergabe für Zendesk Message erfolgreich implementiert.
Anhang: Codebeispiele
In diesem Abschnitt sind die oben erwähnten Codebeispiele mit hervorgehobener Syntax aufgeführt.
Codebeispiel zum Initialisieren des Bot-Status
const BOT_SERVING = "1"; const AGENT_SERVING = "2"; const HANDS_ON_PHRASE = "mit Agent chatten"; const HANDS_OFF_PHRASE = "tschüss"; let state = BOT_SERVING; // in a more complete implementation, the state should be specific to each visitor, so this should be a map // however for demonstration of this example, let's assume your bot is only serving one visitor.
Codebeispiel für die Handhabung der Übergabe- und Übernahme-Nachrichten
... app.post('/webhook', (req, res) => { const body = req.body; if (body.object === "page") { body.entry.forEach(entry => { if (entry.messaging) { const event = entry.messaging && entry.messaging[0]; if (event.sender && event.message) { if (event.message.is_echo) { if ( event.sender.id === PAGE_ID && event.message.text === HANDS_OFF_PHRASE ) { console.log("Agent sent HANDS_OFF_PHRASE -> switched to BOT_SERVING"); state = BOT_SERVING; } else { log("Received echo message -> IGNORE"); } } else { handleMessage(event.sender.id, event.message); } } } }); res.status(200).send('EVENT_RECEIVED'); } else { res.sendStatus(404); } }); ... function handleMessage(senderId, message) { let response; if (message.text) { if (message.text.trim() === HANDS_ON_PHRASE) { state = AGENT_SERVING; console.log("Visitor sent HANDS_ON_PHRASE -> switched to AGENT_SERVING"); } else { if (state === BOT_SERVING) { console.log("Visitor message is received, bot is serving, sending respond"); sendEcho(senderId, `[bot] ${message.text}`); } else { console.log("Visitor message is received, agent is serving, bot is standing by"); } } } } function sendEcho(message) { request( { uri: "https://graph.facebook.com/v2.6/me/messages", qs: { access_token: ACCESS_TOKEN }, method: "POST", json: { recipient: { id: senderId }, message: { text } } }, (err, res, body) => { if (err || body.error) { log("UNABLE TO SEND", err || body.error); } else { log("RESPONSE SENT"); } } ); }
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.