Salesforceのデータをスプレッドシートでもっと活用したい…
Salesforceを利用しているB2B企業の多くが、「レポートデータをスプレッドシートに自動で反映したい」「手作業でのデータ転記をなくしたい」「営業データを定期的にエクスポートしたい」といった課題を抱えています。
GAS(Google Apps Script)を使えば、SalesforceとGoogleスプレッドシートを連携し、データの自動同期や定期的なレポート出力を実現できます。この記事では、GASとSalesforceの連携方法を、非エンジニア向けのアドオン活用からAPI連携の実装手順まで解説します。
この記事のポイント:
- GAS×Salesforce連携で、スプレッドシートへのデータ自動同期が実現可能
- 連携方法は2種類:Salesforce Connector(ノーコード)とREST API(カスタマイズ向け)
- API連携にはSalesforceの管理者権限が必要な場合がある
- GASのトリガー機能で定期的な自動実行が可能(毎時・毎日など)
- アクセストークンの期限切れやAPI仕様変更への対応が必要
GASとSalesforce連携でできること:業務自動化の可能性
GASとSalesforceを連携することで、日常業務の様々な自動化が可能になります。
(1) スプレッドシートへのデータ自動同期
Salesforceの顧客情報、商談データ、レポートなどをGoogleスプレッドシートに自動同期できます。
活用例:
- 週次の営業レポートを自動でスプレッドシートに出力
- 顧客リストを最新の状態に自動更新
- 商談の進捗状況をリアルタイムで共有
手作業でのデータ転記が不要になり、常に最新のデータをスプレッドシート上で確認・分析できるようになります。
(2) レポート自動整形・メール配信の自動化
Salesforceのレポートデータを取得し、GASで整形・加工した後、メール配信まで自動化することも可能です。
活用例:
- 日次の売上レポートを整形してチームに自動配信
- 特定条件の商談リストを抽出してアラートメール送信
- 月次の実績データをグラフ化して経営層に共有
2024年には、非エンジニアがマーケティングオートメーションを使わずにメール配信を完全自動化した事例も登場しています。
GAS(Google Apps Script)の基礎知識
(1) GASとは:JavaScriptベースのスクリプトプラットフォーム
GAS(Google Apps Script)は、Googleが提供するJavaScriptベースのスクリプトプラットフォームです。Googleスプレッドシート、Gmail、Googleカレンダーなど、Google Workspaceの各種サービスを操作・連携できます。
GASの特徴:
- JavaScriptの文法で記述可能
- ブラウザ上のエディタで開発できる(環境構築不要)
- Google Workspaceとの連携が容易
- 外部APIへのHTTPリクエストが可能
- トリガー機能で定期実行を自動化
(2) GASでできること(スプレッドシート操作・外部API連携)
スプレッドシート操作:
- セルの読み書き、シートの作成・削除
- データの並び替え・フィルタリング
- グラフの作成・更新
- フォーマットの適用
外部API連携:
- REST APIへのHTTPリクエスト(GET/POST/PUT/DELETE)
- JSONデータの取得・解析
- 外部サービスとのデータ連携
- OAuthによる認証
これらの機能を組み合わせることで、Salesforceのデータをスプレッドシートに取り込み、加工・分析することが可能になります。
GAS×Salesforce連携の2つの方法(アドオン vs API)
(1) Salesforce Connector:非エンジニアでも簡単に連携
Salesforce Connector(Data Connector for Salesforce)は、GoogleスプレッドシートとSalesforceを連携するアドオンです。プログラミング不要で、スプレッドシートから直接Salesforceのデータをインポート・編集・同期できます。
Salesforce Connectorの特徴:
- 無料で利用可能
- ノーコードでSalesforceデータを取得
- スプレッドシート上でデータ編集→Salesforceに反映
- Auto Refresh機能で最短4時間ごとに自動同期
利用手順(概要):
- Googleスプレッドシートを開く
- アドオン → アドオンを取得 → 「Data Connector for Salesforce」を検索
- アドオンをインストール
- Salesforceアカウントで認証
- 取得したいオブジェクト・レポートを選択
- データをインポート
※詳細な設定手順はGoogle公式ヘルプを参照してください。
向いているケース:
- プログラミングなしで連携したい
- 標準的なデータ取得・同期で十分
- 定型のレポートを自動出力したい
(2) REST API連携:柔軟なカスタマイズが可能
SalesforceのREST APIをGASから直接呼び出すことで、より柔軟なカスタマイズが可能になります。
REST API連携の特徴:
- 複雑な条件でのデータ取得が可能
- データの更新・作成・削除も対応
- 他の処理と組み合わせた自動化が可能
- 詳細なエラーハンドリングが実装できる
向いているケース:
- アドオンでは実現できない処理が必要
- データの更新・作成を自動化したい
- 複数のサービスを組み合わせた連携が必要
- 詳細なカスタマイズ・制御が必要
(3) 他の連携方法(Zapier・連携ツール)との比較
GAS以外にも、Salesforceとスプレッドシートを連携する方法があります。
| 方法 | 特徴 | コスト | 向いているケース |
|---|---|---|---|
| Salesforce Connector | ノーコード、簡単 | 無料 | 定型的なデータ連携 |
| GAS(API連携) | 柔軟、カスタマイズ可能 | 無料 | 複雑な自動化処理 |
| Zapier | ノーコード、多数連携 | 有料(無料枠あり) | 複数サービスの連携 |
| CData Connect Cloud | JDBC経由、多機能 | 有料 | 大量データの高速連携 |
用途・予算・技術リソースに応じて適切な方法を選択することが重要です。
API連携の実装手順(認証からデータ取得まで)
(1) 接続アプリケーションの作成とOAuth認証
GASからSalesforce APIを利用するには、Salesforce側で「接続アプリケーション」を作成し、OAuth認証でアクセストークンを取得する必要があります。
事前準備(Salesforce管理者が実施):
- Salesforceの「設定」画面を開く
- 「アプリケーションマネージャ」→「新規接続アプリケーション」
- 基本情報を入力(アプリケーション名、API名など)
- OAuth設定を有効化
- コールバックURLを設定
- OAuthスコープを設定(「フルアクセス」など)
- 保存して「コンシューマ鍵」「コンシューマの秘密」を取得
※Salesforceの管理者権限がないとこの設定ができないため、管理者との調整が必要です。
(2) アクセストークンの取得とリフレッシュ処理
OAuth認証でアクセストークンを取得します。トークンには有効期限があるため、refresh_tokenを使った再取得処理も実装が必要です。
トークン取得の流れ:
- 認証エンドポイントにリダイレクト
- ユーザーがSalesforceでログイン・許可
- 認可コードを受け取る
- 認可コードをアクセストークンに交換
- refresh_tokenを保存(トークン更新用)
注意点:
- アクセストークンは期限切れになるため、refresh_tokenで再取得する処理が必要
- トークンはPropertiesServiceなどで安全に保存
- セキュリティ上、トークン情報はコード内にハードコードしない
(3) SoQL(Salesforce Object Query Language)でのデータ取得
SoQL(Salesforce Object Query Language)は、Salesforce独自のクエリ言語です。SQLと似た構文で、条件に合ったデータを取得できます。
SoQLの例:
SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE StageName = 'Closed Won'
SQLとの主な違い:
- テーブル名ではなくオブジェクト名を使用
- カラム名ではなく項目名(API参照名)を使用
- JOINの代わりにリレーションシップクエリを使用
※SoQLの詳細はSalesforce公式ドキュメントを参照してください。
自動化のトリガー設定とエラーハンドリング
(1) GASトリガー機能(時間主導型・日付ベース)
GASのトリガー機能を使えば、定期的な自動実行を設定できます。
トリガーの種類:
- 時間主導型: 毎分、毎時、毎日、毎週、毎月
- 日付ベース: 特定の日時に実行
- スプレッドシートのイベント: 編集時、フォーム送信時など
設定手順:
- スクリプトエディタを開く
- 「トリガー」アイコンをクリック
- 「トリガーを追加」
- 実行する関数、実行頻度を設定
- 保存
(2) Auto Refresh機能の活用(最短4時間ごと)
Salesforce Connectorを使用している場合、Auto Refresh機能で最短4時間ごとにSalesforceレポートをスプレッドシートに自動出力できます。
Auto Refreshの設定:
- Salesforce Connectorを開く
- 対象のレポート/オブジェクトを選択
- Auto Refreshを有効化
- 更新頻度を設定(4時間、8時間、12時間、24時間)
(3) トークン期限切れ・API仕様変更への対応
長期運用では、トークンの期限切れやAPI仕様の変更に対応する必要があります。
エラーハンドリングのポイント:
- トークン期限切れ: refresh_tokenで新しいアクセストークンを取得
- API仕様変更: Salesforceのリリースノートを定期確認
- レート制限: API呼び出し回数の上限に注意
- エラーログ: 実行エラーを記録して原因追跡
実装上の注意:
- try-catch文でエラーをキャッチ
- エラー発生時にアラートメールを送信
- 定期的にスクリプトの動作確認を実施
まとめ:活用事例と連携方法の選び方
GASとSalesforceの連携により、データの自動同期や業務の効率化が実現できます。連携方法は、技術リソースと要件に応じて選択することが重要です。
連携方法の選び方:
| 要件 | 推奨方法 |
|---|---|
| プログラミングなしで連携したい | Salesforce Connector |
| 定型的なデータ同期で十分 | Salesforce Connector |
| 複雑な条件でのデータ取得が必要 | GAS + REST API |
| データの更新・作成を自動化したい | GAS + REST API |
| 複数サービスとの連携が必要 | Zapier、連携ツール |
導入時のチェックポイント:
- Salesforce管理者との事前調整(API連携の場合)
- 取得したいデータ・処理内容の明確化
- セキュリティ要件の確認(トークン管理など)
- エラー発生時の対応方針
- 定期的なメンテナンス体制
次のステップ:
- 自動化したい業務・取得したいデータを整理する
- 技術リソースと要件に応じて連携方法を選択する
- Salesforce Connectorの場合はアドオンをインストールして試す
- API連携の場合はSalesforce管理者と調整して接続アプリケーションを作成
※Salesforce APIの仕様や設定方法は変更される可能性があります。最新情報はSalesforce公式ドキュメント・Google公式ヘルプを参照してください。
よくある質問:
Q: GAS×Salesforce連携には管理者権限が必要? A: API連携の場合、Salesforce側で接続アプリケーションを作成する必要があり、通常は管理者権限が必要です。事前に社内のSalesforce管理者との調整が必要になります。Salesforce Connectorの場合は、個人のSalesforceアカウントで認証できます。
Q: 非エンジニアでもGAS×Salesforce連携はできる? A: Salesforce Connectorアドオンを使えば、プログラミングなしで連携可能です。スプレッドシートからSalesforceデータのインポート・編集・同期ができます。複雑な処理が必要な場合はエンジニアの協力が必要になります。
Q: SoQLとは?SQLとの違いは? A: SoQL(Salesforce Object Query Language)はSalesforce専用のクエリ言語です。SQLと似た構文ですが、オブジェクト名・項目名はSalesforceの定義に従います。JOINの代わりにリレーションシップクエリを使用する点も異なります。
Q: 定期的なデータ同期は自動化できる? A: GASのトリガー機能を使えば、時間主導型(毎時・毎日など)で自動実行が可能です。Salesforce ConnectorのAuto Refresh機能なら、最短4時間ごとにデータを自動同期できます。
