Zum Hauptinhalt gehen

Artikel aktualisiert: 15. November 2021

Sparkcentral CRM-Integration

Durch die Integration Ihres CRM können Sie:

  • Rufen Sie Kundenkontaktdaten über die offene RESTful-API aus allen CRM- oder Business-Apps wie Reservierungssystemen, Transaktionsinformationsplattformen usw. ein.
  • Geben Sie den Agenten die Kundeninformationen, die sie benötigen, um die Lösungen und die Zeit für die Reaktion zu beschleunigen, ohne zum CRM wechseln zu müssen, um Kundeninformationen zu erhalten.
  • Identifizieren und authentifizieren Sie einen Kunden und lösen Sie schnell die am häufigsten gestellten Fragen.
  • Behalten Sie das CRM als Quelle der Wahrheit bei.
  • Stellen Sie Agenten einen direkten Link zum Kundenprofil in CRM bereit.

Integrieren Sie das CRM

Um eine Verbindung mit dem CRM herzustellen, müssen Sie ein Kontaktattribut erstellen:

  • Gehen Sie zu Einstellungen, erweitern Sie den Arbeitsbereich für Agenten, wählen Sie Kontaktattribute aus, und wählen Sie dann Attribut hinzufügen aus.
  • Stellen Sie sicher, dass Sie von CRM verwaltet auswählen und einen korrekten eindeutigen Identifikator festlegen.

Weitere Informationen finden Sie unter Sparkcentral Kontaktattribute.

Verwalten Sie das CRM

Gehen Sie zu Einstellungen, erweitern Sie &Integrations-APIs, und wählen Sie dann CRM aus.

Nachschlage-URL

Um Daten von Ihrem CRM in Sparkcentral zu ziehen, müssen Sie einen POST-Endpunkt implementieren, der eine JSON-Anfrage akzeptiert und eine JSON-Antwort zurückgibt. Die Anfrage enthält die Lookup-Attribute, und die Antwort sollte die Kontaktdaten aus Ihrem CRM enthalten. Jede Anfrage enthält auch eine X-Sparkcentral-Signatur in ihren Headern, mit der Sie überprüfen können, ob der Anruf von Sparkcentral stammt.

Nachdem dieser Endpunkt implementiert wurde, konfigurieren Sie ihn als Lookup-URL auf der CRM-Seite. Wenn die Lookup-URL konfiguriert wurde, erhalten Sie einen geheimen Schlüssel, mit dem Sie dieselbe Signatur wie in X-Sparkcentral-Signature berechnen können. Dies bestätigt, dass die Anfrage von Sparkcentral stammt.

Behandeln Sie die Anfrage

Wenn der Endpunkt in Ihrem System bereit ist, in Sparkcentral konfiguriert ist und ein oder mehrere Suchattribute identifiziert wurden, können Sie eine Anfrage über die Schaltfläche Suchen in der Konversationsansicht stellen. So würde die Anfrage aussehen:

Die Signatur wird mit dem HMAC-SHA256-Algorithmus unter Verwendung des Shared Secret und des Anforderungstextes generiert. Berechnen Sie die Signatur mit Ihrem Geheimnis und vergleichen Sie sie mit der angegebenen Signatur. Sowohl der geheime Schlüssel, den Sie erhalten haben, als auch die Signatur sind als Hexadezimalzeichenfolgen codiert. Stellen Sie sicher, dass Sie das Shared Secret von seiner Hexadezimaldarstellung in sein Binärformat konvertieren, bevor Sie es verwenden. Die meisten Sprachen verfügen über Bibliotheken, um diese Signatur zu überprüfen. So sieht es beispielsweise in JavaScript aus:

Kopieren
const crypto = require ("crypto"); 
const SparkCentralSecret ="... "; //teile nicht!
const ExpectedSignature = request.headers ["X-Sparkcentral-Signatur"];
const ActualSignature = crypto
.createHMac ("sha256", Buffer.from (SparkCentralSecret," Hex"))
.update (request.body," utf-8")
.digest ("Hex ");
wenn (ActualSignature! == ExpectedSignature){
throw new createError.Unauthorized("X-Sparkcentral-Signature wrong");
}
console.log (json.parse (request.body) .email);

Nachdem Sie die Suche in Ihrem System durchgeführt haben, geben Sie Attribute als JSON-Antwort an Sparkcentral zurück. Die Schlüssel im Attribut-Objekt entsprechen den Aliasen, die zuvor in Sparkcentral hinzugefügt wurden. Wenn ein von CRM verwaltetes Attribut im Objekt fehlt oder der Schlüssel einen Nullwert hat, wird sein Wert in Sparkcentral gelöscht. Sparkcentral erwartet die Antwort in diesem Format:

Kopieren
Antwort 200 (Anwendung/json) 
{
"AutoConfirm": false,
"Attribute":{
"email": "fj@example.com",
"id": "98765432",
"first_name": "Fred",
"last_name": "Jones",
"last_order_number": null
}
}

Bestätigen Sie Ihre Attribute

Die in der Antwort zurückgesendeten CRM-Attribute müssen auf eine von zwei Arten bestätigt werden, bevor sie in Sparkcentral gespeichert werden:

  • Wählen Sie Bestätigen aus, wenn die CRM-Attribute nach der Nachschlageanforderung in Sparkcentral angezeigt werden.
  • Fügen Sie der Antwort ein AutoConfirm-Feld hinzu:
Kopieren
Antwort 200 (Anwendung/json) 
{
"AutoConfirm": true,
"attribute":{
"email": "fj@example.com",
"id": "98765432",
"first_name": "Fred",
"last_name": "Jones"
}
}

Das Feld AutoConfirm weist Sparkcentral an, die Attribute automatisch zu speichern, ohne die Schaltfläche Bestätigen verwenden zu müssen.

Benachrichtigungs-URL

Wenn Sie Ihre CRM-verwalteten Kontaktattribute senden, überprüft Sparkcentral eine gewisse Überprüfung der Antwort. Um Validierungsfehler zu sehen, können Sie Benachrichtigungen von Sparkcentral an Ihr System senden. Sie müssen einen POST-Endpunkt angeben, der einen JSON-Anforderungstext akzeptiert.

Behandeln Sie die Anfrage

Wenn Validierungsfehler auftreten, sendet Sparkcentral eine Anfrage an die konfigurierte Benachrichtigungs-URL. Eine Anfrage sieht so aus:

Kopieren
{
"timestamp": "2019-01-30T15:49:10.630397Z",
"version": 1,
"eventType": "DATA_IMPORT_ERROR",
"messages": [
"testMessage1 key:testKey1 value:testValue1",
"testMessage2 key:testKey2 value:testValue2"
]
}

Verwenden Sie Ihr Geheimnis, um die X-Sparkcentral-Signatur auf die gleiche Weise zu überprüfen wie beim Nachschlagen und Rückschreiben. Die Anfrage enthält diese beiden Felder:

  • EventType
  • messages — ein Array expliziter Fehlermeldungen

Hier sind die aktuellen Ereignistypen, die von Sparkcentral gesendet werden können.

von Sparkcentral gesehene Ereignistypen

Event-Typ

Beschreibung

DATA_IMPORT_ERROR

Beim Abrufen von Daten aus dem CRM nach Sparkcentral ist ein Fehler aufgetreten

Die Antwort auf diese Anfrage kann 204 sein. Sparkcentral erwartet nichts im Reaktionstext.

URL zurückschreiben

Sie können benachrichtigt werden, wenn eine Konversation in Sparkcentral stattgefunden hat oder ein Agent eine aktuelle Konversation auf den Status „Ausstehend“ setzt. Auf diese Weise können Sie Konversationsdetails in Ihrem bestehenden CRM-System speichern. Weitere Anwendungsfälle umfassen das Auslösen von CSAT-Umfragen, die Fallerstellung und erweiterte Kundeneinblicke aus Social-Media-Profilen.

  • Um Daten von Sparkcentral in Ihr CRM zu übertragen, müssen Sie einen POST-Endpunkt implementieren, der eine JSON-Anfrage akzeptiert und eine JSON-Antwort zurückgibt. Die Anforderung enthält Rückschreiben-Nutzlast, und der Statuscode der Antwort stellt Ihre Fähigkeit dar, die Nutzlast zu analysieren und die Fähigkeit des CRM, die Daten aufzunehmen. Jede Anfrage enthält auch eine X-Sparkcentral-Signatur in ihren Headern, mit der Sie überprüfen können, ob der Anruf von Sparkcentral stammt.
  • Konfigurieren Sie den Endpunkt als Write Back URL auf der CRM-Seite (gehen Sie zu Einstellungen, erweitern Sie Integrations-APIs, und wählen Sie dann CRM aus). Wenn die Write Back URL konfiguriert wurde, erhalten Sie einen geheimen Schlüssel, mit dem Sie dieselbe Signatur wie in X-Sparkcentral-Signature berechnen können. Dadurch wird bestätigt, dass die Anfrage von Sparkcentral stammt.

Behandeln Sie die Anfrage

Wenn der Endpunkt in Ihrem System bereit und in Sparkcentral konfiguriert ist und relevante Ereignisse in Sparkcentral auftreten, werden Anfragen an den konfigurierten Endpunkt gesendet. Alle dekodierten Write Back-Nutzlasten haben die folgenden Felder:

  • type: Eine Zeichenfolge, die definiert, welche Art von Rückschreibanforderung verarbeitet wird. Wird verwendet, um die Struktur des Datenfeldes vorzuschlagen.
  • version: Eine Nummer, die die Version des Anforderungstyps bezeichnet. Wird verwendet, um Änderungen an der Datenfeldstruktur zu markieren.
  • idempotency key: Eine Zeichenfolge, die jedes Ereignis eindeutig identifiziert, das zurückgeschrieben werden soll, um sicherzustellen, dass jede Anforderung nur einmal verarbeitet wird.
  • data: Ein Objekt, das strukturierte Daten für den spezifischen Typ des Rückschreibens enthält. Ein Ereignis vom Typ CONVERSATION_RESOLVED enthält beispielsweise Felder wie Medium, Kanal, Nachrichten, * Notizen, Themen, ContactProfile*, Attribute, * und Agent.

Die Anfrage enthält auch eine X-Sparkcentral-Signatur, die Sie auf die gleiche Weise wie bei Suchvorgängen überprüfen können.

* Gilt für alle Medien außer Twitter. Twitter-Handle, Tweets, Direktnachrichten-Transkripte und Twitter-Kontaktattribute (wie Twitter-Name und Anzahl der Follower) werden gemäß den Datenschutzrichtlinien von Twitter nicht in der Nutzlast gesendet.

Ereignisse CONVERSATION_RESOLVED und CONVERSATION_SET_TO_PENDING

Ereignisse mit einem Typ „CONVERSATION_RESOLVED“ oder „CONVERSATION_SET_TO_PENDING“ haben die folgende Datenstruktur:

Kopieren
{
"type":" CONVERSATION_RESOLVED",
"Version ": 1,
"Daten": {
"medium":{
"id": "twit"
},
"channel":{
"id": "0-019a0b43ad3-000-471aa28a",
"name": "twitter support channel"
},
"contactProfile":{
"id": "0-01975d67fca-324-0a6a2cdb",
"mediumContactProfileId": "3596363240",
"primaryIdentifier": "hchavez016",
"secondaryIdentifier": "Helen",
"pictureUrl": "https://pbs.twimg.com/profile_images/645594530432711841/11icMBd__normal.png"
},
"Unterhaltung":{
"id": "0-019a0f586a0-000-8506e8d2",
"createdAt": "2018-06-28T00:17:07+00:00",
"previousStatus": "new",
"currentStatus": "resolved"
},
"StatusUpdateDat":" 2018-06-28T 00:17:12 + 00:00",
"StatusUpdatedGrund":" AgentResolved",
"agent":{
"id": "987654",
"firstName": "Jane",
"lastName": "Smith",
"email": "test@email.com"
},
"contactatTributes": [
{
"attribute": "email",
"value": "contact@email.com",
"source": "CRM_CONFIRMED"
},
{
"attribute": "test",
"value": "contact2@gmail.com",
"source": "CRM_UNCONFIRMED"
},
{
"attribute": "rewards-number",
"value": "11111111",
"source": "AGENT"
}
],
"Nachrichten": [
{
"id": "cbag7408-b537-11e9-abb9-b1e2e0e67a09",
"direction": "INBOUND",
"text": "Can you help me?"
},
{
"id": "abce7408-b537-11e9-bcb9-b1e2e0e67a09",
"direction": "OUTBOUND",
"text": "Of course, what do you need assistance with?"
}
],
"notes": [
{
"id": "8080a48b-3c70-11e1-8931-1e8999d73ad2",
"text": "Here's a note on the conversation!",
"creationUser": "0-019bd608cfc-001-0c6a2f5b",
"creationTimestamp": "2018-06-28T00:17:09+00:00"
}
],
"Themen" : [
{
"id": "aa33389d-8a6a-11e8-b0d0-61f12b43ea29",
"name": "Redeem Rewards"
},
{
"id": "ee089cc2-8a6a-11e8-b0d0-942d249592dc",
"name": "Account Rewards"
}
]
}
}

Schreiben Sie zurück versuchen

Wenn die Rückschreibanforderung ein Timeout hat oder der Endpunkt einen Statuscode für nicht erfolgreich (2XX) zurückgibt, wird Sparkcentral es erneut mit exponentiellen Backoffs versuchen. Die Anfrage wird mit einer Verzögerung von 1, 2, 4, 8, 16 und 32 Stunden nach jeder Wiederholung (insgesamt 6 Anfragen) erneut gesendet, solange die Anfrage weiterhin nicht erfolgreich ist. Wenn die Anfrage nach diesem Zeitraum immer noch nicht erfolgreich war, speichern wir die fehlgeschlagenen Anforderungsdetails zur späteren Bezugnahme. Wir empfehlen Ihnen, die Endpunktprotokolle regelmäßig zu überprüfen, um sicherzustellen, dass Rückschreibanforderungen beim ersten Mal ordnungsgemäß verarbeitet werden. Um zwischen eindeutigen Ereignissen zu unterscheiden, erhält jede Anfrage einen Idempotenzschlüssel.

Idempotenz-Key

Die Rückschreibanfragen von Sparkcentral verwenden einen Idempotenzschlüssel, der es dem Rückschreiben-Endpunkt ermöglicht, sicherzustellen, dass er jede Anfrage einmal verarbeitet. Dieser Schlüssel hilft, wenn Anfragen während des Wiederholungszeitplans mehrmals gesendet werden, sodass der Endpunkt Anfragen idempotent bearbeiten kann. Der Schlüssel ist pro Anfrage eindeutig.

Benachrichtigungs-URL

Wenn Sie Ihre CRM-verwalteten Kontaktattribute senden, überprüft Sparkcentral die Antwort. Um Validierungsfehler zu sehen, können Sie Benachrichtigungen von Sparkcentral an Ihr System senden. Sie müssen einen POST-Endpunkt angeben, der einen JSON-Anforderungskörper akzeptiert. Konfigurieren Sie eine Benachrichtigungs-URL auf derselben Seite, auf der Sie eine Lookup-URL konfiguriert haben (gehen Sie zu Einstellungen, erweitern Sie Integrations-APIs, und wählen Sie dann CRM aus).

Behandeln Sie die Anfrage

Wenn Validierungsfehler auftreten, sendet Sparkcentral eine Anfrage an die konfigurierte Benachrichtigungs-URL. Eine Anfrage sieht so aus:

Kopieren
{
"timestamp": "2019-01-30T15:49:10.630397Z",
"version": 1,
"eventType": "DATA_IMPORT_ERROR",
"messages": [
"testMessage1 key:testKey1 value:testValue1",
"testMessage2 key:testKey2 value:testValue2"
]
}

Verwenden Sie Ihr Geheimnis, um die X-Sparkcentral-Signatur auf die gleiche Weise zu überprüfen wie beim Nachschlagen und Zurückschreiben. Die Anfrage enthält diese beiden Felder:

  • EventType
  • messages — ein Array expliziter Fehlermeldungen

Hier sind die aktuellen Ereignistypen, die von Sparkcentral gesendet werden können.

von Sparkcentral gesendete Ereignistypen
Event-Typ Beschreibung
DATA_IMPORT_ERROR Beim Abrufen von Daten aus dem CRM nach Sparkcentral ist ein Fehler aufgetreten

Die Antwort auf diese Anfrage kann 204 sein. Sparkcentral erwartet nichts im Reaktionstext.

Andere Aktionen

Aktualisieren

Mit der Schaltfläche Aktualisieren in der Konversationsansicht werden verwaltete Attribute erneut aus dem CRM abgerufen. Da diese Attribute zuvor bestätigt wurden, ist der Bestätigungsschritt nicht erforderlich.

Verknüpfung aufheben

Die Schaltfläche Link aufheben in der Konversationsansicht entfernt CRM-verwaltete Attribute aus Sparkcentral.

Bestätigen

Die Schaltfläche Bestätigen speichert die zugehörigen validierten Informationen aus dem CRM in der Datenbank von Sparkcentral.

Klar

Die Schaltfläche Löschen setzt die Daten zurück, die vom Lookup-Endpunkt abgerufen wurden.