blog
ブログ

Data 360でAmazon S3連携!ID解決まで手順解説

「バラバラに管理されている顧客データをひとつに統合したい!」と思ったことはありませんか?
例えば、Salesforceで管理している顧客リストと、それ以外のシステムで管理している顧客リストを、ひとつの画面でまとめて確認できるようになったら便利ですよね。
しかし、データをまとめるにあたって、次のような問題が考えられます。

Salesforce上の「田中太郎」さんと、それ以外のシステム上の「田中太郎」さん。実は同一人物なのですが、単純に集めただけでは、別人として集計してしまう……。

そんなお悩みを解決するのがData 360の醍醐味です。
Data 360では「外部データの取り込み」と「名寄せの設定」という2つの技術的ハードルを越えるためのサポートが充実しています。

今回は、Amazon S3にあるCSVデータをData 360に取り込み、ID解決を行って名寄せをする手順をご紹介します!
手順は少し多いですが、ステップバイステップで解説します!
 


     

    Salesforce Data 360 (旧 Data Cloud)とは?

     
    Data 360は、様々な場所に散らばっているデータを集約し、「真の顧客像(SSOT:Single Source of Truth)」を作り出すプラットフォームです。Salesforceが提供しています。
    一般的なデータの流れは以下のようになります。
     
    1. つなぐ(Connect):Salesforce やAmazon S3、Google Driveなどからデータを取り込む
    2. 整える(Harmonize):バラバラな項目の形式を、共通のモデルに変換する
    3. 統合する(Unify):名寄せを行い、同一人物を特定・統合する
    4. 活用する(Act):統合されたデータを分析やマーケティング施策に使う
     
    今回は、この中の「1. つなぐ」から「3. 統合する」までの核心部分を実践していきます。最後には「4.活用する」も簡単にですがご紹介します!
     

    Amazon S3に接続

     
    まずは、データをData 360の中に持ってくる「つなぐ」作業です。 これには【AWS側】での許可設定と、【Salesforce側】での接続設定の2つが必要です。
     

    AWSでの準備(IDプロバイダとIAMロール)

     
    AWSの管理コンソール(IAM)を開き、「Salesforceからのアクセスを許可する」設定を行います。
    まず、「IDプロバイダ」を作成します。 Salesforceの「設定」→「私のドメイン」からURLを確認し、AWS側で以下のように設定します。
    ・プロバイダのタイプ:OpenID Connect
    ・プロバイダのURL:https://【私のドメイン】/services/connectors
    ・対象者:https://【私のドメイン】
    Data360でAmazonS3連携!ID解決まで手順解説_01
    次に、Data 360からS3バケットを見るための「IAMロール」を作成します。 ここで重要な準備物が「External ID」です。Salesforceの設定画面で表示されます。設定→その他のコネクタ→新規→Amazon S3→Identity Provider Based と選択していくと表示されます。
    ここで大切なポイントです!Salesforce側のコネクタ作成画面を一度閉じてしまうと、このExternal IDが変わってしまいます。コネクタ設定が終わるまでは、Salesforceの画面は閉じずにそのままにしておいてください。
    Data360でAmazonS3連携!ID解決まで手順解説_02
    「External ID」をコピーしたら、AWSのポリシー入力画面に戻りましょう。
    ・信頼されたエンティティタイプ:「カスタム信頼ポリシー」を選択。信頼ポリシーを以下のコードで貼り付けてData 360接続用のロールを作成しましょう(【】部分はご自身の環境の値に書き換えてください)。

    
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "arn:aws:iam::【AWSアカウントID】:oidc-provider/【私のドメイン】/services/connectors"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "【私のドメイン】/services/connectors:sub": "【External ID】"
                    }
                }
            }
        ]
    }
    

    ・許可を追加:今回使用するS3バケット、ディレクトリ、ファイルへの読み取りの権限を付与しましょう。今回は「AdministratorAccess」を付与していますが、本番運用ではきちんと制御しましょう!
    ・ロール名:自由に付けて問題ありません。今回は「DataCloudAccesser」としています。

    Data360でAmazonS3連携!ID解決まで手順解説_03
    Data360でAmazonS3連携!ID解決まで手順解説_04

     

    Salesforceでの接続(コネクタとデータストリーム)

     
    AWS側の準備ができたら、開いたままにしておいたSalesforce画面に戻って設定を完了させます。
    ・Role ARN:AWSで作ったロールのARNを貼り付けます。先ほど作ったロールの画面から確認できます。
    (例: 「arn:aws:iam::000000000000:role/DataCloudAccesser」)
    ・バケット名:接続したいS3のバケット名です。今回は「demo-buckets-nsd-datacloud」というバケットにアクセスします。
    ・親ディレクトリ:接続を絞りたいディレクトリです。今回は「/datacloud」に設定して絞っています。ルート指定したい場合は「/」と設定します。

    入力後、「接続テスト」を行い、成功すればコネクタの完成です!
    Data360でAmazonS3連携!ID解決まで手順解説_05
    続けて「データストリーム」を新規作成し、対象のCSVファイルを選択して取り込めば、S3のデータがData 360の中にデータレイクオブジェクトとして格納されます 。
    ・ディレクトリ:取込対象のディレクトリです。今回は「users/」と設定します。コネクタでの設定と合わせて、対象ディレクトリのパスは「demo-buckets-nsd-datacloud /datacloud/users/」となっています。
    ・ファイル名:取込対象のファイル名です。「*.csv」とワイルドカードを使用することで対象ディレクトリの複数ファイルを一括で取込できます。ただし、csv列の構造はすべて統一してください!
    Data360でAmazonS3連携!ID解決まで手順解説_06

     

    マッピング設定

     
    ここからはデータが入った後の「整える」フェーズです。 まだこの段階では、SalesforceのデータとS3のデータはバラバラの形式です。これを共通の規格に当てはめて整理していきます。
     

    DLOとDMOの違いを理解しよう

     
    設定に入る前に、Data 360の中でデータがどう扱われているか、少しだけオブジェクト概念を整理しておきましょう。
    ・DLO(データレイクオブジェクト):取り込んだデータの「レプリカ(コピー)」です。
    ・DMO(データモデルオブジェクト):データを共通の規格に整えた「ビュー(見栄え調整)」のようなものです。
    ・マッピング:DLOの項目に対応するDMOの項目を設定し、データの規格を統一します。
    Data360でAmazonS3連携!ID解決まで手順解説_07
    データストリームで取り込んだデータは、まず「DLO(データレイクオブジェクト)」という種別のオブジェクトに格納されます。これは元データ(SalesforceやS3のCSV)の「完全なレプリカ(コピー)」です。あくまでコピーなので、中身は加工されていません。
    純粋なレプリカであるDLOのままだと、SalesforceのデータとCSVのデータで項目構造がバラバラで扱いづらいですよね。そこで、データを共通の規格に整えて(マッピングして)見やすくするのが「DMO(データモデルオブジェクト)」です。 データベースで言うところの「ビュー」に近い役割です。
     

    情報を分けてマッピングする

     
    ID解決を行うためには、項目名がバラバラのDLOを、「個人(Individual)」というひとつのDMOに紐付ける(マッピングする)必要があります。 この時、人物の「変わらない情報」と「変わる情報」を、DMOを分けてマッピングする必要があります 。
    ・個人(Individual)DMO:氏名、生年月日、性別など、不変に近い情報をマッピングします。
    ・連絡先ポイント(Contact Point)DMOシリーズ:電話番号、メール、住所など、変更される可能性がある情報はこちらにマッピングします。いくつかバリエーションがあります。
    これらを分けてマッピングすることで、より精度の高いデータ管理が可能になります。
    Data360でAmazonS3連携!ID解決まで手順解説_08
     

    「Sales」バンドル

     
    ちなみに、もしSalesforceの標準オブジェクト(取引先責任者やリードなど)を連携する場合は、データストリーム作成時に「Salesバンドル」という機能を使うと、上記の複雑なマッピング設定を自動で行ってくれます。 今回のようなS3などの外部データ連携では手動でのマッピングが必要になりますが、「Salesバンドル」が自動設定したマッピングをお手本にしながら、真似するように設定してみましょう!
     

    ID解決のルール設定

     
    マッピングが終わったら、いよいよ「統合する」フェーズ、「ID解決」です。
     

    一致ルールの作成

     
    「何を根拠に同一人物とみなすか?」を決めます。
    例えば「氏名 + メールアドレス」が一致したら同一人物とする、といったようにルールを作成します。条件は複数設定でき、要望に応じて繊細な条件を構築できます!
     

    照合ルールの設定

     
    一致ルールで「この2つは同一人物だ!」と特定できても、データの中身が微妙に違うことがありますよね?
    例えば、Salesforce側の電話番号は「090-…」だけど、S3側は「080-…」になっている場合などです。
    そこで登場するのが「照合ルール」です。これは「競合したデータのうち、どれを正解(代表値)として採用するか?」を決めるルールです。 「常に更新日時が新しい方を優先する」や「信頼性の高いSalesforceのデータを常に優先する」といった優先順位を設定することで、最も信頼できる情報で統合個人データを作成できます。
    これでついに、バラバラだったデータが名寄せされ、ひとりの人物として統合されます!
     

    統合後の分裂リスク(高度な考慮事項)

     
    ここで、運用における高度な悩みをご紹介します。 もし、「氏名」と「メールアドレス」で名寄せをしていた場合、ご本人が結婚して名字が変わり、同時にメールアドレスも変更したらどうなるでしょうか?
    Data360でAmazonS3連携!ID解決まで手順解説_09
    こうなると一致条件にヒットしなくなり、一度統合されたはずのレコードが再び分裂してしまいます。別人だと認識してしまうのです。
    これを防ぐには、一致ルールに「絶対に変わらない共通ID」を含めます。S3などの基幹システム側で持っている「会員ID(例:u-0001)」を、Data 360のトリガーフローなどを使ってSalesforce側にも書き戻してあげましょう。一意のIDさえ一致していれば、名前やメールがすべて変わっても「同一人物」として繋がり続けることができます 。
    Data360でAmazonS3連携!ID解決まで手順解説_10
    (初回の書き戻し)
    Data360でAmazonS3連携!ID解決まで手順解説_11
    (改姓があっても同一人物)
     

    統合個人を活用してみよう

    すべての処理が終わったら、統合された結果を確認してみましょう。「活用する」のステップです!
     

    統合個人DMO

     
    Data 360には「統合個人(Unified Individual)」DMOが生成されています。
    これは個人DMOに対してID解決を行った結果となるテーブルが保持されるオブジェクトです。
    クエリエディタなどで以下のSQLを実行すると、名寄せされたゴールデンレコードを確認できます。「統合前のId」列では、SalesforceのレコードIdとCSVのシステムIdが入り混じっていることが確認できます!

    
    SELECT 
    "ssot__Id__c" AS "統合個人Id",
    "ssot__LastName__c" AS "姓",
    "ssot__FirstName__c" AS "名",
    "ssot__ExternalRecordId__c" AS "統合前のId"
    FROM 
    "UnifiedIndividual__dlm" 
    LIMIT 100 
    

    Data360でAmazonS3連携!ID解決まで手順解説_12
    この「統合個人」DMOは、ただのビューではなく、内部的に実体のレコードとして作成されています。これにより、Salesforceの田中さんも、S3の田中さんも、Data 360上では「統合個人ID: XXXXX の同一人物」として扱えるようになるのです!

     

    リードIdから統合個人を特定

     
    統合個人は個人Idから遡れるようになっています!
    「統合個人リンク(Unified Link Individual)」DMOをJOINで中間させると、統合個人を特定できます。API参照名は大きく変わって「IndividualIdentityLink__dlm」となります。
    次のクエリはSalesforceのリードIdから統合個人Idを取得するクエリです。

    
    SELECT 
    "ssot__Lead__dlm"."ssot__Id__c" AS "リードId",
    "UnifiedIndividual__dlm"."ssot__Id__c" AS "統合個人Id",
    "UnifiedIndividual__dlm"."ssot__PersonName__c" AS "統合個人名"
    FROM "ssot__Lead__dlm"
    JOIN "IndividualIdentityLink__dlm"
    ON "ssot__Lead__dlm"."ssot__Id__c" = "IndividualIdentityLink__dlm"."SourceRecordId__c"
    JOIN "UnifiedIndividual__dlm"
    ON "IndividualIdentityLink__dlm"."UnifiedRecordId__c" = "UnifiedIndividual__dlm"."ssot__Id__c"
    LIMIT 10
    

    Data360でAmazonS3連携!ID解決まで手順解説_13
    商談やToDoの集計レポート作成をする場合、集計対象項目(GROUP BY)には「統合個人リンク」DMOを紐づけて、「統合個人Id(UnifiedRecordId__c)」項目を使用するようにしましょう!
    Data360でAmazonS3連携!ID解決まで手順解説_14
     

    まとめ

     
    「Data 360でAmazon S3連携!ID解決まで手順解説」と題してご紹介しました。
    AWS設定から始まり、コネクタ作成、データマッピング、そしてID解決と、多くのステップがありましたね。お疲れ様でした。これらを乗り越えることで、真の「顧客データ統合」が実現します!
    ID書き戻し運用はやや高度ですが、長期的なデータ品質維持にとても有効ですので、ぜひ検討してみてください !

    ◆Salesforceノウハウ共有ツール「KnowhowBase」は‘ノウハウを作る、探す、活用する’をコンセプトに、Salesforceプラットフォーム上で利用できる便利な機能をご提供しています。また、「Salesforce導入サービス」 「Salesforce伴走・開発支援サービス」により、Salesforceを新規導入される方、Salesforceの定着・活用や運用保守・開発を要望される方に合ったサービスもご提案しております。ご興味のある方は、お気軽にお問い合わせください。

    ★当サイトでノウハウ共有やSalesforceの定着促進・保守運用・開発を検討している方へ、様々なダウンロード資料をご用意しております。ぜひ資料をダウンロードいただき、ご活用ください。

    contact

    ご相談・ご質問等ございましたら、お気軽にお問い合わせください。

    SFA/CRMに蓄積されている情報を活用する方法ガイド