CRM連絡先のデータストリームを作成(DataCloudハンズオン - Coral Cloud #1)

前回は、Coral Cloud リゾートアプリケーションが対象とするデータの内容を確認しました。

https://qiita.com/Mijinko-kun/items/ba6679abc3249d110b74

今回は、以下の手順に従いDataCloudでのハンズオンを進めていきます。CRMデータとの連携を見ていきます。

https://developer.salesforce.com/agentforce-workshop/data-cloud/overview


## 1章 DataCloud

> In Chapter 1, you'll use Data Cloud to unify, harmonize, and activate data from different data sources, including Salesforce CRM and Amazon S3.

> 第 1 章では、Data Cloud を使用して、Salesforce CRM や Amazon S3 などのさまざまなデータソースからのデータを統合、調整、アクティブ化します。

1章のDataCloud部分から進めて行きます。

## 演習 1  CRM コネクタを使用して連絡先を取り込む

https://developer.salesforce.com/agentforce-workshop/data-cloud/1-ingest-crm-contacts

> Exercise 1: Ingest Contacts Using the CRM Connector

> 演習 1: CRM コネクタを使用して連絡先を取り込む


### CRM連絡先データキットのインストール 

以下のURLにアクセスします。

```
https://xxx.develop.lightning.force.com/packaging/installPackage.apexp?p0=04tHr000000ku4k
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/04e24ea2-585a-44af-8536-35ac1bb36905.png)


`Coral Cloud Resorts Data Kit - Sample App`がインストールされます。

データキットについては、前回ご紹介しました。

> 「データキット」とは、Data Cloudのメタデータ（データストリーム、モデル等）をまとめた専用バンドルです。これをSalesforceの標準パッケージに含めることで、Data Cloudの設定を他の組織へ容易に配布・管理できるようにする仕組みです。これにより、Data Cloud構成の再利用や展開が効率化されます


### CRMからのデータストリームを作成

インストールしたCRM連絡先を、DataCloudへ連携します。

まず、DataCloudアプリケーションへ移動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/80a3740c-09b1-42b5-8129-068ff44560be.png)

[データストリーム]で[新規]をクリックします。

`Salesforce CRM`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/b7a2061f-f4ab-4754-8f93-4a0a81396bff.png)

次にカスタムデータバンドルの、Salesforce_Contacts を選択します。




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/4c41f35c-b167-4a70-a0b9-178b6788db78.png)


`Guest records from reservation system (Salesforce)`というSalesforceの連絡先`Contact`を選択しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/fc6b1013-bc58-4823-b6a2-e35d197cd623.png)


どの項目を利用するかが表示されます。[項目の表示ラベル]、[項目API参照名]、[新規数式項目]の編集ができます。

ここでは編集せずにそのままとします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/2bbe4fa0-015b-4186-a8a8-9bde478b7e98.png)

[プロファイルカテゴリ]のデータを[更新/挿入]モードで作成します。


[リリース]をクリックすると、データストリームが登録され、DLO、データマッピング、DMOの準備が行われます。

## データストリームの確認

作成したカスタムデータバンドルの中身を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/72fb6f64-64f9-4508-809a-b652a1604578.png)

そのまえに更新を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/250157af-7c20-4cb8-9a5c-276f930521be.png)

### データマッピングの確認

データストリームの[確認]をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/f458b4bc-564f-43a7-9723-a142e5ab358d.png)

これで、データマッピングを確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/b7dd7045-db02-4030-be1c-eaf310c6edcf.png)


左側は、`ソースオブジェクト`です。

右側は、`DMO`です。
[アカウント連絡先]、[Contact Point Address]、[Contact Point Email]、[Contact Point Phone]、[Individual]という5つのDMOに設定されます。

前回の通り、以下がDataCloudの構成です。


> 1.  **データソース (Source):** Salesforce CRM, S3, Webサイトなど
    * Data Cloudに取り込むデータの提供元であり、多様なシステムやデータ形式が接続対象となる。
> 2.  **データストリーム (Data Stream):** データソースからの接続と取り込み設定
    * : データソースとの接続を確立し、データの取り込み頻度（スケジュール）や更新方法（全件/差分）を定義する。
> 3.  **DLO (Data Lake Object):** 取り込まれた生データが最初に格納される場所
    * 役割/特徴Data Cloud内のデータレイクにおけるストレージコンテナとして機能し、ソースシステムの構造に近い形でデータを保持する。
> 4.  **データマッピング (Data Mapping):** DLOのデータをDMOの構造に紐付けるプロセス
    * 役割/特徴DLOの項目とDMOの項目を視覚的または設定ベースで関連付け、異なるソースのデータをData Cloudの標準データモデルに統合する。
> 5.  **DMO (Data Model Object):** 標準化・構造化されたデータが格納されるオブジェクト
    * 役割/特徴統合・整理されたデータを保持し、セグメンテーション、計算済みインサイト、有効化（Activation）など、データ活用のための基盤となる。
> 6.  **(活用):** DMOのデータを使って計算済みインサイト (CI) を作成したり、セグメントを作成したりする。


今回は、データストリームを設定して、データソースから、DLOとして取り込み、データマッピングを経て、DMOとなる事がわかりました。


## 最終実行状況の確認

しばらく時間が立つと取り込まれたDMOデータを見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/303e6100-3110-456e-8c68-3bf6f8644b49.png)

更新されたことを確認します。

### データレイクオブジェクト`Contact_Home`の確認


[データエクスプローラ]から、データレイクオブジェクトで、`Contact_Home`を選択します。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/de79822d-631a-4e7d-9850-79ba084f4134.png)


データの中身を確認することができました。


[SOQLをコピー]をクリックすると、次のように表示されます。

```
SELECT
AccountId__c, AssistantName__c, AssistantPhone__c, Birthdate__c, Phone__c, cdp_sys_SourceVersion__c, Id__c, CreatedDate__c, DataSource__c, DataSourceObject__c
FROM Contact_Home__dll
LIMIT 100
```

データレイクは`Contact_Home__dll`という`dll`で終わるオブジェクト名であることがわかります。



### データモデル`Account Contact`の確認

データモデルを選択します。DMOのオブジェクトを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/567404e8-2a5a-4d93-a4bb-3235680401e1.png)

データモデルの定義を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/da2c5bb3-a23d-41ef-a6f3-890f13516381.png)



[データエクスプローラ]から、データモデルオブジェクトで、`Account Contact`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2716146/a33d7396-62ca-4744-b9b9-15155e7b275c.png)


[SOQLをコピー]をクリックすると、次のように表示されます。

```
SELECT
ssot__AccountId__c, ssot__Id__c, ssot__AssistantPhone__c, ssot__BusinessPhoneId__c, ssot__CreatedDate__c, ssot__DataSourceId__c, ssot__DataSourceObjectId__c, ssot__DepartmentName__c, ssot__FirstName__c, ssot__IndividualId__c 
FROM ssot__AccountContact__dlm
IMIT 100
```

データモデルは`ssot__AccountContact__dlm`という`ssot_`で始まり、`dlm`で終わるオブジェクト名であることがわかります。





このように、CRMが適切に取り込まれたことが確認できました。



---

↓次回は、S3を取り込む接続コネクタを作成します。


https://qiita.com/Mijinko-kun/items/8b1e86731afd805b196b