Kundeninformationen an einen Livechat übergeben

Wenn das Unterhaltungslogging für einen Skill aktiviert ist, wird die gesamte Chathistorie automatisch an Oracle B2C Service übergeben. Neben der Chathistorie können Sie auch einige spezifische Kundeninformationen senden.

  • Vorfall-ID
  • Kundeninformationen des Chats: Skills können die folgenden Kundeninformationen des Chats an Oracle B2C Service übergeben.
    • E-Mail-Adresse
    • Erster Name
    • Last Name
    • Ansprechpartner
    • Unternehmen
    • Kategorie
    • Produkt

    Der Skill verwendet die Profilwerte, um diese Chatkundenfelder automatisch auszufüllen und zu senden. Sie müssen nichts tun, um die folgenden Werte festzulegen:

    • E-Mail-Adresse
    • Erster Name
    • Last Name
  • Benutzerdefinierte Vorfallsfelder: Sie können Werte für jedes benutzerdefinierte Oracle B2C Service-Feld des Typs "Vorfall" übergeben.

    Weitere Informationen zu benutzerdefinierten Feldern finden Sie unter Überblick über benutzerdefinierte Felder in Oracle B2C Service verwenden.

Hinweis

Wenn Sie einen Agent-Integrationskanal verwenden, der vor 20.1 erstellt wurde, oder wenn sich der Kanal mit einer Oracle B2C Service-Instanz vor 19A verbindet, können Sie auch Schnittstelleninformationen übergeben. Bei Kanälen, die in Version 20.1 oder höher erstellt wurden und eine Verbindung zu Oracle B2C Service 19A oder höher herstellen, nehmen Sie die Schnittstellen-ID in die URL des Channels auf.

Um Kundeninformationen an den Live-Agent zu senden, übergeben Sie eine Zuordnung in der Eigenschaft Benutzerdefinierte Eigenschaften der Agent-Integrationskomponente. Nachfolgend finden Sie die Struktur der obersten Ebene der Zuordnung:

incidentID: # type int
customerInformation: # chat customer information object
customFields: # incident custom fields object
Um die Map zu referenzieren, verwenden Sie einen Ausdruck wie:
${mapVariableName.value}

Ein Beispiel für die Zusammenstellung der Kundeninformationen zum Senden des Live-Agents finden Sie unter Benutzerdefiniertes Eigenschaftsobjekt zusammenstellen.

Die Eigenschaft incidentID

Sie können eine Vorfalls-ID an den Live-Agent übergeben, indem Sie der Zuordnung Benutzerdefinierte Eigenschaften eine Eigenschaft incidentID hinzufügen.

Tipp:

Wenn Sie eine Chatanfrage mit einem vorhandenen Vorfall verknüpfen möchten, können Sie eine benutzerdefinierte Komponente erstellen, um die incidentId abzurufen. Dazu senden Sie eine REST-Anforderung wie im folgenden Beispiel. Diese REST-Anforderung ruft den letzten Vorfall für den Kontakt mit einer übereinstimmenden E-Mail-Adresse ab.
https://<URL>/services/rest/connect/latest/incidents?q=primaryContact.ParentContact.Emails.EmailList.Address like 'email@gmail.com'&orderBy=createdTime:desc&limit=1

Der Antworttext enthält einen href-Link, der die Vorfall-ID enthält:

{
    "items": [
        {
            "id": 26302,
            "lookupName": "200116-000003",
            "createdTime": "2020-01-16T13:08:25.000Z",
            "updatedTime": "2020-01-16T20:25:21.000Z",
            "links": [
                {
                    "rel": "canonical",
                    "href": "https://<URL>/services/rest/connect/v1.4/incidents/26302"
                }
            ]
        }
    ],

Weitere Informationen zu benutzerdefinierten Komponenten finden Sie unter Backend-Integration. Weitere Informationen zu den REST-APIs für Oracle B2C Service finden Sie unter REST-API für Oracle B2C Service.

Das Standardobjekt "customerInformation"

In diesem Abschnitt wird das Objekt customerInformation für Skills beschrieben, die einen Agent-Integrationskanal verwenden, der in Version 20.01 oder höher erstellt wurde und eine Verbindung zu Oracle B2C Service Version 19A oder höher herstellt.

Sie können das Objekt customerInformation in der Map Benutzerdefinierte Eigenschaften verwenden, um die folgenden Chatkundeninformationen zu übergeben:

  • incidentID: int.
  • eMailAddress: string. maximal 80 Zeichen. Der Skill richtet diesen Wert automatisch aus den entsprechenden .profile-Eigenschaften ein (wie unter Variablen für Profilgeltungsbereich für Benutzerkontext beschrieben) und übergibt ihn an Oracle B2C Service.

  • firstName: string. maximal 80 Zeichen. Der Skill richtet diesen Wert automatisch aus den entsprechenden .profile-Eigenschaften ein (wie unter Variablen für Profilgeltungsbereich für Benutzerkontext beschrieben) und übergibt ihn an Oracle B2C Service.

  • lastName: string. maximal 80 Zeichen. Der Skill richtet diesen Wert automatisch aus den entsprechenden .profile-Eigenschaften ein (wie unter Variablen für Profilgeltungsbereich für Benutzerkontext beschrieben) und übergibt ihn an Oracle B2C Service.

  • contactID: Übergeben Sie einen Wert vom Typ int in der Untereigenschaft id.

  • organizationID: Übergeben Sie einen Wert vom Typ int in der Untereigenschaft id.

  • productID: Übergeben Sie einen Wert vom Typ int in der Untereigenschaft id.

  • categoryID: Übergeben Sie einen Wert vom Typ int in der Untereigenschaft id.

Tipp:

Mit der Oracle B2C Service-REST-API können Sie die gültigen Werte für Kundeninformationsfelder anzeigen. Diese GET-Anforderung listet beispielsweise die Kategorien auf:
curl --request GET \
--url https://<sitename.domain>/services/rest/connect/latest/serviceCategories \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Das Legacy-Objekt "customerInformation"

In diesem Abschnitt wird das Objekt customerInformation für Skills beschrieben, die einen Agent-Integrationskanal verwenden, der vor 20.01 erstellt wurde, oder einen Kanal, der eine Verbindung zu einer Oracle B2C Service-Instanz vor 19A herstellt.

Sie verwenden das Objekt customerInformation in der Zuordnung Benutzerdefinierte Eigenschaften, um Kundeninformationen des Chats zu übergeben, z.B. Schnittstellen-ID, Kontakt-ID oder Kategorie-ID. Das Objekt customerInformation kann die Felder enthalten, die im Abschnitt Chat Customer Information in der Oracle B2C Service-WSDL unter http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server definiert sind.

Ändern Sie bei Objekten das erste Zeichen im Namen in Kleinbuchstaben, und ändern Sie die Namen von einfachen Feldern durchgehend in Kleinbuchstaben.

Wenn Sie das Objekt interfaceID nicht übergeben, verwendet der Skill den Standardwert id:{id: 1}. Wenn die Schnittstelle nicht für Chats aktiviert ist, verläuft der Handshake für den Start nicht erfolgreich. Mit dem Oracle B2C Service-Konfigurationsassistenten, auf den Sie über "Meine Services" zugreifen, können Sie prüfen, ob eine Schnittstelle für den Chat aktiviert ist.

Sie können zwar die Felder EMailAddress, FirstName und LastName definieren, die im Abschnitt für die Kundeninformationen des Chats der WSDL beschrieben werden, Ihr Skill legt diese Werte jedoch automatisch aus den entsprechenden .profile-Eigenschaften fest (wie unter Profilgeltungsbereichsvariablen für Benutzerkontext beschrieben).

Tipp:

Mit der Oracle B2C Service-REST-API können Sie die gültigen Werte für Kundeninformationsfelder anzeigen. Mit der GET-Anforderung werden beispielsweise Schnittstellen-IDs und -namen aufgelistet:
curl --request GET \
--url https://<sitename.domain>/services/rest/connect/latest/siteInterfaces \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Diese GET-Anforderung listet die Kategorien auf:

curl --request GET \
--url https://<sitename.domain>/services/rest/connect/latest/serviceCategories \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Wie bereits erwähnt, muss die Struktur der Zuordnung customerInformation der Struktur der Kundeninformationen des Chats entsprechen, die in der WSDL an folgender Adresse angezeigt wird:

http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server

Nachfolgend finden Sie einen Auszug aus der WSDL:

<!--  ============================== -->
<!--    Chat Customer Information    -->
<!--  ============================== -->

<xs:complexType name="ChatCustomerInformation">
    <xs:sequence>
        <xs:element name="EMailAddress" minOccurs="0" maxOccurs="1">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="80"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>

        <xs:element name="FirstName" minOccurs="0" maxOccurs="1">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="80"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>

        <xs:element name="LastName" minOccurs="0" maxOccurs="1">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="80"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>

        <xs:element name="InterfaceID" type="rnccm:NamedID" minOccurs="1" maxOccurs="1"/>
        <xs:element name="ContactID" type="rnccm:ID" minOccurs="0" maxOccurs="1" />
        <xs:element name="OrganizationID" type="rnccm:ID" minOccurs="0" maxOccurs="1" />
        <xs:element name="Question" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="ProductID" type="rnccm:ID" minOccurs="0" maxOccurs="1"/>
        <xs:element name="CategoryID" type="rnccm:ID" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
</xs:complexType> 

Einige Objekte weisen den Typ rnccm:ID auf, der im nächsten Auszug definiert ist. Beachten Sie, dass das Objekt ein id-Feld des Typs "long" enthält.

<xs:element name="ID" type="ID"/>
<xs:complexType name="ID">
    <xs:attribute name="id" type="xs:long" use="optional"/>
</xs:complexType> 

InterfaceID hat den Typ rnccm:NamedID. Beachten Sie, dass dieses Objekt eine ID (long) und/oder einen Namen (string) enthalten kann.

<xs:element name="NamedID" type="NamedID"/>
<xs:complexType name="NamedID">
    <xs:sequence>
        <xs:element name="ID" type="ID" minOccurs="0" maxOccurs="1"/>
        <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
</xs:complexType>

Die Groß- und Kleinschreibung unterscheidet sich zwischen der WSDL und der Zuordnung Benutzerdefinierte Eigenschaften. In der Zuordnung ist der erste Buchstabe für einen Objektnamen klein geschrieben (Pascal-Kleinschreibung). Beispiel: ProductID in der WSDL wäre productID für das Zuordnungsobjekt. Die Namen einfacher Felder werden durchgängig kleiner (Beispiel: Name wird zu name).

Das Standardobjekt "customFields"

In diesem Abschnitt wird das Objekt customFields für Skills beschrieben, die einen Agent-Integrationskanal verwenden, der in Version 20.01 oder höher erstellt wurde und eine Verbindung zu Oracle B2C Service Version 19A oder höher herstellt.

Verwenden Sie das Objekt customFields in der Zuordnung Benutzerdefinierte Eigenschaften, um Werte für alle benutzerdefinierten Oracle B2C Service-Felder des Typs "Vorgang" zu übergeben.

Das Objekt customFields ist ein Array von Maps, die die folgenden Eigenschaften enthalten.

  • Einfache Felder:

    • name: Der Spaltenname des Feldes (Kleinbuchstaben) mit vorangestelltem c$.

    • type: Zulässige Werte sind BOOLEAN, DATE, DATETIME, INTEGER, LONG, STRING und DECIMAL.

    • value: Der Feldwert.

  • Menüfeld:

    • name: Der Spaltenname des Feldes (Kleinbuchstaben) mit vorangestelltem c$.

    • value: Sie können den Wert entweder auf die Feld-ID oder auf den Text der Menüoption setzen. Beachten Sie, dass dieses Objekt keine type-Eigenschaft aufweist.

      Tipp:

      Um die ID für eine Menüoption zu suchen, öffnen Sie die Detailseite des benutzerdefinierten Feldes in der Oracle B2C Service-Desktopservicekonsole. Bewegen Sie den Mauszeiger über eine Menüoption, und warten Sie einige Sekunden. Die QuickInfo wird mit der ID für dieses Element angezeigt.

Im Folgenden finden Sie einen Beispielwert für das Objekt:

[		
  {
    "name" : "c$text_field",        
    "type" : "STRING",
    "value" : "SILVER"
  },
  {
    "name" : "c$text_area",
    "type" : "STRING",
    "value" : "My package arrived but there were no contents in the box. Just bubble wrap."
  },
  {
    "name" : "c$integer",          
    "type" : "INTEGER",
    "value" : 21
  },
  {
    "name" : "c$yes_no", 
    "type" : "BOOLEAN",
    "value": 1
  },
  {
    "name" : "c$date_field",   
    "type" : "DATE",
    "value" : "2020-02-04T00:00:00+00:00" 
  },
  {
    "name" : "c$date_time",        
    "type" : "DATETIME",
    "value" : "2020-02-04T21:24:18+00:00" 
  },
  {
    "name" : "c$menu",            
    "value" : "12"
  }
]

Tipp:

Sie können die folgende GET-Anforderung senden, die RightNow Object Query (ROQL) verwendet, um eine Liste der Spaltennamen abzurufen:
curl --request GET \
--url https://<site.domain>/services/rest/connect/latest/queryResults/?query=select%20CustomFields.c.*%20from%20Incidents \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Um die gültigen Werte für ein benutzerdefiniertes Feld abzurufen, senden Sie wie folgt eine GET-Anforderung, die RightNow Object Query (ROQL) verwendet:

curl --request GET \
--url https://<site.domain>/services/rest/connect/latest/queryResults/?query=select%20CustomFields.c.skillType%20from%20Incidents%20where%20CustomFields.c.skillType%20IS%20NOT%20NULL \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Das Legacy-Objekt "customFields"

In diesem Abschnitt wird das Objekt customFields für Skills beschrieben, die einen Agent-Integrationskanal verwenden, der vor 20.01 erstellt wurde, oder einen Kanal, der eine Verbindung zu einer Oracle B2C Service-Instanz vor 19A herstellt.

Verwenden Sie das Objekt customFields in der Zuordnung Benutzerdefinierte Eigenschaften, um Werte für alle benutzerdefinierten Oracle B2C Service-Felder des Typs "Vorgang" zu übergeben.

Das Objekt customFields ist ein Array von Maps, das die Eigenschaften name, dataType und dataValue enthält. Der Wert der Eigenschaft name ist der kleingeschriebene Spaltenname des Feldes mit vorangestelltem c$.

Im Folgenden finden Sie einen Beispielwert für das Objekt:

[		
  {
    "name" : "c$da_text_field",        
    "dataType" : "STRING",
    "dataValue" : {
      "stringValue": "SILVER"
    }
  },
  {
    "name" : "c$da_text_area",
    "dataType" : "STRING",
    "dataValue" : {
      "stringValue": "This is a very long string that is more than 32 characters."
    }
  },
  {
    "name" : "c$da_integer",          
    "dataType" : "INTEGER",
    "dataValue" : {
      "integerValue" :21
    }
  },
  {
    "name" : "c$da_menu", 
    "dataType" : "NAMED_ID",
    "dataValue" : {
      "namedIDValue": {
        "name" : "Item 1"
      }
    }
  },
  {
    "name" : "c$da_is_from_skill",          
    "dataType" : "BOOLEAN",
    "dataValue" : {
      "booleanValue" : true
    }
  },
  {
    "name" : "c$da_date",   
    "dataType" : "DATE",
    "dataValue" : {
      "dateValue" : "2019-10-26"
    }
  },
  {
    "name" : "c$da_datetime",        
    "dataType" : "DATETIME",
    "dataValue" : {
      "dateTimeValue" : "2019-10-26T21:32:52"  
    }
  }
]

Tipp:

Sie können die folgende GET-Anforderung senden, die RightNow Object Query (ROQL) verwendet, um eine Liste der Spaltennamen abzurufen:
curl --request GET \
--url https://<site.domain>/services/rest/connect/latest/queryResults/?query=select%20CustomFields.c.*%20from%20Incidents \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Um die gültigen Werte für ein benutzerdefiniertes Feld abzurufen, senden Sie wie folgt eine GET-Anforderung, die RightNow Object Query (ROQL) verwendet:

curl --request GET \
--url https://<site.domain>/services/rest/connect/latest/queryResults/?query=select%20CustomFields.c.skillType%20from%20Incidents%20where%20CustomFields.c.skillType%20IS%20NOT%20NULL \
--header 'authorization: Basic <base64-encoded-username+:+password>' \
--header 'osvc-crest-application-context: <some-comment>'

Die GenericField-Definition in der Oracle B2C Service-WSDL unter http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server beschreibt die Struktur von dataType und dataValue:

<xs:element name="GenericField" type="GenericField"/>
  <xs:complexType name="GenericField">
    <xs:sequence>
      <xs:element name="DataValue" type="DataValue" minOccurs="1" maxOccurs="1" nillable="true"/>
    </xs:sequence>
  <xs:attribute name="dataType" type="DataTypeEnum" use="optional"/>
  <xs:attribute name="name" type="xs:string" use="required"/>

Wie bei den Feldern für customerInformation gilt dieselbe Groß- und Kleinschreibung für die Entsprechungen in der Zuordnung Benutzerdefinierte Eigenschaften (Beispiel: DataValue der WSDL ist dataValue in der Zuordnung).

Benutzerdefiniertes Eigenschaftsobjekt assemblieren

Es gibt viele Ansätze, mit denen Sie das Objekt Benutzerdefinierte Eigenschaften erstellen können. Die folgenden Schritte zeigen, wie Sie dies tun, indem Sie eine separate Variable für jede Gruppe von Eigenschaften erstellen und diese dann in einer Karte konsolidieren.

  1. Deklarieren Sie Variablen für die Teile, die Sie in das Objekt Benutzerdefinierte Eigenschaften aufnehmen möchten:
    • Wenn Sie die Vorfall-ID in die benutzerdefinierten Eigenschaften aufnehmen möchten, definieren Sie eine Variable vom Typ Integer für die Vorfall-ID. In diesem Beispiel nennen wir es customerTicketId.
    • Wenn Sie customerInformation-Eigenschaften in die benutzerdefinierten Eigenschaften aufnehmen möchten, definieren Sie eine Variable vom Typ List, die diese Eigenschaften enthält. In diesem Beispiel nennen wir es custInfo.
    • Wenn Sie eine der customFields-Eigenschaften in die benutzerdefinierten Eigenschaften aufnehmen möchten, definieren Sie eine Variable vom Typ Map, die diese Eigenschaften enthält. In diesem Beispiel nennen wir es custFields.

    Sie deklarieren Flussvariablen, indem Sie den angegebenen Ablauf auf der Seite "Flow Designer" wählen, auf die Registerkarte Konfiguration klicken und auf Variable hinzufügen klicken.

  2. Weisen Sie in den Komponenten "Variable festlegen" den von Ihnen erstellten Variablen Werte zu.
    • Verwenden Sie für customerTicketId einen Wert oder Ausdruck, der in eine Ganzzahl aufgelöst wird.
    • Geben Sie für custInfo den Wert als JSON-Map an, die ungefähr wie folgt aussieht:
      {
        "contactID" : {
          "id" : "${contactId}"
      	},  
        "organizationID" : {
          "id" : "${organizationId}"
      	},
        "productID" : {
          "id" : "${productId}"
      	},
        "categoryID" : {
          "id" : "${categoryId}"
      	}
      }
    • Geben Sie für custFields den Wert als JSON-Array mit Objekten an, die ungefähr wie folgt aussehen:
      [		
        {
          "name" : "c$text_field",        
          "type" : "STRING",
          "value" : "SILVER"
        },
        {
          "name" : "c$text_area",
          "type" : "STRING",
          "value" : "My package arrived but there were no contents in the box. Just bubble wrap."
        },
        {
          "name" : "c$integer",          
          "type" : "INTEGER",
          "value" : 21
        },
        {
          "name" : "c$yes_no", 
          "type" : "BOOLEAN",
          "value": 1
        },
        {
          "name" : "c$date_field",   
          "type" : "DATE",
          "value" : "2020-02-04T00:00:00+00:00" 
        },
        {
          "name" : "c$date_time",        
          "type" : "DATETIME",
          "value" : "2020-02-04T21:24:18+00:00" 
        },
        {
          "name" : "c$date_time", 
          "type" : "DATETIME",	  
          "value" : "2020-02-04T21:24:18+00:00" 
        },
        {
          "name" : "c$menu",            
          "value" : "12"
        }
      ]
  3. Mit der Komponente "Variable festlegen" können Sie die Variablen aus dem vorherigen Schritt in einer Zuordnungsvariable konsolidieren.

    Beispiel: Sie können die Variable liveChatInfo benennen und ihr den folgenden Wert zuweisen:

    {
      "incidentId" : "${customerTicketId}",
      "customerInformation" : "${custInfo.value}",
      "customFields" : "${custFields.value}"
    }
  4. Setzen Sie in der Agent-Initiierungskomponente des Ablaufs den Wert der Eigenschaft Benutzerdefinierte Eigenschaften auf den Wert der konsolidierten Zuordnungsvariable, z.B.: ${liveChatInfo.value}.