Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?
@hiro_koba_jp

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

概要

売上データを分析する際に、Salseforceのデータと他のデータを紐付けての分析は非常に重要になってきます。しかし、そのような分析を行うには、多くのデータを分析基盤に統合するという手間のかかる作業が待っています。そこで、今回はSalesforceのデータをBigQueryにtroccoを使ってデータを統合し、Googleデータポータル(旧Data Studio)で可視化するまでを行ってみます。

その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
troccoの使い方まとめ(CRM・広告・データベース他)

image01.png

ゴール

こんなのを30分くらいで作り上げます(当然、作ったあとは自動で最新値が更新されるようにします)

image02.png

こんな人におすすめ

  • Salesforceのデータを分析基盤・DWHに取り込みたい方
  • CRM上の営業データと、広告や売上などを紐付けて分析したい方
  • 様々なデータ取得の作業に疲れている方

1. DWHと、同期する手段の選定

1-1. DWHの選定

まずはデータをどこに集約するか、DWH(データウェアハウス)を選定します。

  • Google BigQuery
  • Amazon Redshift
  • MySQLやPostgreSQL

今回はBigQueryを利用することにします。

1-2. SalesforceのデータをBigQueryに転送する3つの方法

BigQueryにデータを集約することが決まったので、次は転送するための手段を検討していきます。

  1. SalesforceデータをCSV形式でエクスポートし、手動でBigQueryにアップロードする
  2. SalesforceとBigQueryの各APIを、プログラムを書いて連携する
  3. Embulkを利用し、自分で環境を構築する
  4. troccoを利用し、画面上で設定する

1は単発の実行であればよいのですが、定期的な取り込み用途だと毎回同じ作業を繰り返すことになり、非効率な作業になりがちです
2はAPIのキャッチアップ工数+プログラムを書く工数+環境構築工数が発生する他、エラー対応などの運用工数も継続的に発生します
3も2と同じくEmbulkはある程度の専門知識が必要になり、自前で環境構築・運用を行う手間が発生します。加えてエラーの内容が少し専門的なので、困っている人もいたりします。

そこで今回はEmbulkの課題も解決してくれて、プログラムを書かずに画面上の設定で作業が完結する、4のtroccoというSaaSを利用します。

2. troccoでSalesforce→BigQueryの転送自動化

2-0. 事前準備

troccoのアカウントおよびSalesforceのアカウントが必要です。
無料トライアルも実施しているので、事前に申し込み・登録しておいてください!
(申込時に、この記事を見た旨を記載して頂ければご案内がスムーズです)

2-1. 転送元・転送先を決定

troccoにアクセスし、ダッシュボードから転送設定を作成ボタンを押します。

image03.png

転送元にSalesforceを、転送先にBigQueryを選択し、転送設定作成ボタンを押します。

image04.png

すると、設定画面になるので、設定画面から必要な情報を入力していきます。

2-2. Salesforceとの連携設定

転送設定の名前とメモを入力したら、「転送元の設定」内の「接続情報を追加」ボタンを押します。

image05.png
image06.png
別画面に遷移するので、案内に従ってSalesforceへの認証情報を登録します(スクショは割愛)。

2-3. Salesforceからのデータ抽出設定

これでSalesforceとの連携設定は完了です。接続情報を再読み込みし、別画面で登録した接続を選択します。
次に、Salesforce取得したいオブジェクトを記述します。troccoの連携方法ではSOQLでデータを抽出しますので、クエリを書いていきます。
SOQLは開発者コンソールクエリエディタから作成してください。
(くわしくはこちらに案内があります)

image07.png

カスタム変数

カスタム変数を使うことにより、ジョブ実行時に指定の値に変数を展開することができます。

転送モード

転送モードでは、デフォルトでは型推測結果を使用します。
このモードはtroccoが転送元データの型情報等を分析・推測し、その結果を元に設定を自動で構築してくれるモードです。推測結果を利用してBigQueryのテーブルを作成します。
このモードを利用しない場合、Step.2移行でスキーマを手動で設定する必要があります。

以上でSalesforce側の設定は完了です。
次は転送先のBigQueryの設定を行っていきましょう。

2-4. 転送先BigQueryの設定

また、カスタム変数を使うことにより、ジョブ実行時に指定の値に置き換えることができます。
BigQueryデータセットのロケーションを指定することができます。デフォルトはUSリージョンです。
東京リージョンを指定する場合はasia-northeast1を入力して下さい。

image08.png

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

2-5. データのプレビュー

転送元のデータがプレビューされます。ここではSalseforceの取り込んだデータが表示されています。
もし、プレビューやデータ転送に失敗した場合はSalesforceの設定画面よりバックグラウンドジョブよりジョブのステータスを確認してみてください。
問題ないので、このまま「スケジュール・通知設定」に進みます。

image09.png

2-6. スケジュール・通知設定

以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。

image10.png

2-7. データ転送ジョブの実行

設定は以上です。最後に、手動で転送ジョブを実行し、BigQueryにデータを送ってみましょう。
実行はジョブ詳細画面の「実行」ボタンを押すだけです。

image11.png

3. BigQueryの設定

特に設定することありません。データが溜まっているので、今すぐに分析・可視化を行うことが出来ます。
念の為データをプレビューして確認してみます。

image12.png

4. Googleデータポータル(旧データスタジオ)で可視化

BigQueryの画面から、「エクスポート > データポータル」を選択します。

image13.png

すると、以下のようなData Portalの画面に遷移します。
試しに、獲得しているリード数の日次推移を可視化してみましょう。

image14.png

すると、以下のようなグラフが出来上がります。
この画面はデータポータルの「エクスプローラ」という機能になります。
「エクスプローラ」は定期的に閲覧するデータの変化の原因をアドホックに分析する際に使うイメージです。

image15.png

データポータルのトップ画面から、「レポート」を作成し、上述の通りグラフ作成を行うと、ダッシュボードが出来上がります。

image16.png

今回はデータを貯めて、簡単な可視化までとしましたが、リード獲得チャネル毎の費用と売上を紐付けることによってROIも簡単に算出することが可能です。

image17.png

まとめ

いかがでしたでしょうか。troccoを使うとコーディングをすることなく、簡単にSalesforceのデータをDWH(BigQuery)に貯めることが出来ました。
また、BigQueryにデータを貯めると、データポータルというGoogleの無料ダッシュボードですぐに可視化することが出来ます。
実際に弊社サービスのtroccoにおいても、セールスのデータやマーケティングKPI等をこのような流れで収集・分析しています。

試してみたい場合は、無料トライアルを実施しているので、この機会にぜひ一度お試しください。
(申込時に、この記事を見た旨を記載して頂ければスムーズにご案内できます)

その他にも広告やデータベースなど、様々な分析データをETL・転送した事例をまとめました。
troccoの使い方まとめ(CRM・広告・データベース他)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?