Salesforce
変数からAnalyticsへアップロード
概要
このブロックは、変数に格納されたデータをCRM Analyticsデータセットへアップロードします。アップロードには、アップロードするデータのほかにメタデータも必要です(省略可能)。
アップロードするデータは、オブジェクトの配列として準備してください(詳細は後述)。
BigQueryカテゴリーの「クエリーの実行」ブロックの実行結果(変数に格納されたクエリー結果)はこの形式です。「クエリーの実行」ブロックのクエリー結果をアップロードする場合は、このデータ形式を意識する必要はありません。
アップロードには、アップロードするデータの構造が記述されたJSON形式のメタデータも必要です(省略可能)。
例えば、下図のデータをアップロードする場合、name・amount・close_dateそれぞれのデータのデータ型や書式情報などをメタデータで記述します。メタデータの作成については、「Wave Analytics外部データ形式リファレンス」を参考にしてください。
{
"fileFormat": {
"charsetName": "UTF-8",
"fieldsEnclosedBy": "\"",
"fieldsDelimitedBy": ",",
"numberOfLinesToIgnore": 1
},
"objects": [
{
"connector": "AcmeCSVConnector",
"description": "",
"fullyQualifiedName": "SalesData",
"label": "Sales Data",
"name": "SalesData",
"fields": [
{
"description": "",
"fullyQualifiedName": "SalesData.Name",
"label": "Account Name",
"name": "name",
"isSystemField": false,
"isUniqueId": false,
"isMultiValue": false,
"type": "Text"
},
{
"description": "",
"fullyQualifiedName": "SalesData.Amount",
"label": "Opportunity Amount",
"name": "amount",
"isSystemField": false,
"defaultValue": "0",
"isUniqueId": false,
"type": "Numeric",
"precision": 10,
"scale": 2,
"format": "$#,##0.00"
},
{
"description": "",
"fullyQualifiedName": "SalesData.CloseDate",
"label": "Opportunity Close Date",
"name": "close_date",
"isSystemField": false,
"isUniqueId": false,
"type": "Date",
"format": "yyyy-MM-dd",
"fiscalMonthOffset": 0
}
]
}
]
}
info_outlineメタデータは、省略可能ですが、指定することを推奨します。メタデータを省略すると、すべてのデータがテキストとして扱われます。
アップロードするデータの形式
先に述べたとおり、アップロードするデータは、オブジェクトの配列として準備してください。
注記
「SOQLクエリーの実行」ブロックのクエリー結果をそのままアップロードする場合は、この形式を意識する必要はありません。アップロードするデータをほかの方法で準備する場合、以下の解説を参考にしてください。
ここでは、下図の売上データをアップロードする場合を例に取り、準備するデータの解説を行います。
各レコード(行)をオブジェクトにして、それらを連続して並べます(配列)。
「オブジェクト」は、キーと値をペアにしたデータを複数個まとめたものです。
オブジェクトの配列データは、基本カテゴリーの「オブジェクト生成」ブロックで作成できます。オブジェクトには、「Object」型を、配列には「Array」型を指定します。
外部からフローにデータを与える場合は、JSONテキストで作成します。
[
{
"name": "opportunityA",
"amount": 100.99,
"sales_date": "2014-06-30"
},
{
"name": "opportunityB",
"amount": 99.01,
"sales_date": "2012-01-31"
}
]
プロパティ
| プロパティ名 | 説明 |
|---|---|
| ブロック名 | ブロックの名前を指定します。ブロックに表示されます。 |
| アカウント |
Salesforceアカウントを選択します。 備考 |
| 投入データの変数 | CRM Analyticsにアップロードするデータが格納されている変数を指定します。 |
| データセット名 | データアップロード先のCRM Analyticsデータセットを指定します。 |
| メタデータ |
アップロードするデータの構造を記述したJSON形式のメタデータを指定します。 メタデータの作成については、「Wave Analytics外部データ形式リファレンス」を参考にしてください。 |
| Sandbox | アップロード先のSalesforceがSandbox環境かどうかを指定します。 |
| ブロックメモ | ブロックに対するコメントを指定します。 |
| 操作内容 |
データをデータセットへアップロードするときに使用する操作を選択します。
警告 追加、更新・挿入、削除の場合には、メタデータが必要です。
|
使用例
この使用例では、Salesforceから取得したプロジェクトデータをCRM Analytics(旧Einstein Analytics)にアップロードするフローを紹介します。
「プロジェクト管理と分析」シナリオについて
この使用例は「プロジェクト管理と分析」シナリオの一部です。このシナリオでは、以下のSalesforce関連ブロックを組み合わせて、プロジェクトデータの取得・更新・分析を行います。
- 「レコードの追加」ブロック:新規プロジェクトデータをSalesforceに登録
- 「レコードの更新、無ければ追加」ブロック:既存プロジェクトデータの更新または新規登録
- 「SOQLクエリーの実行」ブロック:Salesforceからプロジェクトデータを取得
- 「変数からAnalyticsへアップロード」ブロック:取得したデータをCRM Analyticsにアップロード(現在のブロック)
各ブロックの使用例を順に参照することで、Salesforceデータを活用した完全なワークフローを理解できます。
データをCRM Analyticsにアップロードすることで、プロジェクトの進捗状況や予算の使用状況などを視覚的に分析できるダッシュボードの作成が可能になります。
前提条件
- Salesforceアカウントが設定済みであること
- 「プロジェクト管理」カスタムオブジェクト(Project__c)が作成済みで、アクセス権があること
- CRM Analyticsへのアクセス権があること
カスタムオブジェクトについて
この例では、「プロジェクト管理」というカスタムオブジェクトを使用します。以下の設定でカスタムオブジェクトが作成されていることを前提としています。
| 項目 | 設定値 | 説明 |
|---|---|---|
| 表示ラベル | プロジェクト管理 | 画面に表示される名前 |
| オブジェクト名 | Project | APIで使用される名前(末尾の__cは自動付与) |
| レコード名 | プロジェクト管理名 | 各レコードを識別するための項目の名前 |
| データ型 | テキスト | プロジェクト名を任意のテキストで入力可能 |
このカスタムオブジェクトには、以下のカスタム項目が設定されているものとします。
| 表示ラベル | データ型 | 項目名 | 詳細設定 | 説明 |
|---|---|---|---|---|
| 予算 | 通貨 | Budget | 桁数:18 小数点以下の桁数:0 |
プロジェクトの予算額 |
| 開始日 | 日付 | StartDate | - | プロジェクトの開始日 |
| ステータス | 選択リスト | Status | 選択値: 計画中 進行中 完了 |
プロジェクトの状態 |
| 顧客名 | テキスト | CustomerName | 文字数:80 | 顧客企業名 |
| 説明 | ロングテキストエリア | Description | 文字数:32768 表示行数:6 |
プロジェクトの説明 |
フローの実装手順
- 「SOQLクエリーの実行」ブロックを配置し、以下のように設定します。
プロパティ名 値 アカウント 使用するSalesforceアカウントを選択 SOQLクエリー SELECT Name, Budget__c, StartDate__c, Status__c, CustomerName__c, Description__c FROM Project__c ORDER BY Budget__c DESC
結果を格納する変数 project_dataSandbox 適宜選択(本番環境の場合はオフ) - 「変数からAnalyticsへアップロード」ブロックを配置し、以下のように設定します。
プロパティ名 値 アカウント 使用するSalesforceアカウントを選択 投入データの変数 project_dataデータセット名 Project_Analysisメタデータ { "fileFormat": { "charsetName": "UTF-8", "fieldsEnclosedBy": "\"", "fieldsDelimitedBy": ",", "numberOfLinesToIgnore": 1 }, "objects": [ { "connector": "AcmeCSVConnector", "description": "プロジェクト分析データ", "fullyQualifiedName": "ProjectData", "label": "Project Data", "name": "ProjectData", "fields": [ { "description": "プロジェクト名", "fullyQualifiedName": "ProjectData.Name", "label": "プロジェクト名", "name": "Name", "isSystemField": false, "isUniqueId": false, "isMultiValue": false, "type": "Text" }, { "description": "予算", "fullyQualifiedName": "ProjectData.Budget", "label": "予算", "name": "Budget__c", "isSystemField": false, "defaultValue": "0", "isUniqueId": false, "type": "Numeric", "precision": 18, "scale": 0, "format": "#,##0" }, { "description": "開始日", "fullyQualifiedName": "ProjectData.StartDate", "label": "開始日", "name": "StartDate__c", "isSystemField": false, "isUniqueId": false, "type": "Date", "format": "yyyy-MM-dd", "fiscalMonthOffset": 0 }, { "description": "ステータス", "fullyQualifiedName": "ProjectData.Status", "label": "ステータス", "name": "Status__c", "isSystemField": false, "isUniqueId": false, "isMultiValue": false, "type": "Text" }, { "description": "顧客名", "fullyQualifiedName": "ProjectData.CustomerName", "label": "顧客名", "name": "CustomerName__c", "isSystemField": false, "isUniqueId": false, "isMultiValue": false, "type": "Text" }, { "description": "説明", "fullyQualifiedName": "ProjectData.Description", "label": "説明", "name": "Description__c", "isSystemField": false, "isUniqueId": false, "isMultiValue": false, "type": "Text" } ] } ] }操作内容 上書きSandbox 適宜選択(本番環境の場合はオフ)
実行結果
CRM Analyticsに以下のようなデータセットが作成されます。
| Name | Budget__c | StartDate__c | Status__c | CustomerName__c | Description__c |
|---|---|---|---|---|---|
| クラウド移行プロジェクト | 8,000,000 | 2024-03-31 | 計画中 | グローバル商事 | オンプレミスからクラウドへの移行 |
| 新規システム開発プロジェクト | 6,000,000 | 2023-12-31 | 計画中 | 株式会社サンプル | 顧客管理システムの新規開発(予算増額) |
次のステップ
この使用例は「プロジェクト管理と分析」シナリオの一部です。次のステップとして、以下のブロックの使用例を参照してください。
- 「レコードの追加」ブロック:Salesforceにプロジェクトデータを追加する
- 「レコードの更新、無ければ追加」ブロック:既存のプロジェクトデータを更新する