データ連携チュートリアル

この章では、サンプルケースを利用して連携設定に必要な基本手順を解説します。はじめて SMP for Salesforce を操作する場合は、こちらの内容で操作の全体感を掴んでください。
そのため、機能ごとの設定項目の詳細については説明を省略している箇所も多いため、「6. 機能リファレンス」もあわせて参照ください。

設定のために必要な情報の参照方法

データ連携を設定するにあたっては、 SMP および SFDC のオブジェクトや項目の正確なシステム名称を指定する必要があります。ご利用の環境における具体的な名称は、それぞれ以下を参照ください。

SFDC におけるオブジェクトおよび項目名の確認方法

標準オブジェクトの場合
  • SFDC ログイン後、[設定] に進み、[アプリケーションの設定] (または [ビルド]) の [カスタマイズ] を開きます

  • 設定対象のオブジェクト(例: リード、キャンペーン等)の、[項目] を開きます

  • 標準項目の一覧にある [項目名]、または、カスタム項目の一覧の [API参照名] に表示されている項目名を確認します

カスタムオブジェクトの場合
  • SFDC ログイン後、[設定] に進み、[ビルド] の [作成]→[オブジェクト] を開きます

  • 設定対象のオブジェクトの詳細を開きます

  • オブジェクト名は、カスタムオブジェクトの定義詳細にて、オブジェクト名を確認します

  • 項目名は、標準項目の一覧にある [項目名]、または、カスタム項目の一覧の [API参照名] に表示されている内容を確認します

詳細あるいは最新情報については SFDC のヘルプやドキュメントを参照ください。(たとえば https://developer.salesforce.com/docs/atlas.ja-jp.api.meta/api/sforce_api_objects_list.htm など)

SMP における API 項目名の確認方法

項目表記フォーマット

SMP for Salesforce では、 SMP の項目名を以下のフォーマットで指定します。

<APIメソッドから get, post 等を除いてキャメライズしたもの>.<API項目名>
例:
Visitor.Name1
Seminar.Attribute12
VisitorApplicationSeminar.VisitorId
SeminarFlow.Seminar
API メソッドと項目名

連携対象となる項目を指定するために、SMP の API のメソッド名と項目名が必要です。 マーケティングプラットフォームAPI開発者ガイド を参照ください。

追加項目やアンケート項目の項目名

SMP でユーザ自身で追加設定される項目は、具体的な項目に含まれる ID がドメインごとで異なります。たとえば、「Visitor.Attribute45」といった形式で、数字の部分が環境ごとの ID になっています。
設定タブの、「API定義のダウンロード」から、 WSDL ファイルをダウンロードすることでご確認いただけます。画面から確認する場合は各機能の CSV 一括登録のベースファイルや、表示項目設定から ID を参照してご確認ください。(項目名として指定する場合は、 Visitor.Attribute といった形式で、API メソッド名をベースとしたプレフィックスを指定する必要があります。上記「項目表記フォーマット」を参照ください)

表 1. 項目ID参照可能箇所
項目の機能 項目のIDを参照可能な箇所の例

リード追加項目

[リード]タブ→[基本項目設定]→[設定エクスポート]

キャンペーン追加項目

[キャンペーン]タブ→[一括登録]→[ベースファイルダウンロード]

サブキャンペーン追加項目

サブキャンペーン型のキャンペーンの[管理開始]後、[サブキャンペーン]タブ→[一括登録]→[ベースファイルダウンロード]

アンケート項目

[アンケート]タブ→[アンケートテンプレート]→[アンケート設問の追加/修正]→[エクスポート]

活動履歴項目

[リード]タブ→[活動履歴一覧]→[一括登録]→[ベースファイルダウンロード]

サンプルケース1: リード情報の連携設定例

サンプルケースの連携仕様

SMP と SFDC のリード情報を相互に更新を反映する連携モデルを想定します。
なお、ここに記述したケースはあくまで連携仕様の1例であり、 SMP for Salesforce でできる唯一の方法というわけではありません。

更新キー

連携済みのデータを識別するための項目を「更新キー」と呼びます。「更新キー」に該当するデータが連携先に存在していればデータを更新し、存在しなければ新規作成します。
ここでは、「更新キー」を「リードID」とします。つまり、SMP 側では SFDC 上でのリードのシステムIDを保持し、SFDC 側では逆に、 SMP のリードIDを保持して、連携済みデータの識別に利用します。

image06.png
図 1. リードIDを更新キーとした場合の連携イメージ

図の例では、 SFDC にカスタム項目「SMP_ID」を設定しています。SMP に リードID = 17 のリードが登録されると、連携実行時に SFDC に SMP_ID = 17 のリードがいるかどうかを探して、存在しなければリードを SFDC に新規登録し、そのリードに SMP_ID = 17 をセットします。
また、登録されたリードの SFDC 上の ID を、SMP の追加項目「SFDC_ID」にセットします。
これにより、以後、片方のシステムでデータを更新すると、相手方システムの対応するリード情報が更新されることになります。

Q. 両システムで同じレコードを同時に更新した場合はどうなりますか?
連携バッチ処理が実行されるまでの間に SMP/SFDC それぞれのデータを更新する場合、先に処理する連携先のデータを更新します。
つまり、1. SMP→SFDC 2. SFDC→SMP の順序で連携する場合、先に SMP のデータで SFDC を更新するため、SFDC の更新は失われます。

連携させるデータの種類と条件

SMP/SFDC の両システムに登録・更新されたリード情報をそれぞれ抽出・反映します。実行頻度は、1時間に一度とし、前回実行日時以降に発生したリード情報を更新を連携するようにします。

新規登録・更新をそれぞれ SMP→SFDC、SFDC→SMP に連携するため、以下の 4種類の連携ジョブを設定することになります。

表 2. 連携ジョブ種類と連携条件
連携ジョブの種類 連携条件

未連携 SMP リード → SFDC リード

SMP のリードで、以下のもの
・「SFDC_ID」が空白
・「システム更新日時」が「前回実行日時」よりも新しい

未連携 SFDC リード → SMP リード

SFDC のリードで、
・「SMP_ID」が空白
・「最終更新日時」が「前回実行日時」よりも新しい

連携済み SFDC リード → SMP リード

SFDC のリードで、
・「SMP_ID」に値がある
・「最終更新日時」が「前回実行日時」よりも新しい

連携済み SMP リード → SFDC リード

SMP のリードで、
・「SFDC_ID」に値がある
・「システム更新日時」が「前回実行日時」よりも新しい

バッチ処理ごとに連携対象となるデータの範囲

連携ジョブを実行するたびに、前回のジョブ実行以降に変更があったリード情報のレコードが差分として更新対象になります。

image10.png
図 2. データの更新と連携対象

図の例では、10時台に登録されたリードA、リードB を 11時のバッチ処理で新規レコードとして連携します。
次に、11時台にリードA が 2回更新され、リードCが新しく登録されています。すると 12時に、リードAの最新情報(2回目の更新後の内容)を連携し、リードC を新規レコードとして連携します。
最後に、 12時台には更新がないので、13時には何も連携対象になりません。

設定手順1: システム設定

連携設定の前に、システムに対して必要な設定を行います。相互のリードIDを保持するための追加項目・カスタム項目を作成します。

SMP の設定

SMP にはリードの基本項目設定で、追加項目を追加します。管理側の[リード]→[基本項目設定]→[新規項目追加]から登録します。

  • 項目名: SFDC_LEAD_ID

  • 表示/非表示: 管理者側のみ表示

  • フォーム種別: テキスト

  • 必須の可否: 必須にしない

  • フィールドサイズ: 30

  • 最大文字数: 30

image16.png
図 3. SMP リード基本項目設定 (SFDC_LEAD_ID の設定)

作成された追加項目「SFDC_LEAD_ID」の、IDを確認しておきます。[リード]→[一括登録] から、[ベースファイルダウンロード] をクリックしてダウンロードした CSV ファイルのカラムで、確認可能です。

image14.jpg
図 4. ベースファイルダウンロードで追加した項目の ID を確認

ここでは、図のように「attribute1」が「SFDC_LEAD_ID」の項目IDであるとします。

SFDC の設定

SFDC では、リードオブジェクトへのカスタム項目を追加します。[設定]→[カスタマイズ]→[リード]→[新規] から、「リードカスタム項目&リレーション」から [新規] へ進み、以下の内容で登録します。

  • データ型: テキスト

  • 項目の表示ラベル: SMP_ID

  • 項目名: SMP_ID

  • 文字数: 10

  • 外部ID: 「外部システムの一意のレコード識別子として設定する」にチェック

項目レベルセキュリティの設定、ページレイアウトへの追加はデフォルトのまま進めます。

image23.png
図 5. SFDC リードカスタム項目設定 (SMP_ID の設定)

図のように、上で作成したカスタム項目の、API 参照名は「SMP_ID__c」となります。以下の設定では、この API 参照名を項目マッピング等で利用します。

設定手順2: 連携設定その1 (新規 SMP リードを SFDC リードへ)

以降では、SMP 接続設定は設定済みで、ひとつの設定が有効となっていることを前提とします。
また、Force.com アプリケーションメニューで「SMP for Salesforce」が選択済みであることとします。
もし上記設定されていない場合は、「4. セットアップ手順」を参照し、設定を行ってください。

連携ジョブの設定

SMP/SFDC の両システムに登録・更新されたリード情報をそれぞれ抽出・反映するため、以下の連携ジョブを設定します。

まず、SMP から SFDC へ新規登録されたリード情報を反映する連携ジョブを以下の内容で作成します。

表 3. 連携ジョブ項目一覧
項目 入力内容

ジョブ名

連携ジョブを表現する、適当な名前を入力します。
たとえば、「チュートリアル: 新規 SMP リード→ SFDC リード」とします。

連携ジョブID

連携ジョブを識別するためのIDを入力します。
たとえば、「job-tutorial1」とします。(半角英数字で入力します)

繰り返しタイミング

「1時間」を選択します。

起動時刻

繰り返しタイミングが1時間の場合は指定不要なので、「指定しない」のままにします。

条件

「前回実行日時から実行」を選択します。

前回実行日時

適当な過去の日時を指定します。

次回実行日時

適当な未来の日時を指定します。

エラー時制御

連携するデータでエラーが発生した場合に処理を継続するかどうかを指定します。ここでは「続行」を選択します。

エラー通知先

連携ジョブでエラーが発生した場合に通知するメールアドレスを入力します。
ご自身のメールアドレスをご入力ください。(半角英数字で入力します)

実行順序

連携ジョブの中での実行順序を指定します。ここでは「10」と入力します。(半角数字で入力します)

image15.png
図 6. 連携ジョブ設定画面例
オブジェクトマッピングの設定

続いて、オブジェクトマッピングを設定します。
上で作成した連携ジョブID「job-tutorial1」の詳細から、新規オブジェクトマッピングを作成します。
最終的には以下の図のような内容となるように、設定を追加します。

image19.png
図 7. 連携ジョブ1のオブジェクトマッピング1

以下の内容を入力し、保存をクリックします。

表 4. オブジェクトマッピング項目一覧
項目 入力内容

オブジェクトマッピング名

リード新規 SMP→SFDC

オブジェクトマッピングID

obj-tutorial1-1

実行順序

10

連携方向

SMP → SFDC

SMP連携オブジェクト名

リード

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC 更新キー

SMP_ID__c

SFDC API レスポンスで格納する要素

SMP_ID__c

項目マッピングの設定

上で設定したオブジェクトマッピングに項目マッピングを追加します。
オブジェクトマッピングの詳細画面にある、[新規項目マッピング] ボタンから登録画面を開き、以下の表の1行分の設定を入力・保存し、合計 5つの項目マッピング設定を追加します。
SFDC項目の、「LastName」(姓)と「Company」(会社名) は入力必須項目のため、必ず設定しましょう。

表 5. 項目マッピング項目一覧
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-t1-1-id

Visitor.Id

SMP_ID__c

--なし--

2

item-t1-1-email

Visitor.Email

Email

--なし--

3

item-t1-1-name1

Visitor.Name1

LastName

--なし--

4

item-t1-1-name2

Visitor.Name2

FirstName

--なし--

5

item-t1-1-companyname

Visitor.CompanyName

Company

--なし--

image17.png
図 8. 項目マッピングの設定画面例
API パラメータの設定

項目マッピングと同様、上で設定したオブジェクトマッピングの詳細から、API パラメータも追加していきます。
[新規APIパラメータ] ボタンから、以下の設定を追加します。

表 6. APIパラメータ項目一覧
No. APIパラメータID APIパラメータキー 検索オペレータ APIパラメータ内容 前回実行日・条件日時を指定

1

apiparam-t1-1-1

Visitor.Attribute1

eq

(空白)

(チェックしない)

2

apiparam-t1-1-2

Visitor.DateUpdate

ge

(空白)

SFDC_LEAD_ID (Attribute1)が空白である、つまり、まだ SFDC リードと対応していないリードを抽出対象とします。また、更新日時(DateUpdate)が前回実行日時以降のものとすることで、前回からの差分レコードを更新対象とします。

動作確認 (連携ジョブの手動実行と連携ログの確認)

ここまでの手順で、SMP に新規登録されたリード情報が SFDC のリードに連携されるようになっているはずです。以下の手順で、動作を確認してみましょう。 . SMP から、リードを新規登録する .. 管理側 [リード]→[新規登録]から、 姓、名、会社名、Email を入力し、登録します .. SFDC_LEAD_ID には何も入力しないようにします . SMP for Salesforce の連携を手動実行します .. SFDC で、[SMP接続設定一覧] タブをクリックし、 [連携ジョブバッチ実行] ボタンをクリックします

image11.png
図 9. 連携ジョブバッチ実行ボタン

連携ジョブの実行が開始されると、下の図のように対象の連携ジョブの「ジョブ実行中」フラグが ON になります。すべてのジョブの実行が完了すると、自動的に OFF に戻ります。

image08.png
図 10. 実行中の連携ジョブが存在する時の連携ジョブ一覧

実行が完了したら、連携ジョブの詳細画面から「ログレポート」のリンクをクリックします。レポート画面で、直前に実行した連携ログの内容が表示されます。

tutorial1 log sample.png
図 11. ログレポートの例
  • 「詳細のエクスポート」から、 Excel 形式でログデータをダウンロードして全文を参照します

  • 「SMP_ログ: No」の条件をクリアし、追加で任意の期間条件を指定することで過去のログを参照することができます

内容を確認し、エラーなどが起きていないことを確認します。もしエラーが発生した場合は、連携ジョブのエラー通知先に設定したメールアドレスに通知メールが送信されます。エラーがある場合は、エラー内容や 連携実行時のトラブルシュート を参考に、ここまでの設定内容を見直してください。

設定手順3: 連携設定その2 (新規作成された SFDC リードの ID を SMP に反映)

変数の定義

SMP から SFDC に連携して新規作成されたリードには、新しいSFDC のリードIDが振り出されています。これを SMP のリードに戻すことで、以後、SFDC 側の更新が SMP にも反映されるようにします。
この処理の対象を実際に連携されたリード情報に限定するため、変数を利用します。

  1. オブジェクトマッピング1 で連携した SMP リードIDを変数に格納

  2. 同じ連携ジョブの中にオブジェクトマッピングをもうひとつ追加し、変数に格納されたリードIDを SMP_ID にもつ SFDC リードを抽出、SFDC のリードIDを SMP リードの「SFDC_LEAD_ID」に反映する

まず、 1. の手順のため、上で作成したオブジェクトマッピングに変数定義を設定します。オブジェクトマッピングの詳細を開き、[新規変数定義] をクリックし、以下の内容を入力して [保存] をクリックします。

表 7. 変数定義
No. 変数定義ID 変数名 変数内容

1

var-tutorial1-1-visitorid

var1

Visitor.Id

image00.png
図 12. メモ&添付ファイル詳細

変数を SFDC からのデータ抽出条件に利用する
次に、上で設定した連携ジョブの中で、オブジェクトマッピングをもうひとつ追加します。以下の内容を入力し、保存をクリックします。

表 8. データ抽出条件設定項目
項目 入力内容

オブジェクトマッピング名

リード新規: SFDC からのリードID戻し

オブジェクトマッピングID

obj-tutorial1-2

実行順序

20

連携方向

SFDC → SMP

SMP連携オブジェクト名

リード

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC取得SOQL

SELECT Id, SMP_ID__c, Name FROM Lead WHERE SMP_ID__c=:var1 AND SMP_ID__c != '' AND LastModifiedDate > :LastRunDateTime

データ取得基準

更新日

SMP 更新キー

Visitor.Id

SMP API レスポンスで格納する要素

Visitor.Id

SMP更新方法

PUT

SMP API レスポンスで格納するSFDC項目

SMP_ID__c

「SFDC取得SOQL」に、先に設定した変数定義を使用しています。SOQL の WHERE 句に「SMP_ID__c=:var1」と記述することで、 var1 に格納された SMP リードID を SMP_ID__c に持つ SFDC リードを抽出対象に指定できます。

さらに、上ではもうひとつの変数を使った条件「LastModifiedDate > :LastRunDateTime」を指定しています。「:LastRunDateTime」は、連携ジョブの項目「前回実行日時」の値を保持するシステム変数で、変数設定をしなくても利用可能です。これにより、最終更新日時(LastModifiedDate)が前回の連携以降の日時であるデータを連携対象としています。

上のように、SOQLを記述して SFDC 取得データを定義した場合は、自動的に前回実行からの差分取得とならないので、更新期間によって連携対象を絞り込む場合はその条件を SOQL に記述する必要があります。

その他、SOQL を記述する場合の注意点について、機能リファレンスの SFDC 取得SOQL について の内容も参照ください。

また、上記オブジェクトマッピングに対して、項目マッピングを以下のとおり追加します。

表 9. 追加項目マッピング項目
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-t1-2-smpid

Visitor.Id

SMP_ID__c

--なし--

2

item-t1-2-id

Visitor.Attribute1

Id

--なし--

これで、この連携ジョブを実行すると、SMP から新規に SFDC リードが連携されるとともに、SMP には SFDC のリードIDが反映されるようになります。

設定手順4: 連携設定その3 (残りの連携ジョブ設定)

続けて、残り 3つの連携ジョブ(連携ジョブ 2 〜 4)も同様の手順で追加します。ジョブ名、連携ジョブID、実行順序のみ、以下のとおり変更します。

表 10. 連携ジョブ設定
No. ジョブ名 連携ジョブID 実行順序

連携ジョブ1

新規 SMP リード→ SFDC リード

job-tutorial1

10

連携ジョブ2

新規 SFDC リード → SMP リード

job-tutorial2

20

連携ジョブ3

SFDC リードの更新 → SMP リード

job-tutorial3

30

連携ジョブ4

SMP リードの更新 → SFDC リード

job-tutorial4

40

先に作成した連携ジョブ(上の表の連携ジョブ1)の詳細から、コピーして作成すると簡単です。

連携ジョブ2: 未連携の SFDC リードを SMP に連携する

連携ジョブ2 には、以下の内容でオブジェクトマッピングを作成します。

表 11. オブジェクトマッピング設定(新規SFDCリード→SMPリード)
項目 入力内容

オブジェクトマッピング名

リード新規: SFDC → SMPリード

オブジェクトマッピングID

obj-tutorial2-1

実行順序

10

連携方向

SFDC → SMP

SMP連携オブジェクト名

リード

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC取得SOQL

SELECT Id, SMP_ID__c, Email, FirstName, LastName, Company FROM Lead WHERE IsConverted = FALSE AND SMP_ID__c = null AND LastModifiedDate > :LastRunDateTime

データ取得基準

更新日

SMP 更新キー

Visitor.Id

SMP API レスポンスで格納する要素

Visitor.Id

SMP更新方法

PUT・POST

SMP API レスポンスで格納するSFDC項目

SMP_ID__c

SFDC取得SOQL に「IsConverted = FALSE」とすることで、取引先責任者に昇格していないリードに対象を限定しています。また、「SMP_ID__c = null」により、まだ連携していないリードを対象としています。

上記オブジェクトマッピングに対して、項目マッピングを以下のとおり追加します。

表 12. 項目マッピング設定
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-t1-2-smpid

Visitor.Id

SMP_ID__c

--なし--

2

item-t1-2-id

Visitor.Attribute1

Id

--なし--

これ以外にも、SFDC から SMP へ反映したい任意の項目をマッピングに追加してみましょう。その際、対象の項目を SFDC取得SOQL の SELECT 句にも記述するよう注意します。

連携ジョブ3: SFDC リードの更新を SMP に反映する

連携ジョブ3 には、以下の内容でオブジェクトマッピングを作成します。

表 13. 項目マッピング設定
項目 入力内容

オブジェクトマッピング名

リード更新: SFDC → SMPリード

オブジェクトマッピングID

obj-tutorial3-1

実行順序

10

連携方向

SFDC → SMP

SMP連携オブジェクト名

リード

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC取得SOQL

SELECT Id, FirstName, LastName, Company, Email, SMP_ID__c FROM Lead WHERE LastModifiedById != '005280000018AFK' AND IsConverted = FALSE AND SMP_ID__c != null AND LastModifiedDate > :LastRunDateTime

データ取得基準

更新日

SMP 更新キー

Visitor.Id

SMP API レスポンスで格納する要素

Visitor.Id

SMP更新方法

PUT・POST

SMP API レスポンスで格納するSFDC項目

SMP_ID__c

ここでのポイントは、SFDC取得SOQL の WHERE 句に LastModifiedById の内容を指定している箇所です。(「LastModifiedById != '005280000018AFK'」)
ここで、'005280000018AFK' の部分は実際に連携設定を操作しているシステム管理者のユーザIDに置き換えて記述します。ユーザIDは、[設定]→[ユーザの管理]から、対象ユーザの詳細を表示したときのURL(
たとえば、「https://ap2.salesforce.com/005280000018AFK」)から、確認できます。

項目マッピングは、連携ジョブ2 で指定した内容と同様の内容を指定してみましょう。

連携ジョブ4: SMP リードの更新を SFDC リードに反映する

最後に、連携ジョブ4 にオブジェクトマッピング等を設定します。

以下の内容を入力し、保存をクリックします。

表 14. 項目マッピング設定
項目 入力内容

オブジェクトマッピング名

リード更新 SMP→SFDC

オブジェクトマッピングID

obj-tutorial4-1

実行順序

10

連携方向

SMP → SFDC

SMP連携オブジェクト名

リード

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC 更新キー

SMP_ID__c

SFDC API レスポンスで格納する要素

SMP_ID__c

上で設定したオブジェクトマッピングに項目マッピングを追加します。

表 15. オブジェクトマッピング設定
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-t4-1-id

Visitor.Id

SMP_ID__c

--なし--

2

item-t4-1-email

Visitor.Email

Email

--なし--

3

item-t4-1-name1

Visitor.Name1

LastName

--なし--

API パラメータも設定しましょう。

表 16. 項目マッピング設定
No. APIパラメータID APIパラメータキー 検索オペレータ APIパラメータ内容 前回実行日・条件日時を指定

1

apiparam-t4-1-1

Visitor.Attribute1

ne

(空白)

(チェックしない)

2

apiparam-t4-1-2

Visitor.DateUpdate

ge

(空白)

SFDC_LEAD_ID (Attribute1)が空白ではない、つまり、既に SFDC リードと対応しているリードを抽出対象とします。また、更新日時(DateUpdate)が前回実行日時以降のものとすることで、前回からの差分レコードを更新対象とします。

ひととおり設定が済んだら、あらためて動作確認してみましょう。SMP・SFDC 双方からリードを登録・更新して、 [SMP接続設定一覧] から、 [連携ジョブバッチ実行] ボタンで連携ジョブを手動実行します。エラーが発生した場合は、「9-2. 連携実行時のトラブルシュート」も参照しつつ解決を試みてください。

サンプルケース2: リードに結びつく履歴データの連携

キャンペーン来場履歴の連携例

サンプルケース1 でリード情報が連携済みであるという前提で、キャンペーン来場履歴を連携してみましょう。
ここでは以下のことを説明します。

  • SFDC にカスタムオブジェクトを作成し、 SMP 履歴データを保存する方法

  • SFDC 上でのオブジェクト間の参照関係、つまり、リードと来場履歴の間の結びつきを反映する方法 (連携方向 SFDC → SFDC の使い方)

キャンペーン来場履歴を例に説明しますが、同様の方式で、その他の各種履歴系(メール履歴、トラッキング履歴等)の SMP オブジェクトを SFDC へ連携することが可能です。

設定手順1: カスタムオブジェクトを作成

新規カスタムオブジェクトの作成

SMP からのキャンペーン来場履歴を入れる箱となるカスタムオブジェクトを作成します。
[設定]→[作成] の下にある、[オブジェクト] から [新規カスタムオブジェクト]ボタンをクリックして、カスタムオブジェクトを作成します。

image21.png
図 13. カスタムオブジェクトの作成

以下の内容を入力し、オブジェクト作成します。

  • 表示ラベル: 来場履歴

  • オブジェクト名: TutorialSeminarAttendance

  • レコード名: 来場履歴名

  • データ型: テキスト

また、作成したカスタムオブジェクトのレコードをタブから表示できるようにする場合は、[設定]→[作成] の下にある [タブ] からカスタムタブを新規に作成し、上で作成したカスタムオブジェクトを指定してください。

カスタム項目の作成

オブジェクトが作成されたら、その詳細を表示し、カスタム項目に項目を追加します。「カスタム項目&リレーション」欄にある [新規] ボタンをクリックし、項目を追加していきます。

tutorial2 customobject setting.png
図 14. 来場履歴用カスタムオブジェクトの設定例

まず、「テキスト」型の項目を 4点、以下の内容で作成します。

表 17. テキスト型の項目一覧
No. 項目の表示ラベル 項目名 文字数 外部ID: 「外部システムの一意のレコード識別子として設定する」

1

SMP_ID

SMP_ID

10

チェックする

2

SMPキャンペーンID

SeminarId

10

チェックする

3

SMPリードID

VisitorId

10

チェックする

4

SMPキャンペーンタイトル

SeminarTitle

120

(なし)

続いて、「参照関係」型の項目を作成し、SFDC上のリードと来場履歴を結びつけられるようにします。
カスタム項目の新規作成に進み、データ型で「参照関係」を選択し、次に進みます。続いて、関連先で、「リード」を選択し、次に進みます。項目の表示ラベル等は、以下の表を参照ください。

表 18. 参照関係型の項目一覧
No. 関連先 項目の表示ラベル 項目名 子リレーション名

1

リード

リード

Lead

TutorialSeminarAttendanceLead

さらに、いつリードが来場したのかわかるように、来場日時を保存する「日付/時間」型の項目を作成します。

表 19. 日付/時間型の項目一覧
No. 項目の表示ラベル 項目名

1

SMPキャンペーン来場日時

SeminarAttendanceDate

設定手順2: キャンペーン来場履歴の連携設定

連携ジョブの作成

キャンペーン来場履歴を連携させる処理を実行する、連携ジョブを新しく作成します。サンプルケース1 での手順にならい、タイトルをたとえば「チュートリアル2: 来場履歴の連携」として新規連携ジョブを登録します。

tutorial2 job setting.png
図 15. 来場履歴の連携ジョブ設定例

この連携ジョブの下に、以下の 2つのオブジェクトマッピングを作成します。

表 20. オブジェクトマッピングの構成
No. 連携内容 連携方向 説明

1

キャンペーン来場履歴

SMP→SFDC

SMP のキャンペーン来場履歴レコードを、新しく作成したカスタムオブジェクトに連携します

2

LeadId との参照関係を設定

SFDC→SFDC

カスタムオブジェクトに入った来場履歴に、SFDC のリードIDとの参照関係を反映します

一つ目が、来場履歴のレコードをカスタムオブジェクトに移送するためのマッピングで、ふたつ目のマッピングでそれらのレコードに対して、SFDC 上のリードとの参照関係を更新します。これにより、SFDC のリード詳細から、カスタムオブジェクトのキャンペーン来場履歴を参照することが可能となります。

オブジェクトマッピング1: 「キャンペーン来場履歴」の設定

上で作成した連携ジョブの詳細から、新規オブジェクトマッピングを作成します。最終的には以下の図のような内容となるように、設定を追加します。

tutorial2 obj mapping1.png
図 16. キャンペーン来場履歴のオブジェクトマッピング1設定例

一つ目のオブジェクトマッピングには、以下の内容を入力し、保存をクリックします。

表 21. オブジェクトマッピングの設定(キャンペーン来場履歴)
項目 入力内容

オブジェクトマッピング名

キャンペーン来場履歴 SMP→SFDC

オブジェクトマッピングID

obj-tutorial5-1

実行順序

10

連携方向

SMP → SFDC

SMP連携オブジェクト名

キャンペーン来場

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

TutorialSeminarAttendance__c

SFDC 更新キー

SMP_ID__c

SFDC API レスポンスで格納する要素

Id

項目マッピングを以下のように設定します。SFDC項目に入力する内容は、カスタムオブジェクトに設定したカスタム項目の項目名(API参照名)にあたります。また、必須となる項目マッピングについては、「7. SMP連携オブジェクトリファレンス」のキャンペーン来場履歴の項も参照ください。

表 22. 項目マッピング
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-tut2-1-id

VisitorAttendanceSeminar.Id

SMP_ID__c

--なし--

2

item-tut2-1-seminarid

VisitorAttendanceSeminar.Seminar

SeminarId__c

SMP項目が選択リスト

3

item-tut2-1-visitorid

VisitorAttendanceSeminar.VisitorId

VisitorId__c

--なし--

4

item-tut2-1-seminarid2

Seminar.Id

SeminarId__c

--なし--

5

item-tut2-1-visitorid2

Visitor.Id

VisitorId__c

--なし--

6

item-tut2-1-seminartitle

Seminar.Title

SeminarTitle__c

--なし--

7

item-tut2-1-seminarattendancedate

VisitorAttendanceSeminar.AttendanceDate

SeminarAttendanceDate__c

--なし--

また、変数定義を以下のように設定します。来場履歴を連携したリードのSMP上のIDを格納し、続くオブジェクトマッピングで連携対象を限定するために利用します。

表 23. 変数定義
No. 変数定義ID 変数名 変数内容

1

var-tut2-1-visitorid

var1

VisitorAttendanceSeminar.VisitorId

さらに、 API パラメータを以下のように設定します。来場日時が連携ジョブの前回実行日時以降の来場履歴を差分取得します。

表 24. APIパラメータ
No. APIパラメータID APIパラメータキー 検索オペレータ APIパラメータ内容 前回実行日時・条件日時を指定

1

apiparam-tut2-1-attendancedate

VisitorAttendanceSeminar.AttendanceDate

ge

チェックする

オブジェクトマッピング2: 「LeadId との参照関係を設定」の設定

二つ目のオブジェクトマッピングには、以下の内容を入力し、保存をクリックします。

表 25. オブジェクトマッピング(LeadIdとの参照関係)
項目 入力内容

オブジェクトマッピング名

キャンペーン来場履歴 LeadId 参照関係の更新

オブジェクトマッピングID

obj-tutorial5-2

実行順序

20

連携方向

SFDC → SFDC

SMP連携オブジェクト名

(なし)

NULLでの上書き

NULL項目は上書きしない

SFDCオブジェクト

Lead

SFDC取得SOQL

SELECT Id, SMP_ID__c FROM Lead WHERE SMP_ID__c =:var1 AND SMP_ID__c != '' AND IsConverted = FALSE

データ取得基準

更新日

連携元SFDCオブジェクト

Lead

連携元更新キー

SMP_ID__c

連携先SFDCオブジェクト

TutorialSeminarAttendance__c

連携先更新キー

VisitorId__c

更新方法

UPDATE

SFDC取得SOQL では、リードオブジェクトに対して、先のマッピングで連携対象となった SMP リードID を SMP_ID に持つレコードを限定取得しています(「SMP_ID__c=:var1」)。
更新キーについても、SMPリードIDをキーとしています。連携先となる来場履歴に、同じ SMP リードIDを持つレコードが複数あった場合も、それらすべてに更新がかかります。
来場履歴としてカスタムオブジェクトに登録済みのレコードへの更新のみ実施したいので、更新方法を「UPDATE」としています。

また、項目マッピングを以下のように設定します。リードオブジェクトの「Id」を、来場履歴の参照関係「Lead__c」に反映するマッピングになっています。

表 26. 項目マッピング
No. 項目ID SMP項目または連携先SFDC項目 SFDC項目 SMP項目の属性

1

item-tut2-2-leadid

Lead__c

Id

--なし--

tutorial2 obj mapping2.png
図 17. キャンペーン来場履歴のオブジェクトマッピング2設定例
動作確認 (連携ジョブの手動実行)

ここまでの手順で、SMP に新規登録されたキャンペーン来場履歴が SFDC のカスタムオブジェクトに連携された上で、リードから参照可能となっているはずです。

実際に、 SMP にリードおよび来場履歴を登録し、連携ジョブを手動実行してみましょう。サンプルケース1 で設定したリード連携のうち、SMP→SFDC の連携ジョブも有効となっていることが前提です。来場登録の方法については、SMP のユーザーマニュアルを参照ください。

エラーが発生した場合は、 連携実行時のトラブルシュート も参照しつつ解決を試みてください。

正しく連携されると、以下のように来場履歴のカスタムオブジェクトにデータが登録されます。SMP の各リードのキャンペーンへの来場日時を SFDC 上で確認できるようになっています。また、リード名がリンク表示になっており、リードへの参照関係が登録できていることも確認できます。

tutorial2 result seminarattendance.png
図 18. キャンペーン来場履歴の連携結果例

項目の連携 Tips

SMP のリード詳細画面の URL を SFDC へ連携する

フィルター「文字列のパディング」を利用すると、連携する値に固定文字列を付加することができます。これを利用して、連携する SMP リードの ID に URL 文字列を追加して、SMP リード詳細画面の URL を作成・連携することができます。

連携元にSMPリードID(Visitor.Id 等)を指定した項目マッピングに対して、以下のフィルター設定を追加します。

  • フィルター種類: 文字列のパディング

  • フィルター式: [https://demo-example.smktg.jp/public/admin/login?return_path=%2Fmultivisitor%2Fview%2F][0][L]

これにより、連携先 SFDC 項目にはたとえば、「https://demo-example.smktg.jp/public/admin/login?return_path=%2Fmultivisitor%2Fview%2F33」といった文字列が登録されます。(末尾の 33 がリードIDに相当) 実際にこのリンクをクリックすると、対象の SMP にログイン済みであればそのままリード詳細画面が、未ログインであれば管理者ログイン画面を経て、リード詳細画面が表示されます。

なお、連携先の SFDC 項目には URL 型のカスタム項目を利用すると自動的にリンク表示になるため便利ですが、その場合、255 文字以内の入力制限がつくため、ご注意ください。(文字数を超えるデータを連携しようとした場合、登録エラーになります)

複数の項目を結合する

連携元では分離している項目を結合して、連携先のひとつの項目に入力することができます。たとえば、郵便番号の3桁部分と4桁部分を結合して連携したり、「姓」と「名」を結合して「氏名」欄に連携したりするケースがあります。

ここでは、SMP の「郵便番号1」(Zip1)と「郵便番号2」(Zip2) をハイフンつなぎで結合して SFDC リードの郵便番号(PostalCode)に連携するケースを例に、設定方法を説明します。

  1. 項目マッピングで、「SMP項目または連携先SFDC項目」「SFDC項目」が以下のペアとなるレコードを追加します

    1. Visitor.Zip1 / PostalCode

    2. Visitor.Zip2 / PostalCode

  2. 上の2つの項目マッピングにそれぞれ、フィルター設定を追加します

    1. フィルターの種類: 文字列の埋め込み

    2. フィルター式: [-][Visitor.Zip1][Visitor.Zip2]

    3. 実行順序: 1

itemmapping postalcode.png
図 19. 郵便番号を結合する項目マッピング設定例

注意
フィルターは、結合する項目すべて(上の例では Zip1、Zip2 の両方)の項目マッピングに設定するようにしてください。片方だけしか設定していない場合、連携時のどちらの項目マッピングが処理されるかによって、フィルターが適用されたりされなかったりします。(フィルターに設定している「実行順序」は項目マッピングの中で複数のフィルターを設定した場合の実行順序を決めるものであり、項目マッピングがどの順序で処理されるかは制御できません)

SFDC の日時項目を SMP に連携する

SFDC の日付/日時項目を SMP の日時項目に連携する場合、フィルタを利用してフォーマットを変換する必要があります。

  1. 「SMP項目または連携先SFDC項目」に SMP の日時型の項目、「SFDC項目」に 日時型の項目を指定した項目マッピングを作成します

  2. 上の項目マッピングに、フィルター設定を追加します

    1. フィルターの種類: 指定された形式の日付フォーマットに変換

    2. フィルター式: [yyyy-MM-dd’T’HH:mm:ss'+09:00']

    3. 実行順序: 1

itemmapping datetime sfdc2smp.png
図 20. SFDC の日時項目を連携する項目マッピング設定例

注意
上記の例は、SFDC/SMP のタイムゾーン設定が日本標準時(JST)であることを前提としています。

検索結果 ""

    検索結果がありません ""