はじめに
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です!
重要ポイント:レコードトリガーフローからは「非同期」で呼び出す
ここが最初に知っておくべき一番大事なことです。
レコードトリガーフローからAgentforceを呼ぶ場合、必ず非同期で実行する必要があります。
「非同期って何?」という方に向けて一言でいうと、「レコードの保存処理とAgentforceの処理を同時並行で走らせること」です。料理でいうと、ご飯を炊きながら別のおかずを作るのが非同期、ご飯が炊けてから次に取りかかるのが同期です。
なぜAgentforceは非同期でないといけないかというと、エージェントの処理(Atlas推論エンジンによる判断・サブエージェントの選択・ツールの実行)には時間がかかるためです。レコード保存のトランザクションの中で同期的に実行すると、Salesforceのプラットフォーム制限に引っかかります。
実務で使うなら、ここは絶対に注意しておいた方が良いポイントです。
事前準備: エージェントを有効化しておく
FlowでAIエージェントアクションを呼び出すには有効化中のエージェントが必要です。
※有効化されていないとアクションとして表示されません。
今回は例として、従業員エージェントを1つ準備し有効化します。
サブエージェントにはNextStepを出力してくれるような設定をしています。

設定手順:Flow Builder でAIエージェントアクションを呼び出す
具体的な設定の流れを見ていきましょう。私も最初は「どこにそんな設定があるの?」と思いましたが、やってみると意外とシンプルでした。
STEP 1:レコードトリガーフローを作成する
- 設定のクイック検索に「フロー」と入力 → フロー を開く
- 「新規フロー」をクリック
- 「レコードトリガーフロー」を選択
- 対象オブジェクト(例:商談)を選択
- トリガーのタイミングで「レコードが更新された」を選択
- フローを実行するタイミングで「レコードが保存された後」(After Save)を選択
「保存された後」を選ぶのがポイントです。Agentforceは非同期処理が必要なため、「保存される前」(Before Save)では呼び出せません。
つまり、「After Save(保存後)のレコードトリガーフローしか使えない」という理解でOKです!
STEP 2:エントリー条件を設定する
Agentforceを呼び出す条件を絞り込みます。例えば「商談フェーズが変わったとき」という条件です。
- 「エントリー条件」を設定する
- 例:
[商談].フェーズ 変更済み trueなどの条件を追加 - 「実行のタイミング」で「レコードが変更されてエントリー条件に一致した場合のみ」を選択
すべてのレコード更新でエージェントが起動すると処理負荷が高くなるため、条件を絞り込むことが大切です。
STEP 3:AIエージェントアクションを追加する
フローのキャンバスにアクション要素を追加します。
- キャンバス上の「+」ボタンをクリック →「アクション」を選択
- 検索ボックスに「AIエージェント」と入力
- 「AIエージェントアクション」フォルダが表示される
- 使用したいエージェントを選択
- 入力の設定:
- ユーザーメッセージ(必須):エージェントに送るプロンプト。変数を使ってレコードの情報を動的に含めると効果的
- セッションID(任意):会話のコンテキストを引き継ぐ場合に使用。単発のユースケースでは空で問題なし
- 出力の設定:
- エージェント応答:エージェントが返した内容を変数として受け取れる
ユーザーメッセージの例(商談フェーズ変更時):
商談 {!$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項目を自動で割り当てるように設定してみました。

実際の動きを確認してみます。
ここは注意!つまずきポイント
① 「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でも発信しています。


