통합 변수
표현식을 작성하여 통합에 특정한 컨텍스트 변수인 통합 변수에 액세스할 수 있습니다 (예: 웹 대화 및 전화 통합). 모든 통합 변수는 다음 표현식을 사용하여 액세스할 수 있는 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는 채널에 고유하며 청구 목적으로 watsonx Assistant 가 사용하는 사용자 ID와 다를 수 있습니다. 자세한 정보는 채널 사용자 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입니다. 자세한 정보는 웹 대화에서 사용자 ID 정보 관리 를 참조하십시오. |
| Slack | Slack 멤버 ID (예: U2147483697) 입니다. |
Facebook 발신인 ID (예: 4310101122439797) 입니다. |
|
| 고객의 전화번호입니다. | |
| 전화 | 고객의 전화번호입니다. |
| Twilio 사용 SMS | 고객의 전화번호입니다. |
| 팀 | 팀 사용자 ID (예: 29:1CV2T75j3QUY-mQCQcIk2...) 이며 팀 사용자의 aadObjectId 를 제공하십시오. |
chat
웹 대화 통합이 사용 중인 경우에만 포함됩니다.
특성
| 이름 | 유형 | 설명 |
|---|---|---|
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 요청 헤더에 지정된 배열 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 발신 번호입니다. |
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 |
오브젝트 | 호출에 대한 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
Twilio 통합이 있는 SMS가 사용 중인 경우에만 포함됩니다.
특성
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"
}