Agentforceでメッセージ履歴を取得する
LAMPのAgentforce拡張パッケージには、友だちとのメッセージ履歴を扱うサブエージェント「LINE履歴の確認」が含まれます。Agentforceのエージェントに追加すると、履歴の要約や、過去のやり取りについての質問に答えられるようになります。
この記事では、Salesforceを利用する担当者向けのエージェントに、このサブエージェントを追加する例を紹介します。
アセットライブラリで検索する名称は「LINE履歴の確認」です。
サブエージェントには、履歴を取得するアクション「会話タイムラインを取得」と、回答のしかたを決める推論指示が設定済みです。アクションを個別に作成する必要はありません。
事前に準備するもの
- Igness LAMP 1.159.0.3以降がインストールされ、初期設定・LINE公式アカウントの接続が完了しているSalesforce組織。
- Igness LAMP - Agentforce Extension Package 1.1.0.2以降。Einstein生成AIが有効な組織でのみインストールできます。
- Agentforceが有効で、編集・テストできる担当者向けのエージェント。Agentforceに必要なライセンス・権限はSalesforce側でご準備ください。
- LAMPのチャットでメッセージ履歴を確認できる、テスト用の友だちレコード。
バージョンはSalesforceの「設定」→「インストール済みパッケージ」で確認できます。
1. 拡張パッケージをインストールする
Agentforce拡張パッケージ(バージョン1.1.0.2以降)をインストールします。インストール方法と必要な環境は、「Agentforce拡張パッケージ」とは?をご覧ください。
2. エージェントにサブエージェントを追加する
- Agentforce Builderで対象の担当者向けエージェントを開きます。
- エクスプローラーの「リソースを追加」(+)→「アセットライブラリから追加」を開きます。
- 「LINE」で検索し、「LINE履歴の確認」の「選択」をクリックしてから、「エージェントに追加」をクリックします。
追加すると、サブエージェントに推論指示と「会話タイムラインを取得」アクションが設定された状態で表示されます。
- 日本語で利用する場合は、「言語設定」のデフォルト言語を「Japanese」にします。
- 「保存」をクリックします。
言語を変更した後、プレビューで「コンパイルエラーが発生しました」と表示される場合があります。
エラーの内容が「Missing value for ‘additional_locales’」などLanguageに関するものであれば、Builderの右上の表示切り替えで「スクリプト」を開き、language: の部分を次のように1行ずつに直して保存してください。
language:
default_locale: "ja"
additional_locales: ""
all_additional_locales: False推論指示は、エージェント内で自由に書き換えられます。回答の形式や、未回答の質問の扱いなどを業務に合わせて調整してください。
3. 友だちレコードIDを指定して試す
- LAMPの「友だち」から、メッセージ履歴があるテスト用レコードを開きます。
- URLの
/igns__SocialFriend__c/と/viewの間にある、15桁または18桁のレコードIDをコピーします。 - Agentforce Builderの会話プレビューで、次のように依頼します。
<友だちレコードID>はコピーしたIDに置き換えてください。
新しいBuilderでは「Preview」タブの「ライブテスト」を使います。
友だちレコードID「<友だちレコードID>」のメッセージ履歴を最大20件取得してください。続けて「この履歴の中で、まだ回答していない質問はありますか?」などと質問できます。
プレビューの実行内容で、履歴取得アクションが呼ばれたこと、入力の友だちレコードIDが正しいこと、errorMessage が空で transcript に内容が返っていることを確認してください。回答が元のチャットの内容と一致することも確認します。
以下は、検証用の架空の会話5件を取得して要約した例です。在庫・価格・ギフト包装には回答済みで、金曜日までの配送についての質問は未回答であることを、取得した履歴から確認できています。
実運用でIDを毎回入力したくない場合は、表示中のレコードや関連レコードから対象の友だちIDを渡す設定を別途行います。LAMPのチャットコンポーネントを配置するだけでは、Agentforceに対象の友だちIDは渡りません。
取得できる履歴の範囲
このアクションは、指定した友だちの直近のメッセージ履歴を取得します。全期間の検索や、複数の友だちをまたぐ検索には対応していません。
- 初回に取得できるタイムラインの範囲から、指定した最大件数までを返します。最大件数を増やしても、古いページを順に読み進める処理は行いません。
- 画像・動画・添付ファイルの中身を読み取る機能ではありません。返された本文を回答の根拠にします。
- 日時付きの構造化データではなく、話者ラベル付きのテキストを返します。メッセージの日付は、この出力だけでは確認できません。
見つからない・取得できない場合
| 状況 | 確認すること |
|---|---|
| アセットライブラリに「LINE履歴の確認」が出てこない | 「インストール済みパッケージ」で、Agentforce Extension Packageが1.1.0.2以降か確認します。インストール・アップグレード後はBuilderを開き直してください。 |
| 「友だちレコードIDの形式が正しくありません」 | LINEのユーザーID、ケースID、取引先責任者IDではなく、igns__SocialFriend__c のレコードIDを渡します。 |
| 「対象の友だちレコードが見つからないか、アクセス権がありません」 | 実行ユーザーのオブジェクト・項目・レコード共有権限と、友だちの公式アカウントとの紐づけを確認します。 |
| 「会話履歴を取得できませんでした」 | 対象のチャットに履歴があるか、LAMPの接続・認証設定と実行ユーザーの外部ログイン情報へのアクセス権を確認します。このメッセージだけで、履歴が存在しないと断定しないでください。 |
| 履歴取得が呼ばれない | 「LINE履歴の確認」がエージェントに追加・保存されているか、質問に友だちレコードIDが含まれているかを確認します。プレビューの実行内容で、どのサブエージェントに振り分けられたかを確認できます。 |
管理者向け:実行ユーザーの権限
権限は、エージェントを設定する管理者だけでなく、実際にアクションを実行するユーザーに必要です。エージェントの種類や実行場所に応じて、ログイン中の担当者またはエージェント実行ユーザーを確認してください。
- Apexクラス
igns__LampGetTimelineHistoryActionへのアクセス。 - 友だち(
igns__SocialFriend__c)・公式アカウント(igns__SocialAccount__c)の参照権限と、対象レコードの共有。 - 友だちのユーザーID(
igns__UserId__c)など、履歴取得に使う項目の参照権限。 - 外部ログイン情報
igns__APIAccessのプリンシパルPrincipalへのアクセス。
Einstein Agent Userライセンスの実行ユーザーでは、LAMPの一般ユーザー向け権限セットをそのまま割り当てられない場合があります。その場合は、上記の参照・実行権限を含む専用の権限セットを作成してください。


