Salesforceに商談、HubSpotにリード、GA4にWeb行動ログ、Freshdeskにサポート履歴、Stripeに決済――現代のSaaS企業やマーケティング組織では、顧客に関するデータが10〜20のSaaSに散らばって管理されています。これらを一つのDWHに統合し、カスタマージャーニーを横断的に分析できる状態を作るのが「SaaS連携データ基盤」です。本記事では、アーキテクチャ・ツール選定・名寄せ・運用までを実践視点で解説します。
SaaSデータ統合の課題
SaaSデータ統合の最大の課題は、各SaaSごとに「データモデル」「更新頻度」「APIレート制限」「顧客IDの体系」が全く異なることです。Salesforceの顧客ID、HubSpotのコンタクトID、GA4のClient IDをどう紐付けるかが決まらないと、統合した瞬間から数字が合わない事態になります。
加えて、SaaSベンダー側のAPI変更やスキーマ変更が頻繁に発生するため、内製でコネクタを作ると保守コストが膨大になります。ここで本領を発揮するのがFivetranやAirbyteなどのマネージドELツールです。
統合アーキテクチャ設計
SaaS連携データ基盤の定石は、ELT(Extract-Load-Transform)パターンです。マネージドコネクタで生データをDWHにロードし、dbtで変換・統合する構成がモダンデータスタックの標準です。
【SaaS→DWH→活用のフロー】
[Salesforce] --+
[HubSpot] --+
[GA4] --+--> [Fivetran/Airbyte] --> [DWH raw]
[Stripe] --+ |
[Zendesk] --+ |
v
[dbt staging]
|
v
[dbt marts]
|
+-----------+-----------+
| |
v v
[BI / Looker] [Reverse ETL]
|
v
[SaaS書き戻し]
| SaaS | 主なデータ種別 | 更新頻度 | ID体系 | 連携方法 |
|---|---|---|---|---|
| Salesforce | 商談/アカウント/活動 | 数分〜時間 | AccountId/ContactId | Fivetran/Airbyte |
| HubSpot | コンタクト/ディール | 数分 | hubspot_id | Fivetran/Airbyte |
| GA4 | Webイベント/セッション | 即時〜1日 | client_id/user_id | BigQueryネイティブ連携 |
| Stripe | 決済/サブスク | 即時 | customer_id | Fivetran/Airbyte |
| Zendesk | チケット/顧客 | 数分 | ticket_id/user_id | Fivetran/Airbyte |
主要SaaS別の連携ポイント
主要3つのSaaSの連携ポイントを紹介します。Salesforceはオブジェクトモデルが豊富で、リレーションシップの理解が鍵です。Account、Contact、Opportunity、Leadの関係を正しく把握し、dbt stagingで整形する必要があります。カスタムオブジェクトやカスタムフィールドもFivetran等は自動で取り込めますが、命名規則が煩雑になるため、dbtで論理名にリネームすると下流での扱いが楽になります。
HubSpotはエンゲージメント系データ(Eメール開封、フォーム送信等)が豊富で、リードスコアリングの原資として活用できます。SalesforceとHubSpotを同時に使っているケースでは、HubSpot側をマーケティング活動、Salesforce側を営業活動として位置付け、コンタクトIDでブリッジするのが一般的です。GA4は一番ネイティブな連携がBigQueryエクスポートで、GA4からBigQueryにクエリ制限なしで全イベントを取り込めます。GA4の生テーブルは扱いにくいため、dbtで扱いやすい形に変換するのが実務の定石です。
-- dbt: GA4生データから日別セッションマートを構築
SELECT
event_date,
user_pseudo_id,
COUNT(DISTINCT (
SELECT value.int_value
FROM UNNEST(event_params)
WHERE key = 'ga_session_id'
)) AS sessions,
COUNT(*) AS event_count
FROM `project.analytics_XXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20260101' AND '20260415'
GROUP BY 1, 2
名寄せとID統合
SaaS統合の核心は「名寄せ」です。複数のSaaSに存在する同一顧客を1つの顧客IDに紐付ける作業で、ここが甘いと統合した数字が信頼できなくなります。実装のパターンは以下のようになります。
-- dbt: メールアドレスベースの顧客ID統合
WITH unified AS (
SELECT LOWER(email) AS email_key, salesforce_id, NULL AS hubspot_id
FROM {{ ref('stg_salesforce_contacts') }}
UNION ALL
SELECT LOWER(email) AS email_key, NULL, hubspot_vid
FROM {{ ref('stg_hubspot_contacts') }}
)
SELECT email_key,
MAX(salesforce_id) AS salesforce_id,
MAX(hubspot_id) AS hubspot_id,
MD5(email_key) AS unified_customer_id
FROM unified
GROUP BY email_key
| ID統合パターン | 実装難易度 | 精度 | 適用ケース |
|---|---|---|---|
| メール完全一致 | 低 | 中 | BtoB、シンプル構成 |
| ドメイン+名前の組み合わせ | 中 | 中 | 企業単位の名寄せ |
| あいまい一致(Jaro-Winkler等) | 高 | 高 | 手入力データ |
| ML名寄せ(Splink等) | 高 | 最高 | 大規模BtoC |
| MDM導入 | 最高 | 最高 | 全社統合要件 |
まずメール完全一致から始め、精度が不十分ならドメイン+名前の組み合わせ、さらに必要ならMLやMDMへ段階的に進化させるのが現実的です。最初から完璧を目指すとプロジェクトが前に進みません。
ツール選定
SaaS連携ツールの選定基準は、コネクタ対応数・料金モデル・運用負荷の3点です。主要ツールのコネクタ対応状況を整理します。
| ツール | コネクタ数 | 料金モデル | 運用負荷 | 強み |
|---|---|---|---|---|
| Fivetran | 500+ | MAR(Monthly Active Rows) | 最小 | コネクタ品質、自動スキーマ進化 |
| Airbyte Cloud | 350+ | 同期量ベース | 小 | OSS版あり、コスト柔軟 |
| Stitch | 130+ | 行数ベース | 小 | シンプル、中小規模向け |
| Hevo Data | 150+ | イベント数ベース | 小 | インターフェース親切 |
| 内製(Python) | N/A | 開発工数 | 最大 | 柔軟性、ただし保守地獄 |
予算に余裕があればFivetranが最短で安定した結果を出せます。コスト優先やオンプレ要件があるならAirbyte、中小規模の立ち上げならStitchやHevo Dataが選択肢になります。リバースETLとの組み合わせで、DWHから各SaaSへの書き戻しも設計しましょう。
運用設計のポイント
連携を構築した後の運用設計では、3つのポイントが重要です。第一に、スキーマ変更への追従。SaaS側の仕様変更で新カラムが追加されたり、型が変わったりします。Fivetran等は自動スキーマ進化に対応していますが、下流のdbtモデルが追従する仕組みも必要です。第二に、同期失敗の検知と再同期。APIレート制限やSaaS側のメンテナンスで同期が止まることは普通にあります。失敗時のアラートと、再同期の手順をランブック化しておきましょう。
第三に、コストの監視。FivetranなどMAR(Monthly Active Rows)課金のツールは、特定のSaaSで想定外のデータ量になったときに請求が跳ねます。月次でMARの推移を監視し、閾値超過でアラートする仕組みを用意してください。SaaS企業のデータ基盤事例でも、これらの運用設計が成果を分けるポイントとして共通しています。
まとめ
SaaS連携データ基盤は、マネージドELツール+DWH+dbtの構成が現代の定石です。名寄せとID統合を最優先課題として捉え、メール一致から段階的に精度を上げていく現実的なアプローチが成功の鍵です。ツール選定はFivetran・Airbyte・Stitchなどから予算と要件で選び、スキーマ進化と同期失敗検知を含めた運用設計まで織り込んでおきましょう。リバースETLまで含めれば、データを「使われる状態」にするループが完成します。
よくある質問(FAQ)
Q. SaaSデータの統合で最初に取り組むべきことは?
統合したいSaaSのデータスキーマの把握と、共通キー(メールアドレス等)の特定から始めましょう。Fivetran/Airbyteで自動同期を設定するのが最短パスで、1〜2週間で最初のダッシュボードまで到達可能です。
Q. GA4のデータはどこに蓄積すべきですか?
GA4のBigQueryエクスポート機能を使ってBigQueryに直接蓄積するのが最も効率的です。Snowflake利用の場合はFivetran経由の連携が一般的ですが、データ量が大きい場合はBigQueryを経由するパターンも検討価値があります。
Q. 複数SaaSの顧客IDを統合するには?
メールアドレスを共通キーとするのが最もシンプルです。精度を上げるにはMDM(マスターデータ管理)の導入と名寄せロジックの実装が必要で、最終形としてはMLベースの名寄せも選択肢に入ります。