통합 변수

표현식을 작성하여 통합에 특정한 컨텍스트 변수인 통합 변수에 액세스할 수 있습니다 (예: 웹 대화 및 전화 통합). 모든 통합 변수는 다음 표현식을 사용하여 액세스할 수 있는 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는 채널에 고유하며 청구 목적으로 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입니다. 자세한 정보는 웹 대화에서 사용자 ID 정보 관리 를 참조하십시오.
Slack Slack 멤버 ID (예: U2147483697) 입니다.
Facebook Facebook 발신인 ID (예: 4310101122439797) 입니다.
Whatsapp 고객의 전화번호입니다.
전화 고객의 전화번호입니다.
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 오브젝트에 포함된 특성은 로그에 포함되지 않는 개인용 변수로 처리됩니다.

voice_telephony 오브젝트의 요청 특성
이름 유형 설명
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 값을 반환합니다.

응답 특성 (어시스턴트에 의해 설정됨)

voice_telephony 오브젝트의 응답 특성
이름 유형 설명
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 오브젝트에 포함된 특성은 로그에 포함되지 않는 개인용 변수로 처리됩니다.

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