Frage
Ich möchte das native Verhalten des Web Widgets (Classic) mithilfe von JavaScript-APIs ändern. Ich habe das Help Center durchgelesen und viele verschiedene Implementierungen gefunden. Wie kann ich diese verschiedenen Web Widget (Classic) API-Workflows kombinieren?
Antwort
Das Wichtigste, was Sie beachten sollten, ist, wann die Widget-Einstellungen angewendet werden sollen. Einige Workflows müssen immer dann ausgeführt werden, wenn eine Abteilung aktualisiert wird, während andere ausgeführt werden müssen, wenn das Widget zum ersten Mal eine Verbindung herstellt oder erneut verbindet. Dies wird veranschaulicht mit dieses vereinfachte Beispiel für die Einstellung der CRM -Abteilung:
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=ACCOUNT_KEY"> </script>
<script>
// first hide the widget on page load
zE('webWidget', 'hide');
// whenever an unread message appears unhide and open the widget
zE('webWidget:on', 'chat:unreadMessages', function(number) {
zE('webWidget', 'show');
zE('webWidget', 'open');
});
// this callback runs whenever chat first connects (or reconnects)
zE('webWidget:on', 'chat:connected', function() {
// put any code you only want run once here
});
// this callback runs whenever a department status changes
zE('webWidget:on', 'chat:departmentStatus', function(dept) {
// only set the widget online for chat if this department was online
if (dept.name === 'CRM' && dept.status === 'online') {
// apply the chat widget settings
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
departments: {
enabled: [''],
select: 'CRM'
},
suppress: false
}
}
});
} else if (dept.name === 'CRM' && dept.status !== 'online') {
// or suppress chat (optional: apply contact form settings here)
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
suppress: true
}
}
});
}
});
</script>
Das obige Skript enthält einige Dinge, die es wert sind, besprochen zu werden. Die anfänglichen Schritte des Ausblendens des Widgets und des Anzeigens, wenn eine ungelesene Nachricht eingeht, könnten vollständig entfallen, ohne dass sich die restlichen Funktionen des Skripts ändern würden. Da sie sofort nach dem Laden des Widgets verwendet werden, wurden sie oben im Skript platziert. Dies ist nicht unbedingt erforderlich.
Als Nächstes sollten Sie beachten, dass einige angepasste Workflows einen updateSettings-API-Block in einen chat:connected -Callback platzieren, Sie ihn aber auch in einen chat:departmentStatus einfügen können nach einer Sitzung mit abgelaufener Zeit). Verwenden Sie daher daschat:connected
API speziell für Befehle, die nur einmal ausgeführt werden sollen, und diechat:departmentStatus
API für Befehle, die ausgeführt werden sollen, wenn sich die angegebene Abteilung nach dem Laden der Seite ändert.
Weitere Informationen zu den verschiedenen Web Widget (Classic) -API-Workflows finden Sie in den folgenden Beiträgen:
- Kann ich das Web Widget (Classic) so konfigurieren, dass Chat nur dann auf meiner Webseite angezeigt wird, wenn eine bestimmte Abteilung online ist?
- Kann ich die Abteilung erneut bewerben, wenn ein Chat-Besucher aufgrund einer Zeitüberschreitung wieder eine Verbindung herstellt?
- Wie kann ich sicherstellen, dass das Pre-Chat-Formular dem Besucher angezeigt wird, wenn beim Timeout die Verbindung wiederherstellt wird?
Hinweis zur Übersetzung: Dieser Beitrag wurde mit automatischer Übersetzungssoftware übersetzt, um dem Leser ein grundlegendes Verständnis des Inhalts zu vermitteln. Trotz angemessener Bemühungen, eine akkurate Übersetzung bereitzustellen, kann Zendesk keine Garantie für die Genauigkeit übernehmen.
Sollten in Bezug auf die Genauigkeit der Informationen im übersetzten Beitrag Fragen auftreten, beziehen Sie sich bitte auf die englische Version des Beitrags, die als offizielle Version gilt.
0 Kommentare