Salesforceには、日々商談やリード情報といった顧客データが蓄積されています。これらのデータを活用して分析を行うために、SalesforceからBigQueryへデータを転送する方法の1つをご紹介します。
免責事項
当サイトのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもございますので、あらかじめご了承ください。掲載内容によって生じたいかなる損害に対しても、当サイトは一切の責任を負いかねます。
今回の検証における前提と事前準備
本記事では、Salesforceのサンドボックス環境からBigQueryへデータを転送する手順をご紹介します。
※サンドボックスの詳細な説明や環境構築は割愛します。詳しくは以下をご参照ください。
Create a Sandbox
Salesforce側の必要な権限
オブジェクトの設定や接続アプリケーションの作成・管理を行うため、今回は「システム管理者」を付与します。
具体的な作業が伴う場合、以下の権限を考慮する必要があります。
- システム管理者権限:
オブジェクト設定や接続アプリケーションの作成・管理が可能です。 - APIアクセス権限(「APIの有効化」):
外部システムからのAPIリクエストを許可します。 - OAuth設定権限(「Connected Appsの管理」):
接続アプリケーションでOAuth 2.0設定を行うために必要です。 - オブジェクトへのアクセス権限:
商談などの対象オブジェクトに対し、読み取り・更新権限を付与します。 - ユーザー管理権限(「ユーザーの管理」):
接続アプリケーションの使用者管理を行う場合に必要です。 - セキュリティ設定の管理権限(「セキュリティ設定の管理」):
IP制限やセッションタイムアウトの設定変更が必要な場合に使用します。
BigQuery側の必要な権限
BigQueryでSalesforceデータ転送を行うには、以下のIAMロールを付与します。(BigQuery Data Transfer Service を有効にする | Google Cloud)
- bigquery.admin:
最も一般的なタスクを実行するために必要なIAM権限が付与されています。(bigquery.transfers.update、bigquery.transfers.getも含む。) - bigquery.dataEditor:
転送先データセットに書き込む権限 - bigquery.jobUser:
データ転送ジョブを実行する権限
実際にデータ転送を行う
接続アプリケーションの設定
サンドボックスには、今回の転送テスト用として、ダミーの商談データを2件登録しました。

はじめに、ログイン後表示される画面右上の設定ボタンから、設定ページへ遷移します。

次に、「アプリケーションマネージャ」から、新規接続アプリケーションを作成します。

以下のように基本情報を入力します。
基本情報の入力
- 赤線の引かれた箇所は必須項目
- 「Oauth設定の有効化(Enable Oauth Setting)」にチェック:Oauthの接続
- コールバックURL
本番環境:https://login.salesforce.com/services/oauth2/token
サンドボックス環境:https://test.salesforce.com/services/oauth2/token - 利用可能なOauth範囲を決定
必須項目:「APIを利用してユーザーデータを管理」
推奨:「フルアクセス」、「いつでも要求を実行」 - クライアントログイン情報フローを有効化
チェック(あとで誰として実行するのか選択)
- コールバックURL
- 保存
次に、クライアント認証情報フローを構成します。
設定画面より、「接続アプリケーションを管理する」から、当該アプリケーションを編集します。

- クライアントログイン情報フロー
- 別のユーザーとして実行に正しいユーザーを選択します。(ここでは作業者自身を設定)
- Oauthポリシーにてアクセス制限を設定します。(全ユーザーor管理者限定)

接続アプリケーション管理でIP制限を変更(必要に応じて)
設定画面より、「接続アプリケーションを管理する」から、当該アプリケーションを編集します。
先ほどの画面から、Oauthポリシー”IP制限の緩和”で、「有効化されたデバイスのIP制限を緩和」を選択し保存します。

BigQueryへ渡すSalesforce情報を取得する(Lightning Experience版)
BigQueryに渡す情報として、Mydomain、クライアントID、クライアントシークレットを取得する必要があります。今回は以下のように設定します。
Mydomain:
- 設定から、”私のドメイン”と検索
- “現在のURL”のドメインサフィックスを除いた部分が、Mydomainとなります。

クライアントID・クライアントシークレット:
- 「アプリケーションマネージャ」で対象アプリケーションの右端メニュー「参照」→「コンシューマーキーと秘密」より確認

※作業者メールアドレスに認証コードが送信されます。認証が完了すると、詳細が表示される流れになります。
BigQuery側のデータ転送作業
Bigquery Data Transfer Serviceを有効化し、データを保存するデータセットの作成が事前準備として必要です。
そこまで完了したら、Salesforceのデータ転送を設定します。
- Salesforceのデータ転送を設定:
「データ転送」タブから「転送を作成」をクリックし、ソースに「Salesforce」を選択
- データソースの詳細設定
- Mydomain、クライアントID、クライアントシークレットを入力
- 転送するオブジェクトを選択(正しい情報を入力しないと候補が表示されません)
- 必要なオブジェクト名はSalesforceのオブジェクトマネージャで確認可能
- 例:商談は「Opportunity」
- その他のオブジェクト名は公式ヘルプを参照
- 転送先の設定:
任意の転送先を入力 - サービスアカウント:
Googleアカウントでログイン済みの場合、省略可能 - 通知オプション:
メール通知の有無を設定 - 保存:
すべての設定を確認して保存
BigQuery側でのデータ転送結果の確認
転送が成功すると、緑のチェックマークが表示されます。

データセット内を確認し、Opportunity テーブルをプレビューすると、転送された2件のダミーデータが確認できます。
まとめ
本記事では、SalesforceからBigQueryへデータを転送する方法をご紹介しました。
BigQueryにSalesforceデータが蓄積されることで、顧客分析がより高度に行えるだけでなく、LookerやTableauといったBIツールを活用したデータの可視化やモニタリングも可能になります。
さらに、BigQueryに蓄積されたデータは、GA4データとの突合にも活用できるなど、マーケティングデータ連携への第一歩にもなります。こうしたデータ連携は、データドリブンな意思決定を実現するための第一歩です。SalesforceとBigQueryのスムーズな連携を進める際に、本記事が参考になれば幸いです。