Salesforce Einstein Next Best Action 徹底解説:コンサルタントが教えるパーソナライズされた提案の実装戦略

背景と応用シーン

現代のビジネス環境において、顧客とのすべての接点が重要です。営業担当者やサービスエージェントは、日々大量の顧客情報に接しており、「この顧客に対して、今、何をすべきか」という最適な次の一手を瞬時に判断することが求められています。しかし、情報が多すぎると、最も効果的なアクションを見逃してしまうリスクも高まります。ここで登場するのが Einstein Next Best Action (アインシュタイン ネクスト ベスト アクション) です。

Einstein Next Best Action は、Salesforce プラットフォームに組み込まれたインテリジェントなレコメンデーションエンジンです。ビジネスルール、予測モデル、顧客の過去の行動データを組み合わせて、ユーザー(営業担当者、サービスエージェントなど)に対してリアルタイムで「次に取るべき最善のアクション」を提示します。これにより、企業は一貫性のある、パーソナライズされた顧客体験を提供し、エンゲージメントと収益を向上させることができます。

応用シーンの例:

  • 営業部門:取引先のレコードページで、「長期利用顧客向けの特別割引を提案する」「関連製品のクロスセルを提案する」「最近アクティビティのない顧客にフォローアップの電話をかける」といった具体的なアクションを提示し、商談成立の可能性を高めます。
  • サービス部門:ケース(問い合わせ)のコンテキストに応じて、「関連するナレッジ記事を顧客に送信する」「類似のケースを解決した上位エージェントにエスカレーションする」「保証期間が近い顧客に延長保証プランを提案する」といったアクションを推奨し、解決時間の短縮と顧客満足度の向上を実現します。
  • マーケティング部門:Experience Cloud (旧Community Cloud) サイトで、ログインした顧客のプロファイルに基づき、「新製品のウェビナーに招待する」「パーソナライズされたキャンペーンオファーを提示する」など、エンゲージメントを高めるためのアクションを表示します。

Salesforce コンサルタントとして、私は多くのお客様がこの機能を活用して、ビジネスプロセスを自動化し、従業員の意思決定を支援し、最終的に ROI を最大化するのを見てきました。この記事では、Einstein Next Best Action の仕組み、実装方法、そして成功に導くためのベストプラクティスを、コンサルタントの視点から詳しく解説します。


原理説明

Einstein Next Best Action の強力な機能は、いくつかの主要なコンポーネントの組み合わせによって実現されています。これらの要素がどのように連携して動作するかを理解することが、効果的な戦略を設計する鍵となります。

1. Recommendations (レコメンデーション)

レコメンデーションは、ユーザーに提示される「提案」そのものです。これらは Salesforce の標準オブジェクトまたはカスタムオブジェクトのレコードとして保存されます。各レコメンデーションレコードには、通常、以下のような情報が含まれます。

  • Name (名前): 提案のタイトル (例: 「アップグレードプランのご提案」)
  • Description (説明): 提案の具体的な内容
  • Acceptance Label (承認ラベル): ユーザーが提案を受け入れたときにクリックするボタンのテキスト (例: 「提案する」)
  • Rejection Label (却下ラベル): ユーザーが提案を断ったときにクリックするボタンのテキスト (例: 「今はしない」)
  • Action (アクション): 承認されたときに起動する Flow への参照。これが提案の「実行」部分です。

これらのレコメンデーションは、手動で作成することも、データローダーで一括登録することも、あるいは他の自動化プロセスによって動的に生成することも可能です。

2. Strategy Builder (ストラテジービルダー)

Strategy Builder は、Next Best Action の心臓部です。これは、どのレコメンデーションを、いつ、どのユーザーに表示するかを決定するロジックを構築するための、クリック操作ベースのビジュアルツールです。フロービルダーに似たインターフェースで、以下の要素を組み合わせて戦略(ストラテジー)を作成します。

  • Load (読み込み): まず、候補となるレコメンデーションのレコードを読み込みます。特定のオブジェクトからすべてのレコードを読み込んだり、レポートやリストビューの結果をソースとして使用したり、さらには Apex を呼び出して動的にレコメンデーションを生成することも可能です。
  • Filter (絞り込み): 読み込んだレコメンデーションの中から、特定の条件に合致するものだけを抽出します。例えば、「顧客の契約種別が『プレミアム』である場合にのみ、このアップセル提案を考慮する」といったルールを適用します。レコードのコンテキスト(例えば、表示している取引先レコードの項目値)を利用して、動的に絞り込むことができます。
  • Sort (並び替え): 複数のレコメンデーションが候補として残った場合に、どれを優先して表示するかを決定します。例えば、「割引率が高い順」や「予測される顧客満足度向上スコアが高い順」に並び替えます。
  • Limit (制限): ユーザーに表示するレコメンデーションの数を制限します。情報過多を避けるため、通常は最も優先度の高い1〜3件に絞り込むのが一般的です。
  • Map (対応付け): 複数のロジックブランチを一つにまとめたり、レコメンデーションの項目値を変更したりする高度な処理を行います。

3. Flows (フロー)

ユーザーがレコメンデーションを「承認」したときに、実際に何が起こるかを定義するのが Flow です。Next Best Action は、Screen Flow (画面フロー) または Autolaunched Flow (自動起動フロー) をトリガーできます。これにより、単純なレコード更新から複雑なビジネスプロセスまで、あらゆるアクションを実行できます。

  • 例1 (営業): 営業担当者が「割引クーポンを適用」というレコメンデーションを承認すると、Flow が起動し、商談レコードに割引率を適用し、関連する Chatter 投稿を行い、マネージャーへの承認申請を自動的に送信します。
  • 例2 (サービス): サービスエージェントが「交換品を発送」を承認すると、Flow が起動し、在庫システムに連携して発送指示を出し、顧客に確認メールを送信し、ケースの状況を「対応中」に更新します。

これらのコンポーネントが連携することで、「コンテキスト(現在のレコード)に基づき、Strategy Builder が最適なレコメンデーションを選択し、ユーザーが承認すると Flow が実行される」という一連のインテリジェントなプロセスが完成します。


サンプルコード

Next Best Action の設定は主にクリック操作で行いますが、より高度なシナリオでは Apex を活用してレコメンデーションを動的に生成したり、外部システムから提案を取得したりする必要があります。ここでは、Apex から特定の戦略を呼び出し、その結果を取得する方法の公式サンプルコードを紹介します。これにより、カスタムコンポーネントや複雑なバックエンドプロセスに Next Best Action のロジックを組み込むことが可能になります。

以下のコードは、`ConnectApi.Strategy` 名前空間にある `execute` メソッドを使用しています。このメソッドは、指定されたコンテキストレコード ID に基づいて戦略を実行し、最も評価の高いレコメンデーションを返します。

// 取引先 (Account) レコードをコンテキストとして、Next Best Action 戦略を呼び出す Apex の例

public class NbaApexController {
    
    // AuraEnabled アノテーションにより、このメソッドを Lightning コンポーネントから呼び出し可能にする
    @AuraEnabled(cacheable=true)
    public static List<ConnectApi.Recommendation> getRecommendations(Id recordId, String strategyName) {
        
        // Strategy.execute メソッドの引数として渡すリクエストボディを構築する
        ConnectApi.StrategyRequest strategyRequest = new ConnectApi.StrategyRequest();

        // 戦略を実行するコンテキストとして、現在のレコードIDを設定する
        strategyRequest.contextRecordId = recordId;
        
        // 返されるレコメンデーションの最大数を設定する (ここでは5件)
        strategyRequest.maxResults = 5;

        List<ConnectApi.Recommendation> recommendations = new List<ConnectApi.Recommendation>();

        try {
            // Strategy Builder で定義された戦略を名前で呼び出す
            // 第一引数: 戦略のデベロッパー名
            // 第二引数: StrategyRequest オブジェクト
            ConnectApi.StrategyResult strategyResult = ConnectApi.Strategy.execute(strategyName, strategyRequest);

            // 戦略の実行結果からレコメンデーションのリストを取得する
            recommendations = strategyResult.recommendations;

        } catch (Exception e) {
            // エラーハンドリング: 戦略の実行中に例外が発生した場合の処理
            // 例えば、戦略が見つからない場合や、実行権限がない場合など
            System.debug('Error executing Next Best Action strategy: ' + e.getMessage());
            throw new AuraHandledException('Next Best Action の戦略の実行中にエラーが発生しました。');
        }

        return recommendations;
    }
}

コードの解説:

  • `ConnectApi.StrategyRequest`: 戦略を実行するためのリクエストパラメータを格納するオブジェクトです。ここでは、どのレコードを基点に判断するか (`contextRecordId`) と、取得したいレコメンデーションの最大数 (`maxResults`) を設定しています。
  • `ConnectApi.Strategy.execute(strategyName, strategyRequest)`: このメソッドが中核です。第一引数には、Strategy Builder で作成した戦略の「API参照名」を文字列として渡します。第二引数には、上記で作成したリクエストオブジェクトを渡します。
  • `ConnectApi.StrategyResult`: `execute` メソッドの戻り値です。このオブジェクトには、戦略によって選ばれたレコメンデーションのリスト (`recommendations`) が含まれています。
  • `ConnectApi.Recommendation`: 個々のレコメンデーションを表すオブジェクトです。これには、レコメンデーション名、説明、承認/却下ラベルなどが含まれています。
  • `try-catch` ブロック: 本番環境では、API 呼び出しは常にエラーハンドリングを伴うべきです。指定した戦略が存在しない、ユーザーに必要な権限がない、などの理由で実行が失敗する可能性があるため、堅牢なエラー処理を実装することが重要です。

注意事項

Einstein Next Best Action を導入・運用する際には、いくつかの重要な点に注意する必要があります。コンサルタントとして、私はお客様にこれらの点を事前に説明し、スムーズな導入を支援しています。

権限とアクセス権

Next Best Action を利用するには、ユーザーに適切な権限が必要です。

  • ユーザー権限: ユーザーがレコメンデーションを表示し、アクションを実行するためには、「フローを実行」権限が必要です。また、レコメンデーションが参照するオブジェクト(取引先、ケースなど)や、Flow が操作するオブジェクトへのアクセス権も必要です。
  • 権限セット: Salesforce は「Next Best Action User」や「Next Best Action Strategy Builder」といった標準の権限セットを提供しています。これらを活用することで、権限管理を簡素化できます。

API 制限とパフォーマンス

  • ガバナ制限: Apex から戦略を呼び出す場合、通常の Apex ガバナ制限(SOQL クエリの数、CPU 時間など)が適用されます。複雑なロジックを Apex で実装する場合は、処理が軽量になるように設計する必要があります。
  • パフォーマンスへの影響: 非常に複雑な戦略(多数の要素、複数のデータソースへのアクセス)は、ページの読み込み時間に影響を与える可能性があります。Strategy Builder 内のロジックは、できるだけシンプルで効率的に保つことが推奨されます。特に、多くのレコードをロードしてからフィルタリングするのではなく、可能な限り早い段階でレコードを絞り込む(例えば、ソースとなるレポートの条件を厳しくする)ことが重要です。

データ品質

Next Best Action の提案の質は、元となるデータの品質に直接依存します。「Garbage In, Garbage Out(ゴミを入れれば、ゴミしか出てこない)」の原則がここでも当てはまります。顧客データが不正確または古いままだと、見当違いの提案が表示され、ユーザーの信頼を損なう可能性があります。導入プロジェクトの一環として、データクレンジングやデータ拡充の戦略も検討すべきです。

エラー処理

ユーザーがレコメンデーションを承認した後に実行される Flow が失敗する可能性も考慮しなければなりません。Flow 内に適切なエラーパス(Fault Connector)を設けて、失敗した場合に管理者に通知したり、ユーザーに分かりやすいエラーメッセージを表示したりする仕組みを構築することが不可欠です。


まとめとベストプラクティス

Einstein Next Best Action は、単なる機能ではなく、顧客エンゲージメントの哲学を変革する強力なプラットフォームです。ルールとインテリジェンスを組み合わせることで、企業はすべての顧客接点において、一貫性があり、価値の高い、パーソナライズされた体験を提供できます。これにより、従業員の生産性向上、顧客満足度の向上、そして最終的な収益の増加が期待できます。

コンサルタントとして、成功する Next Best Action プロジェクトのために、以下のベストプラクティスを推奨します。

  1. 小さく始めて、素早く反復する (Start Small, Iterate Quickly): 最初から複雑で大規模な戦略を構築しようとせず、まずは1つの特定のユースケース(例:特定の商品をクロスセルする)に絞って、シンプルな戦略を作成します。その効果を測定し、フィードバックを元に改善を繰り返すアジャイルなアプローチが成功の鍵です。
  2. 明確なビジネス目標を設定する (Define Clear Business Goals): 「何を達成したいのか」を具体的に定義します。「アップセル成功率を 10% 向上させる」「平均通話処理時間を 30秒短縮する」など、測定可能な KPI を設定することで、戦略の ROI を明確に評価できます。
  3. ビジネス部門との密な連携 (Collaborate with Business Stakeholders): レコメンデーションのロジックは、現場の営業担当者やサービスエージェントの知見が不可欠です。IT 部門だけでなく、ビジネスの専門家を巻き込み、彼らのニーズや課題を深く理解した上で戦略を設計してください。
  4. 効果を測定し、最適化する (Measure and Optimize): レコメンデーションの表示回数、承認率、却下率などを追跡するためのレポートとダッシュボードを作成します。どの提案が効果的で、どれが無視されているのかをデータに基づいて分析し、戦略を継続的に微調整していくことが重要です。A/B テストも有効な手段です。
  5. ユーザー体験を最優先する (Prioritize User Experience): 一度に多くのレコメンデーションを表示してユーザーを混乱させないようにしましょう。提案は明確で、簡潔で、なぜそれが推奨されるのかが直感的に理解できるものであるべきです。ユーザーにとって本当に価値のある「次の一手」を提供することを目指してください。

Einstein Next Best Action を戦略的に活用することで、貴社の Salesforce は単なる CRM システムから、ビジネスの成長を積極的に推進するインテリジェントなアドバイザーへと進化するでしょう。

コメント