IBM Cloud Docs
集成变量

集成变量

通过编写表达式,您可以访问集成变量,这些变量是特定于集成的上下文变量 (例如,Web 聊天和电话集成)。 所有集成变量都包含在 system_integrations JSON 对象中,您可以使用以下表达式来访问该对象:

${system_integrations}

system_integrations 对象具有以下结构:

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

始终包含在内。 此对象包含有关用于与助手通信的通道的常规信息。

属性

private 对象中包含的属性被视为专用变量,这些变量不会包含在日志中。

通道对象的属性
名称 Type 描述
channel.name 字符串

正在使用的通道的名称。 下列其中一个值:

  • Web chat
  • Phone
  • SMS
  • Whatsapp
  • Slack
  • Facebook Messenger
  • teams
channel.private.user.id 字符串 通过通道与助手进行交互的用户的标识。 此标识特定于通道,可能与用于计费目的的用户标识 watsonx Assistant 不同。 有关更多信息,请参阅 通道用户标识
channel.private.user.phone_number 字符串 与用户关联的电话号码。 由电话,SMS 和 WhatsApp 集成设置。
channel.private.user.name 字符串 通过通道与助手进行交互的用户的名称。 由 Microsoft Teams 集成设置。
channel.private.user.aadObjectId 字符串 通过通道与助手进行交互的用户的 Azure Active Directory (AAD) 对象标识。 由 Microsoft Teams 集成设置。

示例 JSON

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

通道用户标识

由通道集成设置的 channel.private.user.id 属性指定特定于通道的客户的用户标识。 此用户标识的源取决于通道:

通道用户标识的源
通道 通道用户标识
Web 聊天 Web 聊天实例设置的用户标识。 有关更多信息,请参阅 在 Web 聊天中管理用户身份信息
Slack Slack 成员标识 (例如,U2147483697)。
Facebook Facebook 发件人标识 (例如,4310101122439797)。
Whatsapp 客户的电话号码。
电话 客户的电话号码。
SMS with Twilio 客户的电话号码。
团队 团队用户标识 (例如,29:1CV2T75j3QUY-mQCQcIk2...),并提供团队用户的 aadObjectId

chat

仅当正在使用 Web 聊天集成时才包含在内。

属性

交谈对象的属性
名称 Type 描述
browser_info.browser_name 字符串 浏览器名称,例如 chromeedgefirefox
browser_info.browser_version 字符串 浏览器版本,例如 109.0.0
browser_info.browser_OS 字符串 客户计算机的操作系统,例如 Mac OS
browser_info.language 字符串 浏览器的缺省语言环境代码,例如 en-US
browser_info.page_url 字符串 嵌入 Web 聊天的 Web 页面的 URL,不包括任何查询参数或散列。
browser_info.screen_resolution 字符串 浏览器窗口的高度和宽度,例如 width: 1440, height: 900
browser_info.user_agent 字符串 HTTP User-Agent 请求头的内容。
browser_info.client_ip_address 字符串 客户计算机的 IP 地址。
browser_info.ip_address_list Array 由 HTTP X-Forwarded-For 请求头指定的 Ann 数组 IP 地址。

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

示例表达式

  • 此表达式用于测试客户是否正在使用 Chrome 浏览器:

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

    您可以将此表达式指定为布尔会话变量的值,然后可以在步骤条件中使用该值。 例如,如果您的 Web 站点仅支持 Chrome,那么可以将此变量设置为 false,并具有以下输出: I see you aren't using the Chrome browser. Some features of our website work only on Chrome.

  • 此表达式测试当前页面 URL 是否包含字符串 payment.html:

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

    您可以在步骤条件中使用此表达式,以避免让客户浏览到他们已在查看的页面。 例如,在用于支付帐单的操作中,您可能有一个步骤以此变量为 false 为条件,并具有以下输出: First, click **Pay bill** to navigate to the bill payment page.

voice_telephony

仅当正在使用电话集成时才包括在内。

voice_telephony 对象包含响应和请求属性。 请求属性是由电话集成设置的值,用于提供有关呼叫的信息。 响应属性是您可以在操作中修改的输入值,以发送日志记录数据或更改调用的配置选项。

请求属性 (由电话集成设置)

private 对象中包含的属性被视为专用变量,这些变量不会包含在日志中。

voice_teleTelephony 对象的请求属性
名称 Type 描述
sip_call_id 字符串 与电话呼叫关联的 SIP 呼叫标识。
assistant_phone_number 字符串 与 watsonx Assistant 呼叫结束关联的电话号码。
sip_custom_invite_headers 对象 用户定义的键/值对数组,其中包含 SIP INVITE 请求中的 SIP 头。
private.user_phone_number 字符串 发起客户呼叫的电话号码。
private.sip_request_uri 字符串 发起电话呼叫的入站 SIP 请求 URI。
private.sip_from_uri 字符串 SIP 请求的 From 头中的 URI。
private.sip_to_uri 字符串 SIP 请求的 To 头中的 URI。
final_utterance_timeout_occurred 布尔值 达到最终话语超时时设置为 true。 可以通过发送 final_utterance_timeout_count 属性来配置此超时。
post_response_timeout_occurred 布尔值 达到最终话语超时时设置为 true。 可以通过发送 post_response_timeout_count 属性来配置此超时。

示例请求 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"
  }
}

响应属性 (由助手设置)

voice_teleTelephony 对象的响应属性
名称 Type 描述
final_utterance_timeout_count 整数 从 Speech to Text 服务等待最终发声的时间 (以毫秒为单位)。 如果在发生超时之前未收到最终话语,那么电话集成将向助手发送一条消息,并将 final_utterance_timeout_occurred 属性设置为 true
post_response_timeout_count 整数 在播放最后一个响应之后等待新话语的时间 (以毫秒为单位)。 如果在发生超时之前未收到任何话语,那么电话集成会向助手发送一条消息,其中包含设置为 truepost_response_timeout_occurred 属性。
cdr_custom_data 对象 包含要存储在用于调用的 CDR 记录中的键/值对的 JSON 对象。 每次发送此对象时,其内容都会与调用期间先前发送的数据合并。
turn_settings.timeout_count 整数 等待 watsonx Assistant 完成处理每个对话轮次的时间 (以毫秒计)。

示例响应 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

仅当 SMS with Twilio 集成正在使用时才包含在内。

属性

private 对象中包含的属性被视为专用变量,这些变量不会包含在日志中。

text_messaging 对象的属性
名称 Type 描述
assistant_phone_number 字符串 与对话的 watsonx Assistant 结束关联的电话号码。
private.user_phone_number 字符串 源自客户短信消息的电话号码。

示例 JSON

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

whatsapp

仅当 WhatsApp 集成正在使用时才包含在内。

属性

private 对象中包含的属性被视为专用变量,这些变量不会包含在日志中。

whatsapp 对象的属性
名称 Type 描述
assistant_phone_number 字符串 与对话的 watsonx Assistant 结束关联的电话号码。
private.user_phone_number 字符串 客户的 WhatsApp 消息源自的电话号码。

示例 JSON

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

slack

仅当 Slack 集成正在使用时才包含在内。

属性

松弛对象的属性
名称 Type 描述
team_id 字符串 Slack 团队的唯一标识。
channel_id 字符串 Slack 通道的唯一标识。

示例 JSON

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

facebook

仅当 Facebook 集成正在使用时才包含在内。

属性

无其他属性。

示例 JSON

"facebook": {}

teams

仅当 Microsoft Teams 集成正在使用时才包括在内。

属性

团队对象的属性
名称 Type 描述
conversation_id 字符串 Microsoft Teams 对话的唯一标识。

示例 JSON

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