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.

Proprietà dell'oggetto canale
Nome Immettere Descrizione
channel.name Stringa

Il nome del canale in uso. Uno dei seguenti valori:

  • Web chat
  • Phone
  • SMS
  • Whatsapp
  • Slack
  • Facebook Messenger
  • teams
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:

Origini dell'ID utente del 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).
Facebook L'ID mittente Facebook (ad esempio, 4310101122439797).
Whatsapp 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à

Proprietà dell'oggetto chat
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 false e 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 false e 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.

Richiedi proprietà dell'oggetto voice_telephony
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)

Proprietà di risposta dell'oggetto voice_telephony
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.

Proprietà dell'oggetto text_messaging
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.

Proprietà dell'oggetto whatsapp
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à

Proprietà dell'oggetto slack
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à

Proprietà dell'oggetto team
Nome Immettere Descrizione
conversation_id Stringa L'identificativo univoco della conversazione Microsoft Teams.

JSON di esempio

"teams":{
  "conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}