Variables de integración
Al escribir expresiones, puede acceder a las variables de integración, que son variables de contexto que son específicas de las integraciones (por ejemplo, el chat web y las integraciones de teléfono). Todas las variables de integración están
contenidas en el objeto JSON system_integrations, al que puede acceder utilizando la expresión siguiente:
${system_integrations}
El objeto system_integrations tiene la siguiente estructura:
{
"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
Siempre incluido. Este objeto contiene información general sobre el canal que se está utilizando para comunicarse con el asistente.
Propiedades
Las propiedades contenidas en el objeto private se tratan como variables privadas, que no se incluyen en los registros.
| Nombre | Tipo | Descripción |
|---|---|---|
channel.name |
Serie |
El nombre del canal que está en uso. Uno de los valores siguientes:
|
channel.private.user.id |
Serie | El ID del usuario que está interactuando con el asistente a través del canal. Este ID es específico del canal y puede ser diferente del ID de usuario que watsonx Assistant utiliza para fines de facturación. Para obtener más información, consulte ID de usuario de canal. |
channel.private.user.phone_number |
Serie | El número de teléfono asociado al usuario. Establecido por las integraciones de teléfono, SMS y WhatsApp. |
channel.private.user.name |
Serie | El nombre del usuario que está interactuando con el asistente a través del canal. Establecido por la integración de Microsoft Teams. |
channel.private.user.aadObjectId |
Serie | El ID de objeto de Azure Active Directory (AAD) del usuario que está interactuando con el asistente a través del canal. Establecido por la integración de Microsoft Teams. |
JSON de ejemplo
"channel": {
{
"name": "Web chat",
"private": {
"user": {
"id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
}
}
}
}
ID de usuario de canal
La propiedad channel.private.user.id, que se establece mediante la integración de canal, especifica un ID de usuario para el cliente que es específico del canal. El origen de este ID de usuario depende del canal:
| Canal | ID de usuario de canal |
|---|---|
| Conversación web | El ID de usuario establecido por la instancia de conversación web. Para obtener más información, consulte Gestión de la información de identidad de usuario en la conversación web. |
| Slack | El ID de miembro de Slack (por ejemplo, U2147483697). |
El ID de remitente de Facebook (por ejemplo, 4310101122439797). |
|
| El número de teléfono del cliente. | |
| Teléfono | El número de teléfono del cliente. |
| SMS con Twilio | El número de teléfono del cliente. |
| Equipos | El ID de usuario de Teams (por ejemplo, 29:1CV2T75j3QUY-mQCQcIk2...) y proporcione el aadObjectId del usuario de Teams. |
chat
Sólo se incluye si la integración de conversación web está en uso.
Propiedades
| Nombre | Tipo | Descripción |
|---|---|---|
browser_info.browser_name |
Serie | El nombre del navegador, como chrome, edge, o firefox. |
browser_info.browser_version |
Serie | La versión del navegador, como por ejemplo 109.0.0. |
browser_info.browser_OS |
Serie | El sistema operativo del ordenador del cliente, como Mac OS. |
browser_info.language |
Serie | El código de localización por defecto del navegador, como en-US. |
browser_info.page_url |
Serie | La dirección URL de la página web en la que está incrustado el chat web, sin incluir ningún parámetro de consulta ni hash. |
browser_info.screen_resolution |
Serie | La altura y la anchura de la ventana del navegador, como por ejemplo width: 1440, height: 900. |
browser_info.user_agent |
Serie | El contenido de la cabecera de la solicitud HTTP User-Agent. |
browser_info.client_ip_address |
Serie | La dirección IP del ordenador del cliente. |
browser_info.ip_address_list |
Matriz | Ann array Direcciones IP especificadas por HTTP X-Forwarded-For cabeceras de petición. |
JSON de ejemplo
"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"
}
}
}
Expresiones de ejemplo
-
Esta expresión prueba si el cliente está utilizando el navegador Chrome:
${system_integrations}.chat.browser_info.browser_name.equals("chrome")Puede especificar esta expresión como el valor para una variable de sesión booleana, que puede utilizar en una condición de paso. Por ejemplo, si su sitio web sólo admite Chrome, podría tener un paso condicionado a que esta variable sea
falsey tenga la siguiente salida:I see you aren't using the Chrome browser. Some features of our website work only on Chrome. -
Esta expresión comprueba si la página actual URL contiene la cadena
payment.html:${system_integrations}.chat.browser_info.page_url.contains("payment.html")Puede utilizar esta expresión en una condición de paso para evitar indicar a los clientes que naveguen a una página que ya están viendo. Por ejemplo, en una acción para pagar una factura, puede tener un paso condicionado a que esta variable sea
falsey tenga la salida siguiente:First, click **Pay bill** to navigate to the bill payment page.
voice_telephony
Sólo se incluye si la integración del teléfono está en uso.
El objeto voice_telephony contiene propiedades de respuesta y de solicitud. Las propiedades de solicitud son valores establecidos por la integración telefónica y proporcionan información sobre la llamada. Las propiedades de respuesta
son valores de entrada que puede modificar en las acciones para enviar datos de registro o para cambiar las opciones de configuración para la llamada.
Propiedades de solicitud (establecidas por la integración de teléfono)
Las propiedades contenidas en el objeto private se tratan como variables privadas, que no se incluyen en los registros.
| Nombre | Tipo | Descripción |
|---|---|---|
sip_call_id |
Serie | El ID de llamada SIP asociado a la llamada telefónica. |
assistant_phone_number |
Serie | El número de teléfono asociado con el final watsonx Assistant de la llamada. |
sip_custom_invite_headers |
Objecto | Una matriz definida por el usuario de pares de clave/valor que contiene cabeceras SIP de la solicitud SIP INVITE. |
private.user_phone_number |
Serie | Número de teléfono desde el que se ha originado la llamada del cliente. |
private.sip_request_uri |
Serie | El URI de solicitud SIP de entrada que ha iniciado la llamada telefónica. |
private.sip_from_uri |
Serie | El URI de la cabecera From de la solicitud SIP. |
private.sip_to_uri |
Serie | El URI de la cabecera To de la solicitud SIP. |
final_utterance_timeout_occurred |
Boolean | Establézcalo en true cuando se haya alcanzado el tiempo de espera de expresión final. Este tiempo de espera se puede configurar enviando la propiedad final_utterance_timeout_count. |
post_response_timeout_occurred |
Boolean | Establézcalo en true cuando se haya alcanzado el tiempo de espera de expresión final. Este tiempo de espera se puede configurar enviando la propiedad post_response_timeout_count. |
JSON de solicitud de ejemplo
"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"
}
}
Puede acceder a las cabeceras SIP personalizadas utilizando el siguiente formato:
${system_integrations.voice_telephony.sip_custom_invite_headers}[<headername>]
Por ejemplo:
${system_integrations.voice_telephony.sip_custom_invite_headers}["custom-header1"]
devuelve el valor 123.
Propiedades de respuesta (establecidas por el asistente)
| Nombre | Tipo | Descripción |
|---|---|---|
final_utterance_timeout_count |
Entero | El tiempo (en milisegundos) que se debe esperar a una última expresión del servicio Speech to Text. Si no se recibe ninguna expresión final antes de que se exceda el tiempo de espera, la integración telefónica envía un mensaje al asistente
con la propiedad final_utterance_timeout_occurred establecida en true. |
post_response_timeout_count |
Entero | El tiempo (en milisegundos) que se debe esperar a una nueva expresión después de que se reproduzca la última respuesta. Si no se recibe ninguna expresión antes de que se exceda el tiempo de espera, la integración telefónica envía un
mensaje al asistente que incluye la propiedad post_response_timeout_occurred establecida en true. |
cdr_custom_data |
Objecto | Un objeto JSON que contiene pares de clave/valor que se almacenarán en el registro CDR para la llamada. Cada vez que se envía este objeto, su contenido se fusiona con los datos enviados anteriormente durante la llamada. |
turn_settings.timeout_count |
Entero | El tiempo (en milisegundos) que se debe esperar a que watsonx Assistant termine de procesar cada turno de conversación. |
JSON de respuesta de ejemplo
"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
Sólo se incluye si se está utilizando la integración de SMS con Twilio.
Propiedades
Las propiedades contenidas en el objeto private se tratan como variables privadas, que no se incluyen en los registros.
| Nombre | Tipo | Descripción |
|---|---|---|
assistant_phone_number |
Serie | El número de teléfono asociado con el final watsonx Assistant de la conversación. |
private.user_phone_number |
Serie | Número de teléfono desde el que se ha originado el mensaje SMS del cliente. |
JSON de ejemplo
"text_messaging": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
whatsapp
Sólo se incluye si la integración de WhatsApp está en uso.
Propiedades
Las propiedades contenidas en el objeto private se tratan como variables privadas, que no se incluyen en los registros.
| Nombre | Tipo | Descripción |
|---|---|---|
assistant_phone_number |
Serie | El número de teléfono asociado con el final watsonx Assistant de la conversación. |
private.user_phone_number |
Serie | El número de teléfono desde el que se ha originado el mensaje de WhatsApp del cliente. |
JSON de ejemplo
"whatsapp": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
slack
Sólo se incluye si la integración de Slack está en uso.
Propiedades
| Nombre | Tipo | Descripción |
|---|---|---|
team_id |
Serie | El identificador único del equipo de Slack. |
channel_id |
Serie | Identificador exclusivo del canal de Slack. |
JSON de ejemplo
"slack": {
"team_id":"T02F3KE542J",
"channel_id":"C4K3KTTRD"
}
facebook
Sólo se incluye si la integración de Facebook está en uso.
Propiedades
No hay propiedades adicionales.
JSON de ejemplo
"facebook": {}
teams
Sólo se incluye si la integración de Microsoft Teams está en uso.
Propiedades
| Nombre | Tipo | Descripción |
|---|---|---|
conversation_id |
Serie | Identificador exclusivo de la conversación de Microsoft Teams. |
JSON de ejemplo
"teams":{
"conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}