Trasmetti informazioni cliente a chat attiva
Quando la registrazione delle conversazioni è abilitata per uno skill, passa automaticamente l'intera cronologia delle chat a Oracle B2C Service. Oltre alla cronologia delle chat, puoi anche inviare alcune informazioni specifiche sul cliente.
- ID incidente
- Invia chat alle informazioni sui clienti: le competenze possono passare le seguenti informazioni sui clienti chat a Oracle B2C Service.
- Indirizzo di posta elettronica
- Nome
- Cognome
- Contatto
- Organizzazione
- Categoria
- Product
Lo skill utilizza i valori del profilo per popolare e inviare automaticamente questi campi cliente chat. Non è necessario eseguire alcuna operazione per impostare i seguenti valori:
- Indirizzo di posta elettronica
- Nome
- Cognome
- Campi personalizzati incidente: è possibile passare i valori per qualsiasi campo personalizzato di Oracle B2C Service di tipo Incidente.
Per ulteriori informazioni sui campi personalizzati, vedere Panoramica dei campi personalizzati in Uso di Oracle B2C Service.
Se si utilizza un canale di integrazione agente creato prima della versione 20.1 o se il canale si connette a un'istanza di Oracle B2C Service precedente alla versione 19A, è possibile anche passare le informazioni sull'interfaccia. Con i canali creati nella versione 20.1 e successive e connessi a Oracle B2C Service 19A e versioni successive, è possibile includere l'ID interfaccia nell'URL del canale.
Per inviare le informazioni sul cliente all'agente reale, passare una mappa nella proprietà Proprietà personalizzate del componente Integrazione agente. Ecco la struttura di primo livello della mappa:
incidentID: # type int
customerInformation: # chat customer information object
customFields: # incident custom fields object
${mapVariableName.value}
Vedere Assemblaggio dell'oggetto proprietà personalizzate per un esempio di assemblaggio delle informazioni sul cliente per l'invio dell'agente reale.
La proprietà incidentID
È possibile passare un ID incidente all'agente reale aggiungendo una proprietà incidentID
alla mappa Proprietà personalizzate.
Suggerimento
Se si desidera associare una richiesta di chat a un caso esistente, è possibile creare un componente personalizzato per recuperareincidentId
inviando una richiesta REST come nell'esempio riportato di seguito. Questa richiesta REST recupera l'incidente più recente per il contatto con un indirizzo e-mail corrispondente.https://<URL>/services/rest/connect/latest/incidents?q=primaryContact.ParentContact.Emails.EmailList.Address like 'email@gmail.com'&orderBy=createdTime:desc&limit=1
Il corpo della risposta contiene un collegamento href
che contiene l'ID incidente:
{
"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"
}
]
}
],
Per ulteriori informazioni sui componenti personalizzati, vedere Integrazione backend. Per ulteriori informazioni sulle API REST di Oracle B2C Service, vedere API REST per Oracle B2C Service.
Oggetto customerInformation standard
In questa sezione viene descritto l'oggetto customerInformation
per le competenze che utilizzano un canale di integrazione agente creato nella versione 20.01 o successiva e che si connette a Oracle B2C Service versione 19A o successiva.
È possibile utilizzare l'oggetto customerInformation
nella mappa Proprietà personalizzate per passare le seguenti informazioni sui clienti della chat:
- incidentID:
int
. -
eMailAddress:
string
. Massimo 80 caratteri. La competenza imposta automaticamente questo valore dalle proprietà.profile
corrispondenti (descritte in Variabili ambito profilo per contesto utente) e lo passa a Oracle B2C Service. -
firstName:
string
. Massimo 80 caratteri. La competenza imposta automaticamente questo valore dalle proprietà.profile
corrispondenti (descritte in Variabili ambito profilo per contesto utente) e lo passa a Oracle B2C Service. -
lastName:
string
. Massimo 80 caratteri. La competenza imposta automaticamente questo valore dalle proprietà.profile
corrispondenti (descritte in Variabili ambito profilo per contesto utente) e lo passa a Oracle B2C Service. -
contactID: passare un valore di tipo
int
nella sottoproprietàid
. -
organizationID: passare un valore di tipo
int
nella sottoproprietàid
. -
productID: passare un valore di tipo
int
nella sottoproprietàid
. -
categoryID: passare un valore di tipo
int
nella sottoproprietàid
.
Suggerimento
È possibile utilizzare l'API REST di Oracle B2C Service per visualizzare i valori validi per i campi di informazioni sui clienti. Ad esempio, questa richiesta GET elenca le categorie: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>'
Oggetto customerInformation precedente
In questa sezione viene descritto l'oggetto customerInformation
per le competenze che utilizzano un canale di integrazione agente creato prima della release 20.01 o un canale che si connette a un'istanza di Oracle B2C Service precedente alla release 19A.
L'oggetto customerInformation
viene utilizzato nella mappa Proprietà personalizzate per passare le informazioni sui clienti della chat, ad esempio ID interfaccia, ID contatto o ID categoria. L'oggetto customerInformation
può contenere i campi definiti nella sezione Chat Customer Information
nel WSDL di Oracle B2C Service all'indirizzo http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server
.
Per gli oggetti, modificare il carattere iniziale nel nome in lettere minuscole e i nomi dei campi semplici in lettere minuscole.
Se non si passa l'oggetto interfaceID
, la competenza utilizza il valore predefinito id:{id: 1}
. Tenere presente che se l'interfaccia non è abilitata per la chat, l'handshake di avvio non riuscirà. È possibile utilizzare l'Assistente alla configurazione di Oracle B2C Service, a cui si accede da My Services, per verificare se un'interfaccia è abilitata per la chat.
Sebbene sia possibile definire i campi EMailAddress
, FirstName
e LastName
descritti nella sezione Informazioni cliente chat di WSDL, la competenza imposta automaticamente questi valori dalle proprietà .profile
corrispondenti (descritte in Variabili ambito profilo per contesto utente).
Suggerimento
È possibile utilizzare l'API REST di Oracle B2C Service per visualizzare i valori validi per i campi di informazioni sui clienti. Ad esempio, questa richiesta GET elenca gli ID e i nomi dell'interfaccia: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>'
Questa richiesta GET elenca le categorie:
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>'
Come accennato in precedenza, la struttura della mappa customerInformation
deve essere conforme alla struttura Chat Customer Information
mostrata nel WSDL al seguente indirizzo:
http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server
Ecco un estratto dal 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>
Alcuni oggetti sono di tipo rnccm:ID
, definito nell'estratto successivo. Si noti che l'oggetto contiene un campo id
di tipo long.
<xs:element name="ID" type="ID"/>
<xs:complexType name="ID">
<xs:attribute name="id" type="xs:long" use="optional"/>
</xs:complexType>
InterfaceID
è di tipo rnccm:NamedID
. Si noti che questo oggetto può contenere un ID (lungo), un Nome (stringa) o entrambi.
<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>
Il contenitore è diverso tra il WSDL e la mappa Proprietà personalizzate. Nella mappa, la prima lettera per un nome oggetto è minuscola (caso Pascal). Ad esempio, ProductID
nel WSDL sarebbe productID
per l'oggetto mappa. I nomi dei campi semplici sono tutti minuscoli (ad esempio, Name
diventa name
).
Oggetto customFields standard
In questa sezione viene descritto l'oggetto customFields
per le competenze che utilizzano un canale di integrazione agente creato nella versione 20.01 o successiva e che si connette a Oracle B2C Service versione 19A o successiva.
L'oggetto customFields
viene utilizzato nella mappa Proprietà personalizzate per passare i valori per qualsiasi campo personalizzato di Oracle B2C Service di tipo Incidente.
L'oggetto customFields
è un array di mappe che contengono le proprietà riportate di seguito.
-
Campi semplici:
-
name:
Il nome della colonna del campo (in minuscolo) preceduto dac$
. -
type:
I valori consentiti sono BOOLEAN, DATE, DATETIME, INTEGER, LONG, STRING e DECIMAL. -
value:
Il valore del campo.
-
-
Campo menu:
-
name:
Il nome della colonna del campo (in minuscolo) preceduto dac$
. -
value:
È possibile impostare il valore su ID campo o testo della voce di menu. Si noti che questo oggetto non dispone di una proprietàtype
.Suggerimento
Per trovare l'ID per una voce di menu, aprire la pagina dei dettagli del campo personalizzato dalla console del servizio desktop di Oracle B2C Service. Passare il puntatore del mouse su una voce di menu e attendere alcuni secondi. La descrizione comandi verrà visualizzata e mostrerà l'ID per l'elemento.
-
Di seguito è riportato un valore di esempio per l'oggetto.
[
{
"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"
}
]
Suggerimento
È possibile inviare la seguente richiesta GET, che utilizza RightNow Object Query (ROQL), per ottenere un elenco dei nomi di colonna: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>'
Per ottenere i valori validi per un campo personalizzato, inviare una richiesta GET che utilizzi RightNow Object Query (ROQL) come riportato di seguito.
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>'
Oggetto customFields precedente
In questa sezione viene descritto l'oggetto customFields
per le competenze che utilizzano un canale di integrazione agente creato prima della release 20.01 o un canale che si connette a un'istanza di Oracle B2C Service precedente alla release 19A.
L'oggetto customFields
viene utilizzato nella mappa Proprietà personalizzate per passare i valori per qualsiasi campo personalizzato di Oracle B2C Service di tipo Incidente.
L'oggetto customFields
è un array di mappe che contengono le proprietà name
, dataType
e dataValue
. Il valore della proprietà name
è il nome della colonna minuscola del campo preceduto da c$
.
Di seguito è riportato un valore di esempio per l'oggetto.
[
{
"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"
}
}
]
Suggerimento
È possibile inviare la seguente richiesta GET, che utilizza RightNow Object Query (ROQL), per ottenere un elenco dei nomi di colonna: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>'
Per ottenere i valori validi per un campo personalizzato, inviare una richiesta GET che utilizzi RightNow Object Query (ROQL) come riportato di seguito.
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>'
La definizione GenericField
nel WSDL di Oracle B2C Service all'indirizzo http://<sitename.domain>/services/soap/connect/chat_soap?wsdl=server
descrive la struttura dataType
e 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"/>
Analogamente ai campi customerInformation
, lo stesso involucro si applica alle controparti mappa Proprietà personalizzate (ad esempio, il carattere DataValue
del WSDL è dataValue
nella mappa).
Assembla oggetto proprietà personalizzate
Esistono molti approcci che è possibile utilizzare per creare l'oggetto Proprietà personalizzate. I passaggi seguenti mostrano come farlo creando una variabile separata per ogni gruppo di proprietà e quindi consolidandole in una mappa.
- Dichiarare le variabili per le parti che si desidera includere nell'oggetto Proprietà personalizzate:
- Se si desidera includere l'ID incidente nelle proprietà personalizzate, definire una variabile di tipo
Integer
per l'ID incidente. In questo esempio lo chiameremocustomerTicketId
. - Se si desidera includere qualsiasi proprietà
customerInformation
nelle proprietà personalizzate, definire una variabile di tipoList
per contenere queste proprietà. In questo esempio lo chiameremocustInfo
. - Se si desidera includere una qualsiasi delle proprietà
customFields
nelle proprietà personalizzate, definire una variabile di tipoMap
per contenere queste proprietà. In questo esempio lo chiameremocustFields
.
Per dichiarare le variabili di flusso, selezionare il flusso specificato nella pagina Progettazione flusso, fare clic sulla scheda Configurazione e fare clic su Aggiungi variabile.
- Se si desidera includere l'ID incidente nelle proprietà personalizzate, definire una variabile di tipo
- Nei componenti Imposta variabile, assegnare valori alle variabili create.
- Per
customerTicketId
, utilizzare un valore o un'espressione che viene risolta in un numero intero. - Per
custInfo
, fornire il valore come mappa JSON simile al seguente:{ "contactID" : { "id" : "${contactId}" }, "organizationID" : { "id" : "${organizationId}" }, "productID" : { "id" : "${productId}" }, "categoryID" : { "id" : "${categoryId}" } }
- Per
custFields
, fornire il valore come array JSON di oggetti simili al seguente:[ { "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" } ]
- Per
- Utilizzare un componente Imposta variabile per consolidare le variabili del passo precedente in una variabile mappa.
Ad esempio, è possibile assegnare alla variabile il nome
liveChatInfo
e il seguente valore:{ "incidentId" : "${customerTicketId}", "customerInformation" : "${custInfo.value}", "customFields" : "${custFields.value}" }
- Nel componente Avvio agente del flusso, impostare il valore della proprietà Proprietà personalizzate sul valore della variabile mappa consolidata, ad esempio
${liveChatInfo.value}
.