整合變數
透過撰寫表示式,您可以存取整合變數,這些整合變數是整合 (例如 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 物件中包含的內容會被視為專用變數,不會包含在日誌中。
| 名稱 | 類型 | 說明 |
|---|---|---|
channel.name |
字串 |
使用中通道的名稱。 下列其中一個值:
|
channel.private.user.id |
字串 | 透過頻道與助理互動的使用者 ID。 此 ID 專用於通道,且可能不同於使用者 ID watsonx Assistant 用於計費目的。 如需相關資訊,請參閱 通道使用者 ID。 |
channel.private.user.phone_number |
字串 | 與使用者相關聯的電話號碼。 由電話、SMS 及 WhatsApp 整合設定。 |
channel.private.user.name |
字串 | 透過頻道與助理互動的使用者名稱。 由 Microsoft Teams 整合設定。 |
channel.private.user.aadObjectId |
字串 | 透過通道與助理互動之使用者的 Azure Active Directory (AAD) 物件 ID。 由 Microsoft Teams 整合設定。 |
範例 JSON
"channel": {
{
"name": "Web chat",
"private": {
"user": {
"id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
}
}
}
}
通道使用者 ID
通道整合所設定的 channel.private.user.id 內容會指定通道特定客戶的使用者 ID。 此使用者 ID 的來源取決於通道:
| 頻道 | 通道使用者 ID |
|---|---|
| Web 會談 | Web 會談實例所設定的使用者 ID。 如需相關資訊,請參閱 在 Web 會談中管理使用者身分資訊。 |
| Slack | Slack 成員 ID (例如,U2147483697)。 |
Facebook 寄件者 ID (例如,4310101122439797)。 |
|
| 客戶的電話號碼。 | |
| 電話 | 客戶的電話號碼。 |
| SMS with Twilio | 客戶的電話號碼。 |
| 團隊 | 團隊使用者 ID (例如,29:1CV2T75j3QUY-mQCQcIk2...),並提供團隊使用者的 aadObjectId。 |
chat
僅在使用 Web 會談整合時才包含。
內容
| 名稱 | 類型 | 說明 |
|---|---|---|
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 |
字串 | 嵌入網路聊天的網頁 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 |
陣列 | 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")您可以將此表示式指定為布林階段作業變數的值,然後可以在步驟條件中使用該表示式。 例如,如果您的網站僅支援 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 物件中包含的內容會被視為專用變數,不會包含在日誌中。
| 名稱 | 類型 | 說明 |
|---|---|---|
sip_call_id |
字串 | 與電話通話相關的 SIP 通話 ID。 |
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"
}
}
您可以使用以下格式存取自訂 SIP 標頭:
${system_integrations.voice_telephony.sip_custom_invite_headers}[<headername>]
例如,
${system_integrations.voice_telephony.sip_custom_invite_headers}["custom-header1"]
返回值 123。
回應內容 (由助理設定)
| 名稱 | 類型 | 說明 |
|---|---|---|
final_utterance_timeout_count |
整數 | 從 Speech to Text 服務等待最終話語的時間 (毫秒)。 如果在發生逾時之前未收到任何最終話語,則電話整合會將 final_utterance_timeout_occurred 內容設為 true 的訊息傳送給助理。 |
post_response_timeout_count |
整數 | 播放前次回應之後等待新話語的時間 (毫秒)。 如果在發生逾時之前未收到任何話語,則電話整合會將包含設為 true 之 post_response_timeout_occurred 內容的訊息傳送給助理。 |
cdr_custom_data |
物件 | 包含鍵值組的 JSON 物件儲存在呼叫的 CDR 記錄中。 每次傳送此物件時,其內容都會與先前在呼叫期間所傳送的資料合併。 |
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 物件中包含的內容會被視為專用變數,不會包含在日誌中。
| 名稱 | 類型 | 說明 |
|---|---|---|
assistant_phone_number |
字串 | 與 watsonx Assistant 交談結束相關聯的電話號碼。 |
private.user_phone_number |
字串 | 產生客戶 SMS 訊息的電話號碼。 |
範例 JSON
"text_messaging": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
whatsapp
僅在使用 WhatsApp 整合時才包含。
內容
private 物件中包含的內容會被視為專用變數,不會包含在日誌中。
| 名稱 | 類型 | 說明 |
|---|---|---|
assistant_phone_number |
字串 | 與 watsonx Assistant 交談結束相關聯的電話號碼。 |
private.user_phone_number |
字串 | 產生客戶的 WhatsApp 訊息的電話號碼。 |
範例 JSON
"whatsapp": {
"private":{
"user_phone_number":"+18595553456"
},
"assistant_phone_number":"+18885556789"
}
slack
只有在使用 Slack 整合時才會併入。
內容
| 名稱 | 類型 | 說明 |
|---|---|---|
team_id |
字串 | Slack 團隊的唯一識別碼。 |
channel_id |
字串 | Slack 通道的唯一 ID。 |
範例 JSON
"slack": {
"team_id":"T02F3KE542J",
"channel_id":"C4K3KTTRD"
}
facebook
只有在使用 Facebook 整合時才會併入。
內容
沒有其他內容。
範例 JSON
"facebook": {}
teams
僅在使用 Microsoft Teams 整合時才包含。
內容
| 名稱 | 類型 | 說明 |
|---|---|---|
conversation_id |
字串 | Microsoft Teams 交談的唯一 ID。 |
範例 JSON
"teams":{
"conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}