見出し画像

【第436回】 Agentforce : アダプティブ応答形式(Flow 実装版)

前回の記事では、Salesforce の Apex サンプルコードを使って「アダプティブ応答形式」の表示を検証しました。

この「アダプティブ応答形式」は、Apex だけでなく フローでも同様に実装可能 です。そこで今回は、フローを使って ゼロから作成する方法 をご紹介します。

今回の題材は、私の大好きな Jazz のレコード です。
ユーザーから
「オススメの商品は何ですか?(What products do you recommend?)」
と質問された際に、

  • リッチ選択肢応答(Rich Choice Response) を使って
    → 商品を カルーセル形式 で表示

  • その中の 1 つをクリックすると
    リッチリンク応答(Rich Link Response) により
    文字タイトル+画像付きの Web ページリンク を表示

という一連の流れを実装してみます。


設定手順

※ 前回の記事で詳細な手順は丁寧に解説しているため、今回は 重要なポイントに絞って 紹介します。

1. オブジェクトの項目準備

以下の項目を、商品オブジェクトに用意します。
※ 標準オブジェクトでもカスタムオブジェクトでも問題ないです。

  • Name

  • Description

  • Link_URL

  • Image_URL

  • MIME_Type

項目名の命名方法は任意ですが、エージェントが意味を理解しやすい名称 にしておくことが重要です。

私はサンプルとして、以下のように 6 商品 を登録しました。


2. 信頼済み URL の登録

今回使用する URL を「信頼済み URL」として登録します。
これを行わないと、サービスエージェントがリンク URL や画像 URL を利用できません。

登録する URL は以下の 2 つです。


3. フローの作成(自動起動フロー)

新規で「自動起動フロー(トリガーなし)」を作成し、「レコードの取得」要素を配置します。
商品を格納した Salesforce オブジェクトを選択します。
(私の場合は Product を使用しています。)

私のフィルター条件は
「MIME タイプが登録されているレコードのみ」
としましたが、ここは不要な場合もありますし、用途に応じて自由に設定してください。

また、拡張チャット v1 のカルーセル表示は最大 5 件まで という制限があるため、取得レコード数は あらかじめ 5 件に制限 しておきます。

重要:6 件以上渡すと、正しく表示されません。


4. 出力用リソースの作成

取得したレコードは、productList という新規のリソースに格納します。
格納する項目は、上で用意した 5 項目のみ にしてください。

  • Name

  • Description

  • Link_URL

  • Image_URL

  • MIME_Type

不要な項目を追加すると、エージェントの判断が曖昧になる原因 になります。

リソースは以下の設定で作成します。

  • データタイプ:Record

  • 複数の値を許可:✔

  • 出力に利用可能:✔

また今回は使用しませんが、入力用変数 として、recordId(テキスト型)を用意しておきます。

エージェントアクションとして利用するには、
最低 1 つの入力と 1 つの出力が必須 となるためです。

準備ができたら、フローを アクティブ化 します。


Agentforce の設定

サービスエージェントの作成方法や、外部 Web サイトへの埋め込み方法については、以下の記事を参考にしてください。


権限セットの設定

今回、商品レコードを格納したオブジェクトに対する 閲覧(Read)権限
サービスエージェントユーザーに付与する必要があります。

権限セットを作成し、割り当てまで忘れずに行ってください。


トピックの作成

作成したサービスエージェントを開き、以下の内容で 新規トピック を作成します。

Classification Description
Handles inquiries related to searching for products, including gathering user requirements and presenting product options. For example, use this topic when the user says: "What product do you have?"
商品検索に関する問い合わせを扱います。ユーザーの要件をヒアリングし、商品オプションを提示します。たとえば、ユーザーが「どんな商品がありますか?」と発言した場合に、このトピックを使用します。

Scope
My job is only to assist customers with searching for products by gathering user requirements and presenting available product options based on user requests.
私の役割は、ユーザーの要望に基づいて要件を確認し、利用可能な商品オプションを提示することで、商品検索を支援することに限定されます。

Instructions
Use the Get_Products action to get product options.
商品オプションを取得するために Get_Products アクションを使用します。


アクションの追加

トピックに以下のアクションを追加します。

  • 参照アクション種別:Flow

  • 参照アクション:Get Products Flow

  • アクションラベル名:Get Products

  • API 参照名:Get_Products(※ Instructions でも使用するため、この名前で統一)

Agent Action Configuration

Agent Action Instructions
Retrieves product records based on the user’s request. For each product, returns the product name, description, image URL, and link URL. Use this action when a user asks about available products or requests a product list.
ユーザーのリクエストに基づいて商品レコードを取得します。
各商品について、商品名、説明、画像 URL、リンク URL を返します。
ユーザーが利用可能な商品について質問した場合や、商品リストを要求した場合にこのアクションを使用します。

Loading Text
Getting product information…
商品情報を取得しています…

recordId(Input)
Instructions:

The ID of the Salesforce record that contains the product information.
商品情報を含む Salesforce レコードの ID。

  • Require input:✘

  • Collect data from user:✘
    (※ 今回は使用されません)

productList(Output)
Instructions:

A list of products including the following fields: the product name, description, image URL, and link URL.
次の項目を含む商品の一覧です(商品名、説明、画像 URL、リンク URL)

  • Show in conversation のみ:✔


接続のメッセージング設定

メニューから「接続」→「メッセージング」を開きます。
アダプティブ応答形式はメッセージング専用機能 のため、ここで設定します。

アダプティブ応答形式が 有効化 されていることを確認し、
エージェントを 有効化 します。


動作確認

設定が完了したら、チャットで確認します。

「What products do you recommend?」 と質問すると、
カルーセル形式で商品が表示されました。

もし、テキスト表示になってしまう場合は、フロー側で 5 件以内に絞れているか を確認してください。

そして、商品を 1 つ選択すると、
画像+リンクが一体化したリッチリンク応答 が表示されました。
成功です。


いかがでしたでしょうか。

今回は、フローだけを使って、アダプティブ応答形式による
「カルーセル表示 → リッチリンク表示」までを実装しました。

Apex を使わなくても、

  • データ構造をシンプルに保つこと

  • 表示件数や項目を適切に制御すること

この 2 点を意識するだけで、
Agentforce でも 十分にリッチな UI 表現 が可能になります。

まずは身近なデータを使って、ぜひ試してみてください。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら