G-gen の松尾です。当記事では、Gemini Enterprise と Salesforce を連携し、顧客情報の問い合わせを行う検証方法について解説します。

はじめに
Gemini Enterprise とは
Gemini Enterprise(旧称 Google Agentspace)は、Google Cloudが提供する企業向けの AI エージェントプラットフォームです。企業の様々なシステムやアプリケーションに散在する情報を横断的に検索し、 AI を利用して情報に基づいたタスクの実行や自動化を支援することを目的としています。
詳細は、以下の記事を参考にしてください。
Salesforce を連携するメリット
Salesforce は多くの企業で顧客管理(CRM)や営業支援(SFA)のシステムとして利用されています。Salesforce が保持する顧客データや営業活動、サービス履歴などの重要な情報を、Gemini Enterprise の AI 検索機能やエージェント機能を利用して、より効果的に利用できます。
Gemini Enterprise の統合検索機能により、Salesforce 内に存在する顧客情報、商談履歴、ケース情報などを、他の社内システム(Google Drive、SharePoint、Jira など)の情報と合わせて、横断検索できます。また、Salesforce 専用のインターフェースを開くことなく、Gemini Enterprise の Web インターフェースから自然言語で問い合わせることができます。
これにより、 Salesforce に保存された顧客情報や商談情報に迅速にアクセスし、情報の活用が促進されることが期待できます。
Salesforce セットアップ
エディションの確認
Salesforce は、Enterprise エディションまたは Developer エディションが必要です。トライアルアカウントでは、Gemini Enterprise と連携することができません。
- 参考 : Salesforce Editions ‐ Salesforce
- 参考 : Connect Salesforce ‐ Before you begin ‐ Gemini Enterprise
接続ユーザーの準備
Gemini Enterprise から Salesforce に接続するための専用ユーザーアカウントを作成するか、既存のユーザーを使用します。
このユーザーには、Gemini Enterprise がアクセスする必要がある Salesforce オブジェクト(例: Account、Case、Contact など)への読み取り権限が必要です。また、API アクセスが許可されている必要があります。
ContentDocument を連携対象に含める場合は、接続ユーザーの [すべてのファイルをクエリ] 権限を有効にします。
- 参考 : User Permissions ‐ Salesforce
- 参考 : Administrator users unable to query All ContentNote and ContentDocument ‐ Salesforce
CORS の設定
Gemini Enterprise のような外部アプリケーションから Salesforce のデータにブラウザを介してアクセスする場合、Salesforce 側で OAuth エンドポイントに対する CORS (Cross-Origin Resource Sharing)の設定が必要です。
- [設定] で、[クイック検索] ボックスに「CORS」と入力して、[CORS] を選択
https://console.cloud.google.comを CORS 許可リストに追加- [クロスオリジンリソース共有 (CORS)ポリシー設定] セクションで、[編集] をクリック
- [OAuth エンドポイントの CORS を有効化] を選択

接続アプリケーションの設定
- [設定] で、[クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーションマネージャー] を選択
- [新規接続アプリケーション] をクリック
- [接続アプリケーション]を作成
- 接続アプリケーションの名前、連絡先メールを入力
- [OAuth 設定の有効化] を選択
- [コールバック URL] に
https://vertexaisearch.cloud.google.com/console/oauth/salesforce_oauth.htmlを入力 - 接続アプリケーションに適用する OAuth 範囲を選択します。Full Access(full)と Perform request at any time(refresh_token, offline_access)を追加
- [クライアントログイン情報フローを有効化] を選択
- [認証コードおよびログイン情報フローを許可] を選択
- [認証コードおよびログイン情報フローの POST 本文でユーザーログイン情報を要求] を選択
- [クライアントログイン情報フロー] の [別のユーザーとして実行] で、接続ユーザーを選択。このユーザーは、コネクタがデータを抽出したいすべてのエンティティに対して読み取り権限を持っている必要がある

- 参考 : Configure Basic Connected App Settings - Salesforce
- 参考 : Enable OAuth Settings for API Integration - Salesforce
- 参考 : Configure a Connected App for the Authorization Code and Credentials Flow - Salesforce
接続アプリケーションのポリシー設定
作成した接続アプリケーションのポリシーを編集します。
- 作成した接続アプリケーションを見つけ、「編集」をクリック
- [IP 制限]を [IP 制限の緩和] に設定
- [更新トークンポリシー] を [更新トークンは取り消されるまで有効] またはより厳格な設定を選択
- [許可されているユーザー] を [すべてのユーザーは自己承認可能] に設定

なお、組織全体の設定で「すべての要求でログイン IP アドレスの制限を適用」が有効な場合 、接続アプリケーションで [IP 制限の緩和] を設定しても IP 制限は解除されません 。IP 制限を適用したい場合は、「ネットワークアクセス」の信頼済み IP 範囲で Google Cloud の IP アドレスを許可リストに追加する必要があります。IP アクセス制限を無効にする場合は、「すべての要求でログイン IP アドレスの制限を適用」のチェックを外してください
OAuth および OpenID Connect 設定の有効化
- [OAuth および OpenID Connect 設定] を選択
- [認証コードおよびログイン情報フローを許可] を有効化
- [OAuth ユーザーエージェントフローを許可] を有効化
- [OAuth ユーザー名パスワードフローを許可] を有効

データストア作成に必要な情報の取得
Gemini Enterprise でデータストア(Salesforce へのコネクタ)を作成する際に必要な情報を、Salesforce 側で取得します。
Instance URL
「私のドメイン」を確認します。Instance URL の値は https://[私のドメイン].my.salesforce.com です。
クライアント ID(Client ID) / クライアント シークレット(Client Secret)
- [アプリケーションマネージャー] で作成した アプリケーションの「参照」をクリック
- 接続アプリケーションの設定画面で「コンシューマの詳細を管理」をクリック
- このとき、メールアドレスの検証が求められる場合があります
- 「コンシューマ鍵」(Client ID)と「コンシューマの秘密」(Client Secret / Client Key)をメモ
Gemini Enterprise セットアップ
Gemini Enterprise への認証
Gemini Enterprise へのログインは、Google Identity(Google Workspace や Cloud Identity で管理された Google アカウントでログインする)または、Third-party identity provider(Entra ID や Okta など外部 IdP から OIDC や SAML 2.0 で認証連携をしてログインする)の2種類から選択できます。
まず、このセットアップを行い、ユーザーが Gemini Enterprise にログインできるように設定します。
Gemini Enterprise は、接続されたデータソースが持つ既存のアクセス制御リスト(ACL)に従って、検索結果に対するアクセス制御を行います。これにより、Gemini Enterprise にログインしているユーザーがアクセス権を持っているコンテンツのみが、検索結果として表示されます。
アプリを作成する
Google Cloud コンソールで、AI Applications 画面に遷移します。
ナビゲーション メニューで、[アプリ] をクリックします。
[作成するアプリの種類]で Gemini Enterprise の下部の「作成」をクリックします。

[構成] で任意のアプリ名、会社名または組織名を入力します。

アプリのロケーションは制限事項を考慮し、特にデータの所在等に関する要件がない場合は global が推奨されます。
階層の選択は [検索 + アシスタント] を選択します。
Salesforce コネクタを作成する
データストアの設定画面で、[データストアを作成]をクリックします。サードパーティのソースの Salesforce を選択します。

[認証の設定] で、先ほど確認した Client ID、Client Secret、Instance URL を入力します。

[詳細オプション] の [Enable Static IP Addresses] では Salesforce 側で IP アドレスの制限をしていないため、オフのままにします。
[同期するエンティティ] は任意のエンティティを選択します。今回の検証では、全てのエンティティを同期します。

コネクタ作成後に、[データの取り込みアクティビティ] を確認します。ステータスが成功していれば完了です。

- 参考 : Connect Salesforce
検証
ナビゲーション メニューで、[プレビュー]をクリックします。
この画面から、Salesforce に作成したテスト用顧客データを参照できるか、実際に問い合わせてみます。
プロンプトに「顧客情報を教えてください」と入力すると、Salesforce のテスト用顧客データを参照できました。

松尾 和哉 (記事一覧)
クラウドソリューション部クラウドデベロッパー課
これまで主にAWSを活用する企業でインフラエンジニアとして従事していました。Google Cloudに魅力を感じてG-genにジョイン。アウトプットを経てコミュニティへの還元や自己研鑽をしたいと思っています。
