IBM Cloud Docs
Variáveis de integração

Variáveis de integração

Ao escrever expressões, é possível acessar variáveis de integração, que são variáveis de contexto que são específicas para integrações (como o chat web e integrações telefônicas). Todas as variáveis de integração estão contidas no objeto JSON system_integrations, que você pode acessar usando a expressão a seguir:

${system_integrations}

O objeto system_integrations possui a seguinte estrutura:

{
  "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 incluído. Este objeto contém informações gerais sobre o canal que está sendo usado para se comunicar com o assistente.

Propriedades

As propriedades contidas no objeto private são tratadas como variáveis privadas, que não estão incluídas em logs.

Propriedades do objeto do canal
Nome Tipo Descrição
channel.name Sequência

O nome do canal que está em uso. Um dos valores a seguir:

  • Web chat
  • Phone
  • SMS
  • Whatsapp
  • Slack
  • Facebook Messenger
  • teams
channel.private.user.id Sequência O ID do usuário que está interagindo com o assistente através do canal. Este ID é específico para o canal e pode ser diferente do ID do usuário watsonx Assistant usos para fins de faturamento. Para obter mais informações, consulte IDs de usuário do Canal.
channel.private.user.phone_number Sequência O número de telefone associado ao usuário. Configurado pelas integrações telefônicas, SMS e WhatsApp.
channel.private.user.name Sequência O nome do usuário que está interagindo com o assistente através do canal. Configurado pela integração do Microsoft Teams
channel.private.user.aadObjectId Sequência O ID do objeto Azure Active Directory (AAD) do usuário que está interagindo com o assistente por meio do canal. Configurado pela integração do Microsoft Teams

Exemplo de JSON

"channel": {
  {
    "name": "Web chat",
    "private": {
      "user": {
        "id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
      }
    }
  }
}

ID do usuário do canal

A propriedade channel.private.user.id, que é configurada pela integração do canal, especifica um ID de usuário para o cliente que é específico para o canal. A origem deste ID de usuário depende do canal:

Fontes do ID do usuário do canal
Canal ID do usuário do canal
Chat web O ID do usuário configurado pela instância de chat web. Para obter mais informações, consulte Gerenciando as informações de identidade do usuário no bate-papo da Web
Slack O ID do membro Slack (por exemplo, U2147483697).
Facebook O ID sender do Facebook (por exemplo, 4310101122439797).
Whatsapp O número de telefone do cliente.
Telefone O número de telefone do cliente.
SMS com Twilio O número de telefone do cliente.
Equipes O ID do usuário do Teams (por exemplo, 29:1CV2T75j3QUY-mQCQcIk2...) e forneça o aadObjectId do usuário do Teams

chat

Incluso apenas se a integração do chat web estiver em uso.

Propriedades

Propriedades do objeto de bate-papo
Nome Tipo Descrição
browser_info.browser_name Sequência O nome do navegador, como chrome, edge ou firefox..
browser_info.browser_version Sequência A versão do navegador, como 109.0.0.
browser_info.browser_OS Sequência O sistema operacional do computador do cliente, como Mac OS.
browser_info.language Sequência O código de idioma padrão do navegador, como en-US.
browser_info.page_url Sequência A URL da página web onde o chat web está integrado, não incluindo quaisquer parâmetros de consulta ou hashes.
browser_info.screen_resolution Sequência A altura e a largura da janela do navegador, como width: 1440, height: 900.
browser_info.user_agent Sequência O conteúdo do cabeçalho de solicitação HTTP User-Agent.
browser_info.client_ip_address Sequência O endereço IP do computador do cliente..
browser_info.ip_address_list Matriz Endereços IP da matriz ann especificados por cabeçalhos de solicitação HTTP X-Forwarded-For.

Exemplo de JSON

"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"
    }
  }
}

Expressões de exemplo.

  • Esta expressão testa se o cliente está usando o navegador Chrome:

    ${system_integrations}.chat.browser_info.browser_name.equals("chrome")
    

    Você pode especificar esta expressão como o valor para uma variável de sessão booleana, que você poderia então usar em uma condição de etapa. Por exemplo, se o seu website suporta apenas o Chrome, você poderia ter uma etapa condicionada a esta variável sendo false e tem a seguinte saída: I see you aren't using the Chrome browser. Some features of our website work only on Chrome.

  • Esta expressão testa se a URL da página atual contém a cadeia payment.html:

    ${system_integrations}.chat.browser_info.page_url.contains("payment.html")
    

    Você pode usar essa expressão em uma condição de etapa para evitar que os clientes naveguem para uma página que eles já estão visualizando Por exemplo, em uma ação para pagar uma conta, você poderia ter uma etapa condicionada nessa variável sendo false e tem a seguinte saída: First, click **Pay bill** to navigate to the bill payment page.

voice_telephony

Incluso apenas se a integração do telefone estiver em uso.

O objeto voice_telephony contém ambas as propriedades de resposta e solicitação. As propriedades de solicitação são valores configurados pela integração de telefone e fornecem informações sobre a chamada. Propriedades de resposta são valores de entrada que você pode modificar em suas ações para enviar dados de criação de log ou para alterar opções de configuração para a chamada.

Solicitar propriedades (configuradas pela integração de telefone)

As propriedades contidas no objeto private são tratadas como variáveis privadas, que não estão incluídas em logs.

Solicitar propriedades do objeto voice_telephony
Nome Tipo Descrição
sip_call_id Sequência O ID de chamada SIP associado ao telefonema.
assistant_phone_number Sequência O número de telefone associado a com o watsonx Assistant fim da chamada.
sip_custom_invite_headers Object Uma matriz definida pelo usuário de pares de chave / valor contendo cabeçalhos SIP a partir da solicitação SIP INVITE.
private.user_phone_number Sequência O número de telefone do qual a chamada do cliente se originou.
private.sip_request_uri Sequência A URI de solicitação SIP de entrada que iniciou a chamada telefônica.
private.sip_from_uri Sequência A URI a partir do cabeçalho From da solicitação SIP.
private.sip_to_uri Sequência A URI a partir do cabeçalho To da solicitação SIP.
final_utterance_timeout_occurred Booleano Configure para true quando o tempo limite de utterância final foi atingido. Este tempo limite pode ser configurado enviando a propriedade final_utterance_timeout_count.
post_response_timeout_occurred Booleano Configure para true quando o tempo limite de utterância final foi atingido. Este tempo limite pode ser configurado enviando a propriedade post_response_timeout_count.

Exemplo de solicitação 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"
  }
}

Propriedades de resposta (configuradas pelo assistente).

Propriedades de resposta do objeto voice_telephony
Nome Tipo Descrição
final_utterance_timeout_count Integer O tempo (em milissegundos) de espera por uma utterância final a partir do serviço Speech to Text. Se nenhuma utterância final for recebida antes que o tempo limite ocorra, a integração do telefone envia uma mensagem para o assistente com a propriedade final_utterance_timeout_occurred configurada para true.
post_response_timeout_count Integer O tempo (em milissegundos) de esperar por uma nova utterância após a última resposta é jogado. Se nenhuma utterância for recebida antes que o tempo limite ocorra, a integração do telefone envia uma mensagem para o assistente que inclui o conjunto de propriedades post_response_timeout_occurred para true.
cdr_custom_data Object Um objeto JSON contendo pares de chave / valor a serem armazenados no registro CDR para a chamada. Cada vez que este objeto é enviado, seu conteúdo é mesclado com dados enviados anteriormente durante a chamada.
turn_settings.timeout_count Integer O tempo (em milissegundos) de espera de watsonx Assistant para terminar de processar cada conversa turn.

JSON de resposta de exemplo

"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 apenas se o SMS com integração de Twilio estiver em uso.

Propriedades

As propriedades contidas no objeto private são tratadas como variáveis privadas, que não estão incluídas em logs.

Propriedades do objeto text_messaging
Nome Tipo Descrição
assistant_phone_number Sequência O número de telefone associado a com o watsonx Assistant fim da conversa.
private.user_phone_number Sequência O número de telefone a partir do qual a mensagem SMS do cliente se originou.

Exemplo de JSON

"text_messaging": {
  "private":{
    "user_phone_number":"+18595553456"
  },
  "assistant_phone_number":"+18885556789"
}

whatsapp

Incluso apenas se a integração do WhatsApp estiver em uso.

Propriedades

As propriedades contidas no objeto private são tratadas como variáveis privadas, que não estão incluídas em logs.

Propriedades do objeto whatsapp
Nome Tipo Descrição
assistant_phone_number Sequência O número de telefone associado a com o watsonx Assistant fim da conversa.
private.user_phone_number Sequência O número de telefone a partir do qual a mensagem WhatsApp do cliente se originou.

Exemplo de JSON

"whatsapp": {
  "private":{
    "user_phone_number":"+18595553456"
  },
  "assistant_phone_number":"+18885556789"
}

slack

Incluído apenas se a integração do Slack estiver em uso

Propriedades

Propriedades do objeto de folga
Nome Tipo Descrição
team_id Sequência O identificador exclusivo da equipe do Slack
channel_id Sequência O identificador exclusivo do canal Slack.

Exemplo de JSON

"slack": {
  "team_id":"T02F3KE542J",
  "channel_id":"C4K3KTTRD"
}

facebook

Incluído somente se a integração do Facebook estiver em uso.

Propriedades

Nenhuma propriedade adicional.

Exemplo de JSON

"facebook": {}

teams

Incluído apenas se a integração do Microsoft Teams estiver em uso..

Propriedades

Propriedades do objeto de equipes
Nome Tipo Descrição
conversation_id Sequência O identificador exclusivo da conversa do Microsoft Teams.

Exemplo de JSON

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