SalesforceのデータをBigQueryに自動同期して、Tableauで可視化する

## 概要
売上データを分析する際に、Salseforceのデータと他のデータを紐付けての分析は非常に重要になってきます。しかし、そのような分析を行うには、多くのデータを分析基盤に統合するという手間のかかる作業が待っています。そこで、今回はSalesforceのデータをBigQueryに[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)を使ってデータを統合し、Googleデータポータル(旧Data Studio)で可視化するまでを行ってみます。
今回、データの転送手段として採用した[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)は、Salesforceの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/9117c0f6-abd6-6909-bc7a-ee43d8555af1.png)
## ゴール
SalesforceのデータをこのようにBigQueryに統合し
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/2db71fe3-557e-c565-c27a-8faabd64ccdf.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/fcdfa4a0-9b5e-f0e3-f580-a2b20e5cf374.png)
Tableauで可視化します(作成後は自動で最新値に更新することも可能です）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/1925be74-066a-f3ba-c051-e0b0512a3300.png)
## こんな人におすすめ
・Salesforceのデータを分析基盤やDWH(データウェアハウス)へ取り込みたい方
・CRM上の営業データと、広告や売上などを紐付けて分析したい方
・BigQueryやTableauでSalesforceのデータを分析したい方
## 1. troccoでSalesforce→BigQueryの転送自動化
### 1-0. 事前準備
データの転送のためには[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)のアカウント・Googleアカウントが必要です。
無料トライアルを実施しているので、事前に申し込み・登録しておいてください！
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)
（申込の際に、この記事を見た旨を記載して頂ければご案内がスムーズに行えます）
### 1-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/081f5586-55bc-f8ad-71e3-5ec41d44e515.png)
転送元に「Salesforce」を指定し、転送先に「Google BigQuery」を選択して転送設定作成ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/fe547a29-229f-e052-49b8-dac1c7e7f727.png)
すると、設定画面になるので、必要な情報を入力していきます。
### 1-2. Salesforceとの連携設定
あとで見たときに自分で分かるように転送設定の名前とメモを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/6080e27d-a0b8-61d4-a485-30469953607b.png)
次に「転送元の設定」内の「接続情報を追加」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/3a0b23ef-8cf7-d3be-ac73-518adaba273d.png)
別のタブでSalesforceの接続情報の新規作成画面が開きます。
所定の欄を埋めることでSalesForceの認証情報を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/79dffb31-4e72-43da-d7b8-a9a8fe188495.png)
再度転送設定画面に戻り、接続情報の「再読込」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/4a9d3006-4650-16e3-6682-ebd988567c7e.png)
これでSalesforceとの連携は完了です。
### 1-3. Salesforceからのデータ抽出設定
次に、Salesforceから抽出したいオブジェクトを指定します。
今回は、以下のようにOpportunityのオブジェクトを、項目を全転送する方法で取得します。
（SOQLで記述して転送することも可能です）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/d98c1a88-4d06-0222-667a-b6ed2146356f.png)
### 1-4. 転送先BigQueryの設定
「接続情報を追加」ボタンからBigQueryの接続設定を行います。名前と、認証方式としてサービスアカウント(JSONキー)を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/8596ad27-22f6-82ad-3b6a-2c3c8013180e.png)
JSONキーの取得方法については[こちらのドキュメント](https://docs.trocco.io/s/article/BigQuery%E3%81%AE%E6%8E%A5%E7%B6%9A%E8%A8%AD%E5%AE%9A)を参照してください。
「接続情報を追加」ボタンからBigQueryの接続設定を行い、データセット・テーブル・データセットのロケーションを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/fc7e8471-e795-27b8-bb7a-37be55281f7f.png)
最後に、接続確認が問題なく通るか確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/4b67cc08-d8b1-91a9-f194-a291c021e30a.png)
これで入力は完了です。「次のSTEPへ」をクリックして次に進みましょう。
### 1-5. データのプレビュー
少し待つと、転送元のデータがプレビューされます。ここではSalesforcefから取り込んだデータが表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/3a7a1d06-1be2-806a-22ca-a4d44a6183fa.png)
問題が無ければ、確認画面に移り、保存して適用しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/73765bf6-8ff5-a7c2-7cb1-aaeae8da6e86.png)
続いて、「スケジュール・通知設定」に進みます。
### 1-6. スケジュール・通知設定
「スケジュール・トリガー設定」タブを開き、スケジュールを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/cc8c18fd-0752-ccd9-d304-115926a0f222.png)
以下のように実行スケジュールを設定することで、転送を定期的に実行し自動化することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/755133a3-7f2e-83e1-eb7e-b61e43d4a0b3.png)
また、必須の設定ではないですが、ジョブの実行ステータスに応じてEmailやSlackに通知を行うことが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/0f470c5c-5ce4-a663-86ff-da0f4a158ae8.png)
### 1-7. データ転送ジョブの実行
設定は以上です。最後に、手動で転送ジョブを実行し、BigQueryにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/b01f0e38-7e43-e622-6e59-43be534ecb02.png)
これで転送は完了です！
## 2. BigQueryの設定
特に設定することありません。データが転送されているので、今すぐに分析・可視化を行うことが出来ます。
データがきちんと送られているかを確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/fcdfa4a0-9b5e-f0e3-f580-a2b20e5cf374.png)
転送されていることが確認できました！
## 3. Tableauで可視化
それでは、これらのデータをTableauで可視化していきます。  
まずはBigQueryとTableauの接続設定を行います。
新しいワークブックを作成し、「コネクタ」タブから「Google BigQuery」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/a45cfdfc-26b2-e34f-c99f-1e374760da81.png)
続いて、接続情報の中からデータの可視化を行いたいテーブルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/793920ff-a464-6880-7748-32ec0f42bd49.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/4dc72979-67fd-2267-e3bc-cc049906d791.png)
続いて、下のタブの中から「新しいワークシート」を選択し、グラフを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/9f5be26f-6a7b-23fb-5d00-8ba1d9d9471e.png)
ディメンションとメジャーを選択し、右上の表示形式から適切なグラフを選択することで、グラフを作成することができます。
例えば、ディメンションに「Name」、メジャーに「Expected Revenue」を選択し、水平棒グラフを選んでみます。
すると、以下のような棒グラフが表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/27958067-f8b0-0a65-361e-8ced2a73dd2b.png)
ここから、グラフの大きさや位置、タイトルなどを好みに合わせて編集します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/6054d742-beae-12bf-95bc-11dbdf648b3f.png)
その他に必要な情報を作成していき、最後に1つのダッシュボードにまとめます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216922/64a03db4-051f-1e07-ea25-d980048a1a2a.png)
完成しました！
## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)を使うと簡単にSalesforceのデータを取得し、DWH(BigQuery)に貯めることが出来ます。
今回はSalesforceのデータのみで可視化しましたが、BigQueryにデータを貯めることで、BigQuery内にある他のデータとも紐付けることができ、より高度なデータ分析が可能になります。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。
[https://trocco.io/lp/index.html](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)
実際に試してみたい場合は、[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=salesforce_to_bigquery_tableau)を実施しているので、この機会にぜひ一度お試しください。（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内することができます）
その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
[troccoの使い方まとめ（CRM・広告・データベース他）](https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)