整合變數

透過撰寫表示式,您可以存取整合變數,這些整合變數是整合 (例如 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 字串

使用中通道的名稱。 下列其中一個值:

  • Web chat
  • Phone
  • SMS
  • Whatsapp
  • Slack
  • Facebook Messenger
  • teams
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 的來源
頻道 通道使用者 ID
Web 會談 Web 會談實例所設定的使用者 ID。 如需相關資訊,請參閱 在 Web 會談中管理使用者身分資訊
Slack Slack 成員 ID (例如,U2147483697)。
Facebook Facebook 寄件者 ID (例如,4310101122439797)。
Whatsapp 客戶的電話號碼。
電話 客戶的電話號碼。
SMS with Twilio 客戶的電話號碼。
團隊 團隊使用者 ID (例如,29:1CV2T75j3QUY-mQCQcIk2...),並提供團隊使用者的 aadObjectId

chat

僅在使用 Web 會談整合時才包含。

內容

會談物件的內容
名稱 類型 說明
browser_info.browser_name 字串 瀏覽器名稱,例如 chrome, edgefirefox
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 物件中包含的內容會被視為專用變數,不會包含在日誌中。

voice_電話系統物件的要求內容
名稱 類型 說明
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

回應內容 (由助理設定)

voice_Telephony 物件的回應內容
名稱 類型 說明
final_utterance_timeout_count 整數 從 Speech to Text 服務等待最終話語的時間 (毫秒)。 如果在發生逾時之前未收到任何最終話語,則電話整合會將 final_utterance_timeout_occurred 內容設為 true 的訊息傳送給助理。
post_response_timeout_count 整數 播放前次回應之後等待新話語的時間 (毫秒)。 如果在發生逾時之前未收到任何話語,則電話整合會將包含設為 truepost_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 物件中包含的內容會被視為專用變數,不會包含在日誌中。

text_messaging 物件的內容
名稱 類型 說明
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 物件中包含的內容會被視為專用變數,不會包含在日誌中。

whatsapp 物件的內容
名稱 類型 說明
assistant_phone_number 字串 與 watsonx Assistant 交談結束相關聯的電話號碼。
private.user_phone_number 字串 產生客戶的 WhatsApp 訊息的電話號碼。

範例 JSON

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

slack

只有在使用 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"
}