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.
Nome | Tipo | Descrição |
---|---|---|
channel.name |
Sequência |
O nome do canal que está em uso. Um dos valores a seguir:
|
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:
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 ). |
O ID sender do Facebook (por exemplo, 4310101122439797 ). |
|
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
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.
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).
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.
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.
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
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
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"
}