集成变量
通过编写表达式,您可以访问集成变量,这些变量是特定于集成的上下文变量 (例如,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 |
字符串 |
正在使用的通道的名称。 下列其中一个值:
|
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 发件人标识 (例如,4310101122439797 )。 |
|
客户的电话号码。 | |
电话 | 客户的电话号码。 |
SMS with Twilio | 客户的电话号码。 |
团队 | 团队用户标识 (例如,29:1CV2T75j3QUY-mQCQcIk2... ),并提供团队用户的 aadObjectId 。 |
chat
仅当正在使用 Web 聊天集成时才包含在内。
属性
名称 | Type | 描述 |
---|---|---|
browser_info.browser_name |
字符串 | 浏览器名称,例如 chrome ,edge 或 firefox 。 |
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
对象中包含的属性被视为专用变量,这些变量不会包含在日志中。
名称 | 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"
}
}
响应属性 (由助手设置)
名称 | Type | 描述 |
---|---|---|
final_utterance_timeout_count |
整数 | 从 Speech to Text 服务等待最终发声的时间 (以毫秒为单位)。 如果在发生超时之前未收到最终话语,那么电话集成将向助手发送一条消息,并将 final_utterance_timeout_occurred 属性设置为 true 。 |
post_response_timeout_count |
整数 | 在播放最后一个响应之后等待新话语的时间 (以毫秒为单位)。 如果在发生超时之前未收到任何话语,那么电话集成会向助手发送一条消息,其中包含设置为 true 的 post_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
对象中包含的属性被视为专用变量,这些变量不会包含在日志中。
名称 | 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
对象中包含的属性被视为专用变量,这些变量不会包含在日志中。
名称 | 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"
}