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.

Propiedades del objeto de canal
Nombre Tipo Descripción
channel.name Serie

El nombre del canal que está en uso. Uno de los valores siguientes:

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

Orígenes del ID de usuario de 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).
Facebook El ID de remitente de Facebook (por ejemplo, 4310101122439797).
WhatsApp 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

Propiedades del objeto de conversación
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 false y 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 false y 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.

Propiedades de solicitud del objeto voice_telephony
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)

Propiedades de respuesta del objeto voice_telephony
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.

Propiedades del objeto text_messaging
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.

Propiedades del objeto whatsapp
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

Propiedades del objeto de holgura
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

Propiedades del objeto de equipos
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"
}