各製品の資料を入手。
詳細はこちら →WorkdayとSalesforceのデータをPostgreSQLで集計・分析してSalesforceに連携する方法(リバースETL)
Workday とSalesforce のデータをPostgreSQL に統合してリードスコアを付加した後に変更後のデータをSalesforce 連携する、リバースETL 構成のパイプラインを構築します。
最終更新日:2024-08-01
この記事で実現できるWorkday 連携のシナリオ
こんにちは!プロダクトスペシャリストの宮本です。
CData Sync は、400種類以上のSaaS / DB のデータを各種DB・データウェアハウスにノーコードで統合可能なETL / ELT ツールです。CData Sync では、DB / DWH だけでなくSalesforce をはじめとする一部SaaS をデータの転送先としてサポートしているため、いわゆるリバースETL 構成のデータパイプラインを構築できます。
本記事では、Workday とSalesforce のデータをPostgreSQL に統合、リードスコアを計算・付加した後にSalesforce 連携する、というリバースETL 構成のパイプラインを作っていきます。
CData Sync とは?

CData Sync は、レポーティング・ダッシュボード、機械学習・AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。
- Workday をはじめとする400種類以上のSaaS / DB データに対応
- 主要なRDB、データレイク、データストア、データウェアハウスにデータを転送
- 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
- 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
- フレキシブルなSQL / dbt 連携での取得データの変換
- Salesforce を始めとする一部SaaS へのデータ転送(リバースETL)をサポート
CData Sync を使い始める
CData Sync は、フルマネージド(SaaS)型・オンプレミス型・AWS / Azure でのホスティング、と多様なホスティング環境に対応しています。各オプションで無償トライアルを提供していますので、自社のニーズにフィットするオプションを選択してお試しください。
無償トライアルへまずは製品の概要を知りたい、という方は5分でCData Sync を体験できる製品ツアーをご利用ください。
製品ツアーへリバースETL とは?
ETL の逆方向のデータ転送手法で、データウェアハウス(DWH)からSaaS へデータを転送することを指します。アプリ間連携のようなEAI とは異なり、ETL のようにバッチ処理での連携を行います。例えば、SalesforceとWorkday のデータをデータウェアハウス内に統合、集計・予測してからSalesforceに書き戻したい場合、以下の2つの方法があります。
- Salesforce → データウェアハウスで連携
- データウェアハウスで変換されたデータをSalesforce に書き戻し

それでは、Workday とSalesforce のデータを統合して書き戻すための具体的な設定手順を説明していきます。
実現するシナリオ
Workday とSalesforce の情報を一度PostgreSQL に統合して、統合したデータを使ってリードをスコアリング、その結果をSalesforce に書き戻します。 リバースETL のデータソースとなるDB としてPostgreSQL を使い、全体のデータの流れは以下のようになります。
Salesforce (Lead) + Workday → PostgreSQL(スコアリング)→ Salesforce(Lead)なお、Salesforce のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。
Salesforce とWorkday への接続を設定
はじめに、Salesforce とWorkday のデータをPostgreSQL に転送するための設定を行います。
CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソースとしてWorkday を設定していきましょう。左の[接続]タブをクリックします。
- [+接続の追加]ボタンをクリックします。
- [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Workday を見つけます。
- Workday の右側の[→]をクリックして、Workday アカウントへの接続画面を開きます。もし、Workday のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにWorkday に接続するアカウント情報を入力をします。
Workday 接続プロパティの取得・設定方法
ここでは、4つのWorkday API の接続パラメータを設定する方法、およびTenant とBaseURL を取得する方法について説明します。必要なAPI のパラメータが設定され、カスタムOAuth および / またはAzure AD API クライアントを作成したら、接続の準備は完了です。
接続の前提条件
API / 前提条件 / 接続パラメータ
WQL / WQL サービスを有効化(下記参照) / ConnectionType: WQL
Reports as a Service / カタログレポートの設定(ヘルプドキュメントの「データアクセスのファインチューニング」参照) / ConnectionType: Reports
REST / 自動で有効化 / ConnectionType: REST
SOAP / 自動で有効化 / ヘルプドキュメントのWorkday SOAP API への認証を参照BaseURL およびTenant の取得
BaseURL およびTenant プロパティを取得するため、Workday にログインしてView API Clients を検索します。 この画面では、Workday はBaseURL とTenant の両方を含むURL であるWorkday REST API Endpoint を表示します。
REST API Endpoint のフォーマットは、 https://domain.com/subdirectories/mycompany です。ここで、
- https://domain.com/subdirectories/ はBaseURL です。
- mycompany(URL の最後のスラッシュの後の部分)はTenant です。
例えば、REST API エンドポイントがhttps://wd3-impl-services1.workday.com/ccx/api/v1/mycompany の場合、 BaseURL はhttps://wd3-impl-services1.workday.com であり、Tenant はmycompany です。
WQL サービスを有効化
Workday WQL API を介して接続するには、はじめにWQL Service を有効にする必要があります。- Workday を開きます。
- 検索バーにView Domain と入力します。
- プロンプトにWorkday Query Language と入力します。
- Allowed Security Group Types のいずれかに、接続するユーザーが含まれていることを確認します。
Workday への認証
Basic 認証以外のほとんどのWorkday 接続では、認証のためにOAuth ベースのカスタムAPI クライアントアプリケーションを作成する必要があります。これには、ユーザーがAzure AD 資格情報を介して接続するエンタープライズインストールも含まれます。 Workday への認証につての詳細は、ヘルプドキュメントの「Workday への認証」セクションを参照してください。 - [作成およびテスト]をクリックして、正しくWorkday に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてWorkday への接続が設定されました。
Salesforce への接続を設定
データソースとしてSalesforce を設定します。接続プロパティまでの設定方法は基本的にWorkday と同じです。
Salesforce への接続には通常のログインの他、OAuth やSSO を利用できます。ログイン方式では、ユーザー名、パスワード、セキュリティトークンを使って接続します。Salesforce セキュリティトークンの取得についてはこちらの記事をご確認ください。
ユーザー名、パスワードを使用しない、またはできない場合、OAuth 認証を利用できます。
SSO (シングルサインオン) は、SSOProperties、SSOLoginUrl、TokenUrl プロパティを設定することでID プロバイダー経由で利用できます。詳細はヘルプドキュメントの「はじめに」を参照してください。
PostgreSQL への接続を設定
次に、PostgreSQL への接続を設定します。同じく[接続]タブを開きます。
- [+接続の追加]ボタンをクリックします。
- [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、PostgreSQL を見つけます。
- PostgreSQL の右側の[→]をクリックして、PostgreSQL データベースへの接続画面を開きます。
- 必要な接続プロパティを入力します。PostgreSQL との接続には、通常のUser / Password での認証の他にSSH を利用してよりセキュアに接続することもできますので、併せてご紹介します。
SSH なしの接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
- 接続設定が完了したら、[作成およびテスト]をクリックして、正しく接続できているかをテストします。
- これで転送先としてPostgreSQL を設定できました。CData Sync では、PostgreSQL のデータベース名を指定するだけで、転送するPostgreSQL に合わせたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
Salesforce とWorkday のデータをPostgreSQL に統合
CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばSalesforce → PostgreSQL といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。
すべてのオブジェクトをデータ転送する場合
Salesforce のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。
作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Salesforce テーブルをPostgreSQL に転送できます。
オブジェクトを選択してデータ転送する場合
Salesforce から特定のオブジェクト / テーブルを選択してデータ転送を行うことが可能です。[種類]では[標準(個別設定)]を選んでください。
次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、データ転送ジョブを実行します。
このようにとても簡単にSalesforce からPostgreSQL への同期を行うことができました。
PostgreSQL に転送されたテーブルを見てみると、Salesforce のデータが転送されていることが確認できます。スコアリング結果を格納するLeadScore_c(カスタム項目)にはまだ何もデータが入っていないので、ここにWorkday のデータを統合したリードスコアリングの計算結果を追加します。

同じ手順で、Workday のお好みのデータをPostgreSQL に転送できます。今回はWorkers テーブルを使用しました。
リードスコアリング
それでは、Salesforce のリードをスコアリングしてPostgreSQL に反映しましょう。このときにWorkday のWorkers データを統合して使います。
CData Sync ではSalesforce とWorkday 以外にも400種類以上のデータソースをサポートしているので、スコアリングに必要なデータ(Webサイト上のユーザーアクティビティやメール開封率、ダウンロード履歴など)が他にあれば追加してみてください。
それでは、PostgreSQL のLead_reverse テーブルのLeadScore_c を参照してみましょう。
本記事ではリードスコアリングの方法は省きますが、PostgreSQL 上でSalesforce とWorkday のデータを使ってスコアリングした結果は以下のようにLeadScore__c カラムに追加しています。

この更新されたリードデータを、元のリードデータを持つSalesforce に書き戻します。
Salesforce への書き戻し
書き戻しを行うには、PostgreSQL からSalesforce へのジョブを作成する必要があります。ただし、作成方法はデータソースと同期先に注意するだけでほとんど同じです。
では、ジョブを追加ボタンをクリックしてジョブを作成していきます。
- データソース:PostgreSQL
- 同期先:Salesforce
- 転送モード:元あるリードデータにスコアリング結果を加えるだけなので、Update

※連携方法は、 Insert、Upsert、Update の3パターンから選択可能です。Upsertの場合は、Salesforce で外部ID として登録している項目のみKey として使用可能
ここでテーブル同士を紐づけます。

次にどの項目をキーにするか、またどのカラム同士をマッピングするかを指定します。今回は LeadScore_c 同士でマッピングしました。

設定は以上で、あとは右上の実行ボタンをクリックするだけです。※運用時はスケジュール設定を行ってください。

実行が完了すると、ステータスや更新した行数が表示されます。

では、最後に Salesforce のLeadオブジェクトを見てみましょう。LeadScore 列にPostgreSQL でスコアリングした結果が取り込まれました!

Salesforce へのリバースETL 構成をCData Sync で実現
このように、Salesforce とWorkday のデータを統合して書き戻すリバースETL のような複雑に思える構成でも、CData Sync ならノーコードで簡単に実現できます。
リバースETL にはリードスコアリングの他、マスタデータとの連携やWeb 解析ツールが持つユーザーアクティビティとの連携など、幅広いユースケースがあります。30日間の無償トライアルで、リバースETL パイプラインの構築を手軽にお試しください。
日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
もっとユースケースが知りたい!という方は、CData Sync の 導入事例を併せてご覧ください。