Variabili di integrazione
Scrivendo le espressioni, è possibile accedere alle variabili di integrazione, che sono variabili di contesto specifiche delle integrazioni (come le integrazioni web chat e telefono). Tutte le variabili di integrazione sono contenute nell'oggetto
JSON system_integrations, a cui puoi accedere utilizzando la seguente espressione:
${system_integrations}
L'oggetto system_integrations ha la seguente struttura:
{
"channel": {
"name": "{channel_name}",
"private": {
"user": {
"id": "{user_id}",
"phone_number": "{phone_number}",
"name": "{name}"
}
}
},
"chat": {...},
"voice_telephony": {...},
"text_messaging": {...},
"whatsapp": {...},
"slack": {...},
"facebook": {...},
"teams": {...}
}
channel
Sempre incluso. Questo oggetto contiene informazioni generali sul canale utilizzato per comunicare con l'assistente.
Proprietà
Le proprietà contenute nell'oggetto private vengono trattate come variabili private, che non sono incluse nei log.
| Nome | Immettere | Descrizione |
|---|---|---|
channel.name |
Stringa |
Il nome del canale in uso. Uno dei seguenti valori:
|
channel.private.user.id |
Stringa | L'ID dell'utente che interagisce con l'assistente tramite il canale. Questo ID è specifico per il canale e potrebbe essere diverso dall'ID utente che watsonx Assistant utilizza per scopi di fatturazione. Per ulteriori informazioni, consultare ID utente canale. |
channel.private.user.phone_number |
Stringa | Il numero di telefono associato all'utente. Impostato dalle integrazioni telefono, SMS e WhatsApp. |
channel.private.user.name |
Stringa | Il nome dell'utente che sta interagendo con l'assistente tramite il canale. Impostato dall'integrazione Microsoft Teams. |
channel.private.user.aadObjectId |
Stringa | L'ID oggetto Azure Active Directory (AAD) dell'utente che interagisce con l'assistente tramite il canale. Impostato dall'integrazione Microsoft Teams. |
JSON di esempio
"channel": {
{
"name": "Web chat",
"private": {
"user": {
"id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
}
}
}
}
ID utente canale
La proprietà channel.private.user.id, impostata dall'integrazione del canale, specifica un ID utente per il cliente specifico per il canale. L'origine di questo ID utente dipende dal canale:
| Canale | ID utente canale |
|---|---|
| Conversazione Web | L'ID utente impostato dall'istanza di chat web. Per ulteriori informazioni, vedi Gestione delle informazioni sull'identità utente nella chat web. |
| Slack | L'ID membro Slack (ad esempio, U2147483697). |
L'ID mittente Facebook (ad esempio, 4310101122439797). |
|
| Il numero di telefono del cliente. | |
| Telefono | Il numero di telefono del cliente. |
| SMS con Twilio | Il numero di telefono del cliente. |
| Team | L'ID utente dei team (ad esempio 29:1CV2T75j3QUY-mQCQcIk2...) e fornire il aadObjectId dell'utente dei team. |
chat
Incluso solo se l'integrazione della chat Web è in uso.
Proprietà
| Nome | Immettere | Descrizione |
|---|---|---|
browser_info.browser_name |
Stringa | Il nome del browser, ad esempio chrome, edge o firefox. |
browser_info.browser_version |
Stringa | La versione del browser, ad esempio 109.0.0. |
browser_info.browser_OS |
Stringa | Il sistema operativo del computer del cliente, ad esempio Mac OS. |
browser_info.language |
Stringa | Il codice della locale predefinita del browser, ad esempio en-US. |
browser_info.page_url |
Stringa | URL della pagina web in cui è incorporata la web chat, senza includere parametri di query o hashtag. |
browser_info.screen_resolution |
Stringa | L'altezza e la larghezza della finestra del browser, ad esempio width: 1440, height: 900. |
browser_info.user_agent |
Stringa | Il contenuto dell'intestazione della richiesta HTTP User-Agent. |
browser_info.client_ip_address |
Stringa | L'indirizzo IP del computer del cliente. |
browser_info.ip_address_list |
Array | Array di indirizzi IP specificati dalle intestazioni delle richieste di HTTP X-Forwarded-For. |
JSON di esempio
"chat": {
"browser_info": {
"browser_name": "chrome",
"browser_version": "109.0.0",
"browser_OS": "Mac OS",
"language": "en-US",
"page_url": "https://us-south.assistant.watson.cloud.ibm.com/crn%3Av1%3Abluemix%3Apublic%3Aconversation%3Aus-south%3Aa%2Fc41400d63d91741a749091dc63574c2c%3Ab696c1e5-7316-4fb0-a61c-664438397e91%3A%3A/assistants/e344fcfe-506c-449f-a182-ebdefe4356ad/actions/actions/custom/edit/action_28584",
"screen_resolution": "width: 1920, height: 1080",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"client_ip_address": "65.191.135.254",
"ip_address_list": [
"65.191.135.254",
" 104.99.56.143",
"10.185.27.136",
"172.30.226.64"
]
}
},
"channel": {
"name": "Web chat",
"private": {
"user": {
"id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
}
}
}
Espressioni di esempio
-
Questa espressione verifica se il cliente sta utilizzando il browser Chrome:
${system_integrations}.chat.browser_info.browser_name.equals("chrome")È possibile specificare questa espressione come valore per una variabile di sessione booleana, che è possibile utilizzare in una condizione di fase. Ad esempio, se il tuo sito web supporta solo Chrome, potresti avere un passo condizionato su questa variabile
falsee avere il seguente output:I see you aren't using the Chrome browser. Some features of our website work only on Chrome. -
Questa espressione verifica se la pagina corrente URL contiene la stringa
payment.html:${system_integrations}.chat.browser_info.page_url.contains("payment.html")È possibile utilizzare questa espressione in una condizione di fase per evitare di dire ai clienti di passare a una pagina che stanno già visualizzando. Ad esempio, in un'azione di pagamento di una fattura, è possibile che una fase sia condizionata dal fatto che questa variabile sia
falsee abbia il seguente output:First, click **Pay bill** to navigate to the bill payment page.
voice_telephony
Incluso solo se l'integrazione telefonica è in uso.
L'oggetto voice_telephony contiene entrambe le proprietà di risposta e richiesta. Le proprietà della richiesta sono valori impostati dall'integrazione telefonica e forniscono informazioni sulla chiamata. Le proprietà di risposta
sono valori di input che è possibile modificare nelle azioni per inviare dati di registrazione o per modificare le opzioni di configurazione per la chiamata.
Richiedi proprietà (impostate dall'integrazione telefonica)
Le proprietà contenute nell'oggetto private vengono trattate come variabili private, che non sono incluse nei log.
| Nome | Immettere | Descrizione |
|---|---|---|
sip_call_id |
Stringa | L'ID di chiamata SIP associato alla chiamata telefonica. |
assistant_phone_number |
Stringa | Il numero di telefono associato alla fine della chiamata watsonx Assistant. |
sip_custom_invite_headers |
Oggetto | Un array definito dall'utente di coppie chiave / valore contenenti intestazioni SIP dalla richiesta SIP INVITE. |
private.user_phone_number |
Stringa | Il numero di telefono da cui ha avuto origine la chiamata del cliente. |
private.sip_request_uri |
Stringa | L'URI della richiesta SIP in ingresso che ha avviato la chiamata telefonica. |
private.sip_from_uri |
Stringa | L'URI dall'intestazione From della richiesta SIP. |
private.sip_to_uri |
Stringa | L'URI dall'intestazione To della richiesta SIP. |
final_utterance_timeout_occurred |
Booleano | Impostare su true quando è stato raggiunto il timeout di espressione finale. Questo timeout può essere configurato inviando la proprietà final_utterance_timeout_count. |
post_response_timeout_occurred |
Booleano | Impostare su true quando è stato raggiunto il timeout di espressione finale. Questo timeout può essere configurato inviando la proprietà post_response_timeout_count. |
Esempio di richiesta JSON
"voice_telephony": {
"private":{
"user_phone_number":"+18595553456",
"sip_request_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com",
"sip_from_uri":"sips:+18565558576@twilio.com",
"sip_to_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com"
},
"sip_call_id": "Aob2-2743-5678-1234",
"assistant_phone_number":"+18885556789",
"sip_custom_invite_headers": {
"custom-header1": "123",
"custom-header2": "456"
}
}
È possibile accedere alle intestazioni SIP personalizzate utilizzando il seguente formato:
${system_integrations.voice_telephony.sip_custom_invite_headers}[<headername>]
Ad esempio,
${system_integrations.voice_telephony.sip_custom_invite_headers}["custom-header1"]
restituisce il valore 123.
Proprietà della risposta (impostate dall'assistente)
| Nome | Immettere | Descrizione |
|---|---|---|
final_utterance_timeout_count |
Numero intero | Il tempo (in millisecondi) di attesa per un'espressione finale del servizio Speech to Text. Se non viene ricevuta alcuna espressione finale prima del timeout, l'integrazione telefonica invia un messaggio all'assistente con la proprietà
final_utterance_timeout_occurred impostata su true. |
post_response_timeout_count |
Numero intero | Il tempo (in millisecondi) di attesa per una nuova espressione dopo la riproduzione dell'ultima risposta. Se non viene ricevuta alcuna espressione prima del timeout, l'integrazione telefonica invia un messaggio all'assistente che include
la proprietà post_response_timeout_occurred impostata su true. |
cdr_custom_data |
Oggetto | Un oggetto JSON contenente coppie chiave / valore da memorizzare nel record CDR per la chiamata. Ogni volta che questo oggetto viene inviato, il relativo contenuto viene unito ai dati inviati precedentemente durante la chiamata. |
turn_settings.timeout_count |
Numero intero | Il tempo (in millisecondi) di attesa per watsonx Assistant per terminare l'elaborazione di ogni turno di conversazione. |
JSON di risposta di esempio
"voice_telephony" : {
"post_response_timeout_count":10000,
"final_utterance_timeout_count":30000,
"turn_settings": {
"timeout_count": 5000
},
"cdr_custom_data" : {
"custom_data_1": "data 1",
"custom_data_2": "data 2"
}
}
text_messaging
Incluso solo se l'integrazione SMS con Twilio è in uso.
Proprietà
Le proprietà contenute nell'oggetto private vengono trattate come variabili private, che non sono incluse nei log.
| Nome | Immettere | Descrizione |
|---|---|---|
assistant_phone_number |
Stringa | Il numero di telefono associato alla fine watsonx Assistant della conversazione. |
private.user_phone_number |
Stringa | Il numero di telefono da cui ha avuto origine il messaggio SMS del cliente. |
JSON di esempio
"text_messaging": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
whatsapp
Incluso solo se l'integrazione WhatsApp è in uso.
Proprietà
Le proprietà contenute nell'oggetto private vengono trattate come variabili private, che non sono incluse nei log.
| Nome | Immettere | Descrizione |
|---|---|---|
assistant_phone_number |
Stringa | Il numero di telefono associato alla fine watsonx Assistant della conversazione. |
private.user_phone_number |
Stringa | Il numero di telefono da cui ha avuto origine il messaggio WhatsApp del cliente. |
JSON di esempio
"whatsapp": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
slack
Incluso solo se l'integrazione Slack è in uso.
Proprietà
| Nome | Immettere | Descrizione |
|---|---|---|
team_id |
Stringa | L'identificatore unico del team Slack. |
channel_id |
Stringa | L'identificativo univoco del canale Slack. |
JSON di esempio
"slack": {
"team_id":"T02F3KE542J",
"channel_id":"C4K3KTTRD"
}
facebook
Incluso solo se l'integrazione di Facebook è in uso.
Proprietà
Nessuna proprietà aggiuntiva.
JSON di esempio
"facebook": {}
teams
Incluso solo se l'integrazione Microsoft Teams è in uso.
Proprietà
| Nome | Immettere | Descrizione |
|---|---|---|
conversation_id |
Stringa | L'identificativo univoco della conversazione Microsoft Teams. |
JSON di esempio
"teams":{
"conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}