G-gen の松尾です。本記事では、Google Agentspace と Salesforce を連携し、顧客情報の問い合わせを行う検証方法について解説します。
はじめに
Google Agentspace とは
Google Agentspace(以下、Agentspace)は、Google Cloudが提供する企業向けの AI エージェントプラットフォームです。企業の様々なシステムやアプリケーションに散在する情報を横断的に検索し、 AI を利用して情報に基づいたタスクの実行や自動化を支援することを目的としています。
詳細は、以下の記事を参考にしてください。
Agentspace と Salesforce を連携するメリット
Salesforce は多くの企業で顧客管理(CRM)や営業支援(SFA)のシステムとして利用されています。Salesforce が保持する顧客データや営業活動、サービス履歴などの重要な情報を、Agentspace の AI 検索機能やエージェント機能を利用して、より効果的に利用できます。
Agentspace の統合検索機能により、Salesforce 内に存在する顧客情報、商談履歴、ケース情報などを、他の社内システム(Google Drive、SharePoint、Jira など)の情報と合わせて、横断検索できます。また、Salesforce 専用のインターフェースを開くことなく、Agentspace の Web インターフェースから自然言語で問い合わせることができます。
これにより、 Salesforce に保存された顧客情報や商談情報に迅速にアクセスし、情報の活用が促進されることが期待できます。
Salesforce セットアップ
エディションの確認
Salesforce は、Enterprise エディションまたは Developer エディションが必要です。トライアルアカウントでは、Agentspace と連携することができません。
- 参考 : Salesforce Editions
- 参考 : Before you begin
接続ユーザーの準備
Agentspace から Salesforce に接続するための専用ユーザーアカウントを作成するか、既存のユーザーを使用します。
このユーザーには、Agentspace がアクセスする必要がある Salesforce オブジェクト(例: Account、Case、Contact など)への読み取り権限が必要です。また、API アクセスが許可されている必要があります。
ContentDocument を連携対象に含める場合は、接続ユーザーの [すべてのファイルをクエリ] 権限を有効にします。
CORS の設定
Agentspace のような外部アプリケーションから 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 本文でユーザーログイン情報を要求] を選択
- [クライアントログイン情報フロー] の [別のユーザーとして実行] で、接続ユーザーを選択。このユーザーは、コネクタがデータを抽出したいすべてのエンティティに対して読み取り権限を持っている必要がある
接続アプリケーションのポリシー設定
作成した接続アプリケーションのポリシーを編集します。
- 作成した接続アプリケーションを見つけ、「編集」をクリック
- [IP 制限]を [IP 制限の緩和] に設定
- [更新トークンポリシー] を [更新トークンは取り消されるまで有効] またはより厳格な設定を選択
- [許可されているユーザー] を [すべてのユーザーは自己承認可能] に設定
なお、組織全体の設定で「すべての要求でログイン IP アドレスの制限を適用」が有効な場合 、接続アプリケーションで [IP 制限の緩和] を設定しても IP 制限は解除されません 。IP 制限を適用したい場合は、「ネットワークアクセス」の信頼済み IP 範囲で Google Cloud の IP アドレスを許可リストに追加する必要があります。IP アクセス制限を無効にする場合は、「すべての要求でログイン IP アドレスの制限を適用」のチェックを外してください
- 参考 : 組織の信頼済み IP 範囲の設定
OAuth および OpenID Connect 設定の有効化
- [OAuth および OpenID Connect 設定] を選択
- [認証コードおよびログイン情報フローを許可] を有効化
- [OAuth ユーザーエージェントフローを許可] を有効化
- [OAuth ユーザー名パスワードフローを許可] を有効
データストア作成に必要な情報の取得
Agentspace でデータストア(Salesforce へのコネクタ)を作成する際に必要な情報を、Salesforce 側で取得します。
Instance URL
「私のドメイン」を確認します。Instance URL の値は https://[私のドメイン].my.salesforce.com
です。
- 参考 : 私のドメインとは?
クライアント ID(Client ID) / クライアント シークレット(Client Secret)
- [アプリケーションマネージャー] で作成した アプリケーションの「参照」をクリック
- 接続アプリケーションの設定画面で「コンシューマの詳細を管理」をクリック
- このとき、メールアドレスの検証が求められる場合があります
- 「コンシューマ鍵」(Client ID)と「コンシューマの秘密」(Client Secret / Client Key)をメモ
Agentspace セットアップ
データソースへのアクセス制御の設定
Agentspace は、接続されたデータソースが持つ既存のアクセス制御リスト(ACL)に従って、検索結果に対するアクセス制御を行います。これにより、Agentspace にログインしているユーザーがアクセス権を持っているコンテンツのみが、検索結果として表示されます。
データソースのアクセス制御を有効にするには、Workforce Identity という仕組みを使い、組織の ID プロバイダー(Active Directory、Entra ID、Okta など)を Google Cloud と連携するように設定する必要があります。Agentspace は、この ID プロバイダーを使用して検索を実行するエンドユーザーを識別し、データソースに対するアクセス権を適用します。
当記事の検証では、Agentspace にログインしているユーザーの認証情報を用いたアクセス制御の反映はスコープ外としています。そのため Agentspace による検索は、コネクタに設定した Salesforce ユーザーの権限でアクセス可能なすべてのデータが対象となっています。
アプリを作成する
Google Cloud コンソールで、AI Applications 画面に遷移します。
ナビゲーション メニューで、[アプリ] をクリックします。
[作成するアプリの種類]で Agentspace の下部の「作成」をクリックします。
[構成] で任意のアプリ名、会社名または組織名を入力します。
アプリのロケーションは制限事項を考慮し、2025年5月時点では、ロケーションとして global
が推奨されます。
階層の選択は [検索 + アシスタント] を選択します。
Salesforce コネクタを作成する
データストアの設定画面で、[データストアを作成]をクリックします。サードパーティのソースの Salesforce を選択します。
[認証の設定] で、先ほど確認した Client ID、Client Secret、Instance URL を入力します。
[詳細オプション] の [Enable Static IP Addresses] では Salesforce 側で IP アドレスの制限をしていないため、オフのままにします。
[同期するエンティティ] は任意のエンティティを選択します。今回の検証では、全てのエンティティを同期します。
コネクタ作成後に、[データの取り込みアクティビティ] を確認します。ステータスが成功していれば完了です。
検証
プレビュー機能から質問する
ナビゲーション メニューで、[プレビュー]をクリックします。
この画面から、Salesforce に作成したテスト用顧客データを参照できるか、実際に問い合わせてみます。
プロンプトに「顧客情報を教えてください」と入力すると、Salesforce のテスト用顧客データを参照できました。
松尾 和哉 (記事一覧)
クラウドソリューション部クラウドデベロッパー課
これまで主にAWSを活用する企業でインフラエンジニアとして従事していました。Google Cloudに魅力を感じてG-genにジョイン。アウトプットを経てコミュニティへの還元や自己研鑽をしたいと思っています。