Variáveis de integração

Ao escrever expressões, você pode acessar variáveis de integração, que são variáveis de contexto específicas das integrações (como as integrações de bate-papo na Web e de telefone). Todas as variáveis de integração estão contidas no objeto JSON " system_integrations, que você pode acessar usando a seguinte expressão:

${system_integrations}

O objeto " system_integrations tem 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 de IA.

Propriedades

As propriedades contidas no objeto ' private são tratadas como variáveis privadas, que não são incluídas nos registros.

Tabela 1. Propriedades do objeto canal

Nome

Tipo

Descrição

channel.name

Sequência

O nome do canal que está em uso. Um dos seguintes valores: \n - Web chat \n - Phone \n - SMS \n - Whatsapp \n - Slack \n - Facebook Messenger \n - teams

channel.private.user.id

Sequência

O ID do usuário que está interagindo com o assistente de IA por meio do canal. Este ID é específico do canal e pode ser diferente do ID de usuário que o assistente de IA utiliza para fins de cobrança. 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. Definido pelas integrações de telefone, SMS e WhatsApp.

channel.private.user.name

Sequência

O nome do usuário que está interagindo com o assistente de IA por meio do canal. Definido pela integração do ` Microsoft Teams `.

channel.private.user.aadObjectId

Sequência

O ID do objeto da AAD ( Azure ) Active Directory do usuário que está interagindo com o assistente de IA por meio do canal. Definido 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 é definida pela integração do canal, especifica um ID de usuário para o cliente que é específico do canal. A origem dessa ID de usuário depende do canal:

Tabela 2. Fontes do ID do usuário do canal

Canal

ID do usuário do canal

Chat web

A ID de usuário definida pela instância do bate-papo na Web. Para obter mais informações, consulte Gerenciamento de informações de identidade do usuário no bate-papo na Web.

Slack

O ID do membro do Slack (por exemplo, ' U2147483697).

<

A ID do remetente 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

Incluído somente se a integração do bate-papo na Web estiver em uso.

Propriedades

Tabela 3. Propriedades do objeto chat

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 localidade padrão do navegador, como ' en-US.

browser_info.page_url

Sequência

O endereço URL da página da Web em que o bate-papo na Web está incorporado, sem incluir nenhum parâmetro 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 da 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

An array de endereços IP especificados pelos 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"
    }
  }
}

Exemplos de expressões

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

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

Você pode especificar essa expressão como o valor de uma variável de sessão booleana, que pode ser usada em uma condição de etapa. Por exemplo, se o seu site for compatível apenas com o Chrome, você poderá ter uma etapa condicionada ao fato de essa variável ser " false e ter o seguinte resultado: I see you aren't using the Chrome browser. Some features of our website work only on Chrome.

  • Essa expressão testa se a página atual URL contém a string 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 dizer aos clientes que devem navegar para uma página que já estão visualizando. Por exemplo, em uma ação para pagar uma conta, você poderia ter uma etapa condicionada a essa variável como ' false e ter a seguinte saída: First, click **Pay bill** to navigate to the bill payment page.

voice_telephony

Incluído somente se a integração telefônica estiver em uso.

O objeto " voice_telephony contém propriedades de resposta e de solicitação. As propriedades de solicitação são valores definidos pela integração telefônica e fornecem informações sobre a chamada. As propriedades de resposta são valores de entrada que podem ser modificados em suas ações para enviar dados de registro ou para alterar as opções de configuração da chamada.

Propriedades da solicitação (definidas pela integração com o telefone)

As propriedades contidas no objeto ' private são tratadas como variáveis privadas, que não são incluídas nos registros.

Tabela 4. Solicitar propriedades do objeto voice_telephony

Nome

Tipo

Descrição

sip_call_id

Sequência

A ID de chamada SIP associada à chamada telefônica.

assistant_phone_number

Sequência

O número de telefone associado ao assistente de IA ao final da chamada.

sip_custom_invite_headers

Object

Uma matriz definida pelo usuário de pares de chave/valor contendo cabeçalhos SIP da solicitação SIP ' INVITE.

private.user_phone_number

Sequência

O número de telefone de onde a chamada do cliente foi originada.

private.sip_request_uri

Sequência

O URI de solicitação SIP de entrada que iniciou a chamada telefônica.

private.sip_from_uri

Sequência

O URI do cabeçalho " From da solicitação SIP.

private.sip_to_uri

Sequência

O URI do cabeçalho " To da solicitação SIP.

final_utterance_timeout_occurred

Booleano

Definido como ' true quando o tempo limite do enunciado final for atingido. Esse tempo limite pode ser configurado com o envio da propriedade " final_utterance_timeout_count.

post_response_timeout_occurred

Booleano

Definido como ' true quando o tempo limite do enunciado final for atingido. Esse tempo limite pode ser configurado com o envio da propriedade " post_response_timeout_count.

Exemplo de solicitação em 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 da resposta (definidas pelo assistente de IA )

Tabela 5. Propriedades de resposta do objeto voice_telephony

Nome

Tipo

Descrição

final_utterance_timeout_count

Número Inteiro

O tempo (em milissegundos) de espera pela resposta final do serviço Speech to Text. Se nenhuma resposta final for recebida antes do tempo limite expirar, a integração do telefone envia uma mensagem ao assistente de IA com a final_utterance_timeout_occurred propriedade definida como true.

post_response_timeout_count

Número Inteiro

O tempo (em milissegundos) de espera por um novo enunciado após a reprodução da última resposta. Se nenhuma resposta for recebida antes do tempo limite expirar, a integração do telefone envia uma mensagem ao assistente de IA que inclui a post_response_timeout_occurred propriedade definida como true.

cdr_custom_data

Object

Um objeto JSON contendo pares de chave/valor a serem armazenados no registro CDR da chamada. Cada vez que esse objeto é enviado, seu conteúdo é mesclado com os dados enviados anteriormente durante a chamada.

turn_settings.timeout_count

Número Inteiro

O tempo (em milissegundos) que se deve aguardar até que o assistente de IA conclua o processamento de cada turno da conversa.

Exemplo de resposta em JSON

"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

Incluído somente se a integração de SMS com Twilio estiver em uso.

Propriedades

As propriedades contidas no objeto ' private são tratadas como variáveis privadas, que não são incluídas nos registros.

Tabela 6. Propriedades do objeto text_messaging

Nome

Tipo

Descrição

assistant_phone_number

Sequência

O número de telefone associado ao assistente de IA no final da conversa.

private.user_phone_number

Sequência

O número de telefone do qual a mensagem SMS do cliente foi originada.

Exemplo de JSON

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

whatsapp

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

Propriedades

As propriedades contidas no objeto ' private são tratadas como variáveis privadas, que não são incluídas nos registros.

Tabela 7. Propriedades do objeto WhatsApp

Nome

Tipo

Descrição

assistant_phone_number

Sequência

O número de telefone associado ao assistente de IA no final da conversa.

private.user_phone_number

Sequência

O número de telefone do qual a mensagem do WhatsApp do cliente foi originada.

Exemplo de JSON

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

slack

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

Propriedades

Tabela 8. Propriedades do objeto slack

Nome

Tipo

Descrição

team_id

Sequência

O identificador exclusivo da equipe do Slack.

channel_id

Sequência

O identificador exclusivo do canal do Slack.

Exemplo de JSON

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

facebook

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

Propriedades

Nenhuma propriedade adicional.

Exemplo de JSON

"facebook": {}

teams

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

Propriedades

Tabela 9. Propriedades do objeto `teams`

Nome

Tipo

Descrição

conversation_id

Sequência

O identificador único da conversa do Microsoft Teams.

Exemplo de JSON

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