0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

レコードトリガー FlowでAgentforceエージェントを自動起動する実装ガイド

0
Posted at

はじめに

Agentforceは、画面からチャットで呼びかけて使うものというイメージが定着しています。実際、リリース当初の情報もチャットUI中心の内容がほとんどでした。

ところが、RecordTriggered FlowとAgentforceを組み合わせると景色が変わります。レコードが作成・更新された瞬間に、Flowからエージェントを直接起動できるのです。商談のステータスが変わった瞬間や、ケースが新規作成された瞬間に、裏側でAIエージェントが動き出すイメージです。

この記事では、Flowからエージェントを呼び出すための実装手順と、ハマりやすいポイントを整理します。

参考:Invoke Agentforce Agents with Apex and Flow | Salesforce Developers Blog

対象エディション: Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition(Lightning Experience)

そもそも「FlowからAgentforceを呼ぶ」とはどういうこと?

Agentforceには「AIエージェントアクション」という機能があります。
これは要するに、「Flowの中にエージェント呼び出しボタンを置ける」ようにするしくみです。

これまでAgentforceと対話するには、チャット画面で手動でメッセージを送る必要がありました。AIエージェントアクションを使うことで、フローが起動するタイミングで自動的にエージェントへ指示を送れるようになります。

フローはSalesforceのあらゆる場所から起動できるので、組み合わせ次第でいろんな自動化が実現できます。

つまり、「Salesforceのイベント(レコード変更など)をトリガーにAgentforceを動かす」という理解でOKです!

出典:フローまたは Apex クラスからのエージェントのコール | Salesforce ヘルプ(日本語)

重要ポイント:レコードトリガーフローからは「非同期」で呼び出す

ここが最初に知っておくべき一番大事なことです。

レコードトリガーフローからAgentforceを呼ぶ場合、必ず非同期で実行する必要があります

「非同期って何?」という方に向けて一言でいうと、「レコードの保存処理とAgentforceの処理を同時並行で走らせること」です。料理でいうと、ご飯を炊きながら別のおかずを作るのが非同期、ご飯が炊けてから次に取りかかるのが同期です。

なぜAgentforceは非同期でないといけないかというと、エージェントの処理(Atlas推論エンジンによる判断・サブエージェントの選択・ツールの実行)には時間がかかるためです。レコード保存のトランザクションの中で同期的に実行すると、Salesforceのプラットフォーム制限に引っかかります。

実務で使うなら、ここは絶対に注意しておいた方が良いポイントです。

事前準備: エージェントを有効化しておく

FlowでAIエージェントアクションを呼び出すには有効化中のエージェントが必要です。
※有効化されていないとアクションとして表示されません。

今回は例として、従業員エージェントを1つ準備し有効化します。
サブエージェントにはNextStepを出力してくれるような設定をしています。

設定手順:Flow Builder でAIエージェントアクションを呼び出す

具体的な設定の流れを見ていきましょう。私も最初は「どこにそんな設定があるの?」と思いましたが、やってみると意外とシンプルでした。

STEP 1:レコードトリガーフローを作成する

  1. 設定のクイック検索に「フロー」と入力 → フロー を開く
  2. 新規フロー」をクリック
  3. レコードトリガーフロー」を選択
  4. 対象オブジェクト(例:商談)を選択
  5. トリガーのタイミングで「レコードが更新された」を選択
  6. フローを実行するタイミングで「レコードが保存された後」(After Save)を選択

「保存された後」を選ぶのがポイントです。Agentforceは非同期処理が必要なため、「保存される前」(Before Save)では呼び出せません。

つまり、「After Save(保存後)のレコードトリガーフローしか使えない」という理解でOKです!

STEP 2:エントリー条件を設定する

Agentforceを呼び出す条件を絞り込みます。例えば「商談フェーズが変わったとき」という条件です。

  1. エントリー条件」を設定する
  2. 例:[商談].フェーズ 変更済み true などの条件を追加
  3. 実行のタイミング」で「レコードが変更されてエントリー条件に一致した場合のみ」を選択

すべてのレコード更新でエージェントが起動すると処理負荷が高くなるため、条件を絞り込むことが大切です。

STEP 3:AIエージェントアクションを追加する

フローのキャンバスにアクション要素を追加します。

  1. キャンバス上の「+」ボタンをクリック →「アクション」を選択
  2. 検索ボックスに「AIエージェント」と入力
  3. AIエージェントアクション」フォルダが表示される
  4. 使用したいエージェントを選択
  5. 入力の設定:
    • ユーザーメッセージ(必須):エージェントに送るプロンプト。変数を使ってレコードの情報を動的に含めると効果的
    • セッションID(任意):会話のコンテキストを引き継ぐ場合に使用。単発のユースケースでは空で問題なし
  6. 出力の設定:
    • エージェント応答:エージェントが返した内容を変数として受け取れる

ユーザーメッセージの例(商談フェーズ変更時):

商談 {!$Record.Name} がフェーズ「{!$Record.StageName}」になりました。
取引先「{!GetAccount.Name}」に対して、次のアクションを提案してください。

取引先情報
業種: {!GetAccount.Industry}
年間売上: {!GetAccount.AnnualRevenue}
従業員数: {!GetAccount.NumberOfEmployees}

商談情報
金額: {!$Record.Amount}
完了予定日: {!$Record.CloseDate}
数量: {!$Record.TotalOpportunityQuantity}
{!$Record.Description}


レコードの項目値を変数として埋め込むことで、コンテキストを持った指示をエージェントに渡せます。

出力は構造化されてしまうので、messageだけ抽出したい場合は「構造化出力を設定」からmessageだけ抽出するように設定すればOKです。

つまり、「ユーザーメッセージにレコードの情報を埋め込んで、エージェントに文脈を渡す」という設計がポイントです!

STEP 4:エージェントの応答を活用する

エージェントが返した応答は、フローの変数として受け取れます。受け取ったテキストを使って:

  • 商談のカスタム項目に書き込む
  • ケースにコメントとして追記する
  • ToDo(活動)を作成してメモに保存する

…など、後続の処理に連携できます。

今回はNextStep項目を自動で割り当てるように設定してみました。

実際の動きを確認してみます。


フェーズを更新すると。。。


NextStep項目に値が入りました!

ここは注意!つまずきポイント

① 「Before Save」からは呼べない

レコードトリガーフローには「保存する前」(Before Save)と「保存した後」(After Save)の2種類があります。

AIエージェントアクションは非同期処理のため、Before Saveのフローからは呼び出せません。「設定したのに動かない」という場合は、トリガーのタイミングを確認してください。

After Saveにしてもエージェントのアクションが見つからない場合は、Agentforceが有効化されているか・対象エージェントが「アクティブ」状態になっているかを確認するのが先決です。

② 条件を絞らないと思わぬコストが発生する

Agentforceの利用はFlex Creditsまたは会話単位での課金対象です。エントリー条件を設定せずにすべての更新でエージェントを呼び出すと、意図せず多くのEinstein Requestsを消費することになります。

特にデータロードや一括更新を行うケースでは、大量のレコードが一度に処理されて予想外の課金が発生することがあります。「このフローがどの頻度で起動するか」を事前に見積もっておくことをおすすめします。

③ エディション要件を確認しておく

AIエージェントアクションは、Enterprise Edition以上が必要です(Developer Editionも可)。Professional Edition以下では利用できません。

「設定画面にAIエージェントアクションが表示されない」という場合は、まずエディションを確認してください。Developer Editionの無料Orgでも試せるので、検証用に活用するのがおすすめです。

④ エージェントはアクティブになっていないと選べない

フローの設定画面で「AIエージェントアクション」フォルダを開いても何も表示されない場合、対象のAgentforceエージェントが「非アクティブ」になっている可能性があります。

Agentforceスタジオで対象エージェントを開き、「アクティブ化」ボタンでエージェントを有効にしてから再度フローを設定してください。

まとめ

  • RecordTriggered FlowとAgentforceのAIエージェントアクションを組み合わせることで、レコード変更を契機にAIエージェントを自動起動できる
  • レコードトリガーフローからの呼び出しは必ず「After Save(保存後)」+ 非同期実行が前提
  • フローの入力変数にレコード情報を動的に埋め込んで、エージェントへのメッセージを状況に応じて変化させるのがポイント
  • エントリー条件を適切に設定して、エージェントの起動頻度をコントロールすること(コスト・パフォーマンスの両面から)
  • 利用はEnterprise Edition以上(Developer Edition含む)、エージェントはアクティブ状態が必要

「レコードが変わったら、AIが自動で次のアクションを考えてくれる」という体験は、実際に設定してみると想像より近いところにあります。まずはDeveloper Edition環境でシンプルなフローから試してみましょう!


AI×資格学習・Salesforce業務活用の情報をnoteでも発信しています。

https://note.com/pacific_creator1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?