Kundenticketlösung auf Kaizala
In diesem Artikel erfahren Sie, wie Sie ein Ticketverwaltungssystem für den Kundensupport auf Kaizala erhalten. Anstatt mehrere SMS zu senden, um eine Aktualisierung des Tickets status zu senden, könnten wir einfach eine umfangreiche Karte haben, die das Ticket status bereitstellt. Und wenn es eine Änderung in status gibt, könnte die Karte aktualisiert werden, um die neuesten status widerzuspiegeln.
Um dies zu erreichen, sind die folgenden Schritte aufgeführt, die erforderlich wären:
1. Erstellen eines Karte mit benutzerdefinierten Chat-Karte basierend auf definierten Eigenschaften
2. Aufrufen einer API zum Senden der Karte (Szenario, in dem das Ticket ausgelöst wird)
3. Aufrufen einer API zum Aktualisieren der Karte (Szenario, in dem sich Ticket status ändert)
Erstellen von Karte mit benutzerdefinierter Chat-Karte-Ansicht
[Kaizala ermöglicht die Erweiterung der clientseitigen Funktionalität mithilfe von benutzerdefinierten Aktionen/Karten. Die Microsoft-Dokumentation zum Entwickeln einer benutzerdefinierten Aktion finden Sie hier.]
Zum Erstellen eines Karte mit benutzerdefinierten Chat-Karte müssen wir den sourceLocation-Wert des Chatbereichs Karte Ansicht in package.json definieren. Im Gegensatz zur Antwortansicht, der Erstellungsansicht oder der Ergebnis-/Zusammenfassungsansicht – die html/JS-basiert sind, verwendet der Chat-Karte ein deklaratives Schema [mehr dazu hier].
package.json
{
"id": "com.gls.xyz.care",
"schemaVersion": 1,
"displayName": "Customer Support",
"providerName": "GLS-Test",
"icon": "AppIcon.png",
"version": "1",
"minorVersion": "1",
"appModel": "AppModel.json",
"description": "Package for sending customer ticket [test]",
"dials": {
"isLocalised": false,
"isPinned": false
},
"views": {
"ChatCanvasCardView": {
"sourceLocation": "ChatCardView.json",
"showReceipts": true,
"showLikes": false,
"showComments": false,
"showExpiry": false,
"showFooter": true,
"showHeader": false,
"showFooter": false,
"isResponseEditable": false
}
}
}
ChatCardView.json
Der Chat Karte hier verfügt über vier Felder: eines hartcodiert zu "XYZ CUSTOMER CARE" und die anderen 3 Felder, die aus Eigenschaften gespeist werden: customername, ticketnumber und ticketstatus.
{
"schemaVersion":2,
"schema":{
"type":"container",
"initialHeight":300,
"layout":"vertical",
"children":[
{
"type":"text",
"paddingLeft":10,
"paddingRight":10,
"paddingTop":10,
"paddingBottom":10,
"string":"XYZ CUSTOMER CARE",
"fontSize":18,
"fontStyle":"bold",
"textColor":"#ffffff",
"backgroundColor":"#fcb72d",
"textAlignment":"center",
"maxNumberOfLines":1,
"marginBottom":10
},
{
"type":"text",
"paddingLeft":10,
"paddingRight":10,
"string":"${Form.properties[customername].value}",
"fontSize":18,
"fontStyle":"regular",
"textColor":"#000000",
"backgroundColor":"#ffffff",
"textAlignment":"left",
"maxNumberOfLines":5,
"marginBottom":10
},
{
"type":"text",
"paddingLeft":10,
"paddingRight":10,
"string":"${Form.properties[ticketnumber].value}",
"fontSize":18,
"fontStyle":"regular",
"textColor":"#000000",
"backgroundColor":"#ffffff",
"textAlignment":"left",
"maxNumberOfLines":2,
"marginBottom":10
},
{
"type":"text",
"paddingLeft":10,
"paddingRight":10,
"string":"${Form.properties[ticketstatus].value}",
"fontSize":18,
"fontStyle":"regular",
"textColor":"#000000",
"backgroundColor":"#ffffff",
"textAlignment":"left",
"maxNumberOfLines":2,
"marginBottom":10
}
]
}
}
AppModel.json
Erstellen Sie einfach ein AppModel mit dem Titel und dem leeren Fragenarray.
{
"title": "XYZ Customer Support",
"questions": []
}
Senden eines Tickets über die API
Um das Ticket über die API zu senden, verwenden wir den Aktionsendpunkt wie unten gezeigt. Beachten Sie das Abonnentenarray – da wir dieses an den jeweiligen Abonnenten senden müssen ( weitere Informationen finden Sie im Beitrag Verschieben von SMS-Benachrichtigungen nach Kaizala).
Wenn Sie diese API ausführen, erhalten Sie die referenceId und actionId. Speichern Sie diese actionId zwischen, da sie im nächsten Schritt benötigt wird. Im folgenden Beispiel haben wir die Eigenschaften customername, ticketnumber und ticketstatus auf "NAME: John Thomas", "TICKET#: 907050", "STATUS: ACTIVE" festgelegt.
Methode | POST |
---|---|
URL | {{endpoint-url}}/v1/groups/{{test-group-id}}/actions |
Anforderungstext | { id:"com.gls.xyz.care", Abonnenten:["{{subscriber-mobile-number}}"], sendToAllSubscribers:false, actionBody:{ eigenschaften:[ { name:"Customername", value:"NAME: John Thomas", type:"Text" }, { name:"ticketnumber", value:"TICKET#: 907050", type:"Text" }, { name:"ticketstatus", value:"STATUS: ACTIVE", type:"Text" } ] } } |
Aktualisieren des Ticket-status mithilfe der API
Wenn sich das Ticket status ändert, müssen wir die status auf dem gesendeten Karte aktualisieren. Hierfür verwenden wir den Endpunkt actions/<>/properties. Im folgenden Beispiel würden wir das Ticket status auf RESOLVED aktualisieren. Beachten Sie, dass die actionId die ID der Aktion ist, die im vorherigen Schritt gesendet wurde.
Methode | PUT |
---|---|
URL | {{endpoint-url}}/v1/groups/{{test-group-id}}/actions/{{actionId}} |
Anforderungstext | { { "version":-1, "updateProperties": [ { "name" : "ticketstatus", "type" : "Text", "value" : "STATUS: RESOLVED" } ] } |
Screenshots der Demo
Von der API gesendetes Ticket
Ticket nach dem Aktualisieren des status über die API
Teilen Sie das Paket hier, falls Sie ihm einen Schuss geben möchten. ( Vergessen Sie nicht, die Paket-ID vor dem Hochladen in Kaizala zu ändern, um Konflikte zu vermeiden. )
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für