IBM Cloud Docs
統合用のカスタム・ダイアログ・フローの追加

統合用のカスタム・ダイアログ・フローの追加

ダイアログで JSON エディターを使用して、Web チャット統合から送信された情報にアクセスすることができます。

API バージョン 2020-04-01 以降、v2 context API 要求の一部として渡される /message オブジェクトには、integrations オブジェクトが含まれます。 このオブジェクトを使用すると、コンテキストで単一の統合タイプに固有の情報を渡すことができます。 詳しくは、 コンテキスト変数 を参照してください。

integrations オブジェクトは、バージョン 2020-04-01 以降の v2 API でのみ使用できます。

context.integrations オブジェクトを利用するには、次のような名前のコンテキスト変数を作成し、さまざまな統合の値を取得および設定します。

統合固有のコンテキスト変数
統合タイプ コンテキスト変数構文
電話番号 $integrations.voice_telephony
Web チャットからの Salesforce サービス・デスク $integrations.salesforce
SMS with Twilio $integrations.text_messaging
Web チャット (およびアシスタント・プレビュー) $integrations.chat
Web チャットからの Zendesk サービス・デスク $integrations.zendesk

統合固有のダイアログ・フローの作成

デプロイ先の各チャネルまたはクライアント・インターフェースによって提供される最良の機能を使用するように最適化された単一のダイアログを作成します。

会話は以下の方法でカスタマイズできます。

  • 特定の統合タイプでしか処理しないダイアログ・ブランチ全体を追加するには、該当する統合タイプのコンテキスト変数 ($integrations.chat など) をダイアログのルート・ノードの 「アシスタントが次を認識した場合 (If assistant recognizes)」 フィールドに追加します。

  • 特定の統合タイプでしか処理しない単一のダイアログ・ノードを追加するには、該当する統合タイプのコンテキスト変数 ($integrations.zendesk など) をダイアログの子ノードの 「アシスタントが次を認識した場合 (If assistant recognizes)」 フィールドに追加します。

  • 単一のダイアログ・ノードに、統合タイプに応じて若干異なる複数の応答を追加するには、以下の手順を実行します。

    • ノードの編集ビューで、**「カスタマイズ」をクリックしてから、「複数の条件付き応答 (Multiple conditioned responses)」 スイッチを「オン (On)」**に設定します。 適用 をクリックします。

    • ダイアログ・ノードの応答セクションで、カスタム応答タイプごとに、条件および対応する応答を適切に追加します。

      以下の例は、テキスト応答が表示される統合に最適な形式でハイパーテキスト・リンクを指定する方法を示しています。 Web チャット 統合の場合は、マークダウン形式がサポートされるので、応答テキストにリンクのラベルを含めて応答の見栄えを良くすることができます。 SMS with Twilio 統合の場合は、Web ページでは意味がある書式設定をスキップし、そのままの URL を追加することができます。

      カスタムの複数の条件付き応答
      統合タイプ 条件 サンプル・テキスト応答
      SMS with Twilio $integrations.text_messaging For more information, go to https://www.ibm.com.
      Web チャット $integrations.chat For more information, go to [the ibm.com site](https://www.ibm.com).
      他の条件が満たされない場合に表示する応答。 true For more information, go to ibm.com.

リッチ応答タイプは、異なる組み込み統合またはアシスタント・プレビューで表示されると、異なる動作をすることがよくあります。

さまざまなチャネルに対してカスタマイズされた応答を提供する必要があり、どの統合が使用されているかに基づいてダイアログ・フローを変更する必要がない場合は、channels 配列を使用して、応答のターゲットを特定の統合にすることもできます。

Web チャット: 機密データへのアクセス

Web チャットでセキュリティーを有効にした場合は、ダイアログに暗号化データを送信するように Web チャット実装を構成できます。 Web チャットから送信されるペイロード・データは、context.integrations.chat.private.user_payload というプライベート・コンテキスト変数に格納されます。 ダイアログから統合に送信されるプライベート変数はありません。 データを渡す方法について詳しくは、 Web チャットでの機密データの暗号化 を参照してください。

ペイロード・データにアクセスするには、ダイアログ・ノード条件から context.integrations.chat.private.user_payload オブジェクトを参照することができます。

ペイロードで送信される JSON オブジェクトの構造を把握しておく必要があります。

例えば、JSON ペイロードで値 "mvp:true" を渡した場合は、VIP 顧客専用の応答を定義するために、この値をチェックするダイアログ・フローを追加することができます。 次のような条件を持つダイアログ・ノードを追加します。

ノード条件としてのプライベート変数
フィールド
アシスタントが次を認識した場合 (If assistant recognizes) $integrations.chat.private.user_payload.mvp
アシスタントは次の応答を返します (Assistant responds) I can help you reserve box seats at the upcoming conference!

Web チャット: Web ブラウザー情報の取得

Web チャット統合を使用している場合は、顧客が Web チャットにアクセスするために使用している Web ブラウザーに関する情報が自動的に収集され、保管されます。 情報は、context.integrations.chat.browser_info オブジェクトに保管されています。

使用されている Web ブラウザーに関する詳細情報を利用するようにダイアログを設計することができます。 Web チャットが実行されているウィンドウを表す window オブジェクトからは、以下のプロパティーを取得できます。

  • browser_name: ブラウザーの名前 (chromeedgefirefox など)。
  • browser_version: ブラウザーのバージョン (80.0.0 など)。
  • browser_OS: 顧客のコンピューターのオペレーティング・システム (Mac OS など)。
  • language: ブラウザーのデフォルトのロケール・コード (en-US など)。
  • page_url: Web チャットが埋め込まれている Web ページの絶対 URL。 以下に例を示します。 https://www.example.com/products
  • screen_resolution: Web ページが表示されているブラウザー・ウィンドウの高さと幅を示します。 以下に例を示します。 width: 1440, height: 900
  • user_agent: User-Agent 要求ヘッダーの内容。 以下に例を示します。 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0
  • client_ip_address: 顧客のコンピューターの IP アドレス。 以下に例を示します。 183.49.92.42

例: ダイアログでページの URL 情報を使用する

Web サイトの複数のページに Web チャットを埋め込んだとします。 Web チャットから別の Salesforce エージェントへのチャット転送を、顧客が誰かと話すことを求めるページに基づいて経路指定したい場合があります。 顧客が、Web サイトの保険プランのページ (https://www.example.com/insurance.html) を表示していた場合は、会社の保険プランのエキスパートである担当者に転送する必要があります。 顧客が、投資の Web ページ (https://www.example.com/invest.html) を表示していた場合は、会社の投資機会のエキスパートである担当者に転送する必要があります。 転送を行うダイアログ・ノードに複数の条件付き応答を追加して、次のようなロジックを追加できます。

条件付き応答 1

  • 条件: $integrations.chat.browser_info.page_url.contains('insurance.html')
  • 応答タイプ: 人間のエージェントにつなげる (Connect to human agent)
  • ボタン ID: Z23453e25vv (保険のエキスパートである担当者のキューに転送するためのボタン)

条件付き応答 2

  • 条件: $integrations.chat.browser_info.page_url.contains('invest.html')
  • 応答タイプ: 人間のエージェントにつなげる (Connect to human agent)
  • ボタン ID: Z23453j24ty (投資のエキスパートである担当者のキューに転送するためのボタン)

Web チャット: Web フック認証での JWT の再使用

Web フック呼び出しを認証するために、Web チャットの保護に使用していたのと同じ JSON Web Token (JWT) を使用することができます。 Web チャットを Web ページに追加するときに identityToken プロパティーでトークンを指定した場合、そのトークンは context.integrations.chat.private.jwt というプライベート変数に格納されます。 JWT の引き渡しについて詳しくは、 Web チャット・セキュリティーの有効化 を参照してください。

  1. ダイアログで、 「Webhook」 を開きます。

  2. 「ヘッダーの追加」 をクリックします。

  3. 「ヘッダー名」 に、任意の名前 ( JWT など) を入力します。

  4. **「ヘッダー値」**フィールドで、$integrations.chat.private.jwt を追加します。