はじめに
TROCCOは多様なサービスとのデータ連携を自動化できるクラウドETLサービスです。画面上の操作によりデータパイプラインを作成することができます。
TROCCOの2026年8月のリリースでDr.Sumのコネクタが追加されました。TROCCOの様々なコネクタと組み合わせることで、SaaSやデータベースなどにあるデータをDr.Sumに転送することや、Dr.Sum上のデータをDWHなどに転送することができます。
本記事ではDr.Sumへのデータ転送の活用例として、Salesforceからのデータ転送の設定方法についてご紹介します。
ユースケース:SalesforceのデータをDr.Sumで分析する
営業活動で使うSalesforceには、取引先となる企業の情報や案件の状況などのデータが蓄積されています。これらをDr.Sumに転送することで、SalesforceのデータをDr.Sum上で分析に活用することができます。
本記事で扱うデータと転送方法
Salesforceの以下のオブジェクトをDr.Sum上で参照できる環境を整えていきます。
- 取引先 (Account):業界や顧客区分など、顧客企業の情報のマスタデータ
- 商談 (Opportunity):営業活動にあわせて日々更新される案件の情報
Salesforceからデータを転送する方法は3種類用意されています。転送するデータの性質や転送する用途に応じて転送方法を選びます。
| 転送方法 | 向いているケース | 本記事での対象オブジェクト |
|---|---|---|
| オブジェクトの項目を全転送 | ・転送先に最新の状態を反映したい ・スナップショットとしてその時点のデータを転送したい |
取引先 (Account) |
| オブジェクトの項目を差分転送 | ・データの更新分だけ効率的に取得したい ・日々更新され大量に蓄積されたデータから負担を少なく転送したい |
商談 (Opportunity) |
| クエリ(SOQL)を記述して転送 | ・取得する項目や期間をクエリで制御したい | - |
取引先のデータをDr.Sumに転送する
ある時点のスナップショットの作成や転送先に最新版をまるごと反映するといった用途では、全レコードを転送することで対応できます。ここでは、Salesforceにある取引先 (Account)のデータをDr.Sumに反映する設定を作成してみます。
Accountには以下のようなデータが入っているとします。このデータをDr.Sumの crm.accounts テーブルに反映する転送設定を作成します。
| 取引先名(Name) | 取引先 部門(Site) | 電話(Phone) | 種別(Type) |
|---|---|---|---|
| AAA社 | 総務部 | 000-0000-0000 | Prospect |
転送設定の作成
データ転送 > 転送設定 > 新規転送設定作成 から、転送設定を作成します。転送元にSalesforce、転送先にDr.Sumを指定します。
転送元Salesforceの設定
SalesforceからAccountのデータを取得するための設定をします。「オブジェクトの項目を全転送」を設定することで、Accountのオブジェクトから全データを取得して転送を行います。
- オブジェクト:
Account - オブジェクト取得方法:オブジェクトの項目を全転送
削除した取引先もデータとして転送したい場合は、転送元Salesforceの設定にある「削除済み・アーカイブ済みレコードの抽出」を「抽出する」に変更することで、削除済みのレコード(ごみ箱に残っているレコード)も取得できます。
転送先Dr.Sumの設定
「accounts」というテーブルに転送を行います。転送モードに 全件洗い替え (TRUNCATE INSERT) を指定することで、既存のテーブルのレコードを削除した上で、取得した最新のレコードを挿入します。
- データベース:crm
- テーブル:accounts
- 転送モード:
全件洗い替え (TRUNCATE INSERT)または全件洗い替え (REPLACE)
全件洗い替え (TRUNCATE INSERT) は、中間テーブルを経由して転送先のテーブルのデータを入れ替えます。もし転送が途中で失敗した場合も、既存のテーブルのデータはそのまま保持されます。
一方、 全件洗い替え (REPLACE) では、中間テーブルにデータを転送したのち、既存のテーブルを削除し、中間テーブルの名前を変更します。新規にテーブルを作成するため、転送元のスキーマの変更を反映したいという場合にも対応できます。
カラム定義を確認
STEP2「データプレビュー・詳細設定」に進むと、転送元からデータを取得してカラム定義が自動で作成されます。カラム定義や、プレビューで表示されたデータを確認します。
もし転送元のオブジェクトに項目の追加や削除があったとしても、TROCCOは現在の転送設定のまま転送処理を行おうとします。「スキーマ変更検知」を設定することで、転送ジョブ実行時に項目の追加/削除を検知し、Slackに通知することができます。
設定を保存
STEP3「確認・適用」に進むと、転送設定の内容がYAML定義で表示されます。「保存して適用」をクリックすると転送設定を保存します。
これで転送設定の作成は完了です。
商談のデータをDr.Sumに差分転送する
商談 (Opportunity) には案件の進捗が日々記録されるため、データが膨大になりやすく、データ転送の際に毎回データ全体を転送するのは非効率になってしまいます。このようなデータは、前回から更新されたレコードのみ転送する差分転送を使うことで、効率よく転送することができます。
Opportunityには以下のようなデータが保存されているとします。このデータをDr.Sumの crm.opportunities テーブルに反映していきます。
| 商談名(Name) | 取引先名(AccountId) | 金額(Amount) | 完了予定日(CloseDate) | フェーズ(StageName) |
|---|---|---|---|---|
| 導入案件 | AAA社(001xx00001xxxxxxx) | 5000000 | 2026/09/30 | Prospecting |
※「取引先名」はSalesforceの画面上では取引先の名前で表示されますが、データとしては取引先のID(accounts テーブルの Id)が入ります。
転送元Salesforceの設定
「取引先をDr.Sumに転送する」のセクションと同様に データ転送 > 転送設定 > 新規転送設定作成 から、転送設定を作成します。
SalesforceからOpportunityのデータを取得するための設定をします。「オブジェクト取得方法」で「オブジェクトの項目を差分転送」を選択すると、差分転送に使う設定項目が表示されます。
- オブジェクト:
Opportunity - オブジェクト取得方法:オブジェクトの項目を差分転送
- 増分データを判別するカラム:
LastModifiedDate - 最後に転送されたレコード:空欄
「増分データを判別するカラム」には、レコードの追加・更新を確認できるカラムとして LastModifiedDate を指定しています。
「最後に転送されたレコード」は、空欄にした場合、初回の転送で過去の全レコードを転送し、転送したレコードの中から LastModifiedDate の最大値を「最後に転送されたレコード」に記録します。2回目以降の転送では、「最後に転送されたレコード」に記録された値よりも大きい値のレコードのみ転送し、「最後に転送されたレコード」の値を更新します。これにより、前回の転送時から更新されたレコードのみ、転送を行っていきます。
転送先Dr.Sumの設定
転送モードを UPSERT(MERGE) にすると、マージキーに設定したカラムを参照してデータを転送します。転送先のテーブルに同じIdがない場合は新規にレコードを追加し、同じIdがある場合はそのレコードを更新します。同じ商談が更新された場合も、Idをキーに転送先のレコードを上書きするため、レコードを重複させずに最新の状態が保たれます。
- データベース:crm
- テーブル:opportunities
- 転送モード:
UPSERT(MERGE) - マージキー:
Id
転送先の設定後は、「取引先をDr.Sumに転送する」のセクションと同様に進み、設定を保存します。
転送ジョブを実行する
手動で実行する
転送設定作成後にテストとして転送する場合などは、TROCCOの画面上から手動で転送できます。転送設定の右上の「実行」をクリックして実行画面に遷移します。
画面下にある「実行」をクリックすると、転送ジョブが開始します。
転送ジョブが成功すると、SUCCESSと表示されます。
スケジュールで定期的に実行する
作成した各転送設定は、「スケジュール設定」タブから定期的に実行するスケジュールを設定できます。取引先は週次、商談は日次というように、転送先でデータを利用するタイミングや転送元のデータの更新頻度にあわせてスケジュールを設定できます。
ここでは転送設定にスケジュールを設定していますが、TROCCOのワークフローの機能でもスケジュールを設定できます。同じタイミングで転送を行いたいタスクが複数ある場合や、1つ目の転送処理が完了した後に2つ目の転送を実行するように処理の順番を制御したい場合など、ワークフローの機能を利用すると便利です。
Dr.Sumで転送したデータを確認する
TROCCOでそれぞれの転送ジョブを実行したのち、Dr.Sumの「accounts」と「opportunities」のテーブルにSalesforceのデータが転送されます。2つのテーブルは「accounts」の Id と「opportunities」の AccountId で結合することもできます。
SELECT
o.Name AS opportunity_name,
a.Name AS account_name,
a.Type AS account_type,
o.Amount AS amount,
o.StageName AS stage
FROM opportunities o
JOIN accounts a ON o.AccountId = a.Id
このように、Salesforceの商談データを取引先の属性と組み合わせてDr.Sum上で扱えるようになりました。Dr.Sum上にある他のデータと組み合わせて分析や集計に使うことも可能です。
まとめ
TROCCOを使ってSalesforceからDr.Sumにデータ転送する方法をご紹介しました。取引先は全件洗い替え、商談は差分転送というように、扱うデータの性質にあわせて転送方法を選ぶのがポイントです。スケジュールを設定することで、以降は自動で最新のデータがDr.Sumに集まります。Salesforceの他のオブジェクトも転送可能ですので、Dr.Sumで扱いたいデータを転送してみてください。












