統合変数

式を書くことで、統合変数にアクセスすることができます。これは、統合(ウェブチャットや電話統合など)に固有のコンテキスト変数です。 すべての統合変数は「system_integrationsJSONオブジェクトに含まれており、以下の式を使ってアクセスできる:

${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

常に含まれている。 このオブジェクトには、AIアシスタントとの通信に使用されているチャンネルに関する一般的な情報が含まれています。

プロパティ-

privateオブジェクトに含まれるプロパティはプライベート変数として扱われ、ログには含まれません。

チャンネル・オブジェクトのプロパティ
名前 タイプ 説明
channel.name ストリング

使用中のチャンネル名。 以下の値のいずれか。

  • Web chat
  • Phone
  • SMS
  • Whatsapp
  • Slack
  • Facebook Messenger
  • teams
channel.private.user.id ストリング チャネルを通じてAIアシスタントと対話するユーザーのID。 このIDはチャンネル固有のもので、AIアシスタントが課金目的で使用するユーザーIDとは異なる場合があります。 詳しくはチャンネル・ユーザーIDを参照。
channel.private.user.phone_number ストリング ユーザーに関連付けられている電話番号。 電話、SMS、WhatsAppの統合により設定。
channel.private.user.name ストリング チャネルを通じてAIアシスタントと対話するユーザーの名前。 Microsoft Teamsとの統合によって設定されます。
channel.private.user.aadObjectId ストリング チャネルを通じてAIアシスタントと対話するユーザーの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チャット ウェブチャットインスタンスによって設定されたユーザーID。 詳細については、「WebチャットでのユーザーID情報の管理」を参照してください。
Slack SlackのメンバーID(例えば「U2147483697)。
Facebook Facebookの送信者ID(例えば「4310101122439797)。
Whatsapp お客様の電話番号
電話番号 お客様の電話番号
SMS with Twilio お客様の電話番号
チーム TeamsユーザーID(例:'29:1CV2T75j3QUY-mQCQcIk2...)とTeamsユーザーの'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コールID。
assistant_phone_number ストリング AIアシスタントに関連する電話番号。
sip_custom_invite_headers オブジェクト SIP 'INVITEリクエストのSIPヘッダーを含む、key/valueペアのユーザー定義の配列。
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"
  }
}

応答プロパティ(AIアシスタントが設定)

voice_telephony オブジェクトのレスポンス・プロパティ
名前 タイプ 説明
final_utterance_timeout_count 整数 Speech to Textサービスからの最終発話を待つ時間(ミリ秒)。 タイムアウトが発生する前に最終的な発話が受信されない場合、電話統合はAIアシスタントに「final_utterance_timeout_occurredプロパティを「true」に設定したメッセージを送信する。
post_response_timeout_count 整数 最後の応答が再生された後、新しい発話を待つ時間(ミリ秒)。 タイムアウトが発生する前に発話が受信されなかった場合、電話統合はAIアシスタントに「post_response_timeout_occurredプロパティが「true」に設定されたメッセージを送信する。
cdr_custom_data オブジェクト 通話のCDRレコードに格納されるキー/値のペアを含むJSONオブジェクト。 このオブジェクトが送信されるたびに、その内容はコール中に以前に送信されたデータとマージされる。
turn_settings.timeout_count 整数 AIアシスタントが各会話ターンの処理を終えるのを待つ時間(ミリ秒単位)。

レスポンス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 ストリング AIアシスタントとの会話に関連する電話番号。
private.user_phone_number ストリング 顧客のSMSメッセージの発信元電話番号。

JSON の例

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

whatsapp

WhatsAppインテグレーションが使用されている場合のみ含まれます。

プロパティ-

privateオブジェクトに含まれるプロパティはプライベート変数として扱われ、ログには含まれません。

whatsappオブジェクトのプロパティ
名前 タイプ 説明
assistant_phone_number ストリング AIアシスタントとの会話に関連する電話番号。
private.user_phone_number ストリング WhatsAppメッセージの発信元電話番号。

JSON の例

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

slack

Slackインテグレーションが使用されている場合のみ含まれます。

プロパティ-

スラック・オブジェクトのプロパティ
名前 タイプ 説明
team_id ストリング Slackチームのユニークな識別子。
channel_id ストリング Slackチャンネルの一意な識別子。

JSON の例

"slack": {
  "team_id":"T02F3KE542J",
  "channel_id":"C4K3KTTRD"
}

facebook

Facebookとの統合が使用されている場合のみ含まれる。

プロパティ-

追加の特性はない。

JSON の例

"facebook": {}

teams

Microsoft Teams統合が使用されている場合のみ含まれます。

プロパティ-

チームオブジェクトのプロパティ
名前 タイプ 説明
conversation_id ストリング Microsoft Teamsの会話の一意の識別子。

JSON の例

"teams":{
  "conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}