※目次
  1. ML4SFの概要

  2. ML4SFで利⽤しているSalesforceの技術要素

  3. ユーザ認証とアクセス権限

  4. MakeLeaps Classic と MakeLeaps Lightning

  5. オブジェクトの対応

  6. データ同期について

  7. 各オブジェクトの振る舞い

  8. Salesforceのトリガー

  9. 編集に関する制約

  10. MakeLeapsの書類データをSalesforceへ連携する

  11. SSOモード

1. ML4SFの概要

MakeLeaps for Salesforce(以下、ML4SF)は、MakeLeapsとSalesforceを連携するAppExchangeアプリです。

Salesforce上の取引先、取引先責任者等のデータはMakeLeapsのサーバへ⾃動的に同期され、書類作成や送付に利⽤ できます。

MakeLeapsで作成した書類は、Visualforceを利⽤してSalesforceのUIに埋め込み表⽰されます。

この記事では、ML4SFの基本的な仕組みについて説明します。

2. ML4SFで利⽤しているSalesforceの技術要素

  • Apex

    • HTTP コールアウト 

    • Queueable Apex 

    • トリガー 

  • アプリケーション 

  • 接続アプリケーション 

    • キャンバス 

    • 署名付き要求 

    • Oauth2 

  • カスタムメタデータ 

  • 権限セット 

  • REST API 

  • Visualforce 

3. ユーザ認証とアクセス権限

ML4SFはVisualforceキャンバスやLightningコンポーネントを利⽤して、Salesforce内にMakeLeapsを表⽰します。

ユーザ認証には、Salesforceの署名付き要求を利⽤するため、MakeLeapsにユーザ名やパスワードを直接⼊⼒する必要はありません。

⼀⽅、ML4SFユーザは直接MakeLeapsにログインすることはできません。 

ML4SFへのアクセス権限は、Salesforceの権限セットである MakeLeaps Classic および MakeLeaps Lightning によって制御されます。

この権限セットに割り当てされたユーザのみがML4SFへアクセスできます。 

ML4SFにおける各操作や承認等の権限は、ML4SF内の権限設定やライセンス管理によって制御されます。 

※関連記事

4. MakeLeaps Classic と MakeLeaps Lightning

※ MakeLeaps Lightningはバージョン1.41より追加されました。 

ML4SFをインストールすると、MakeLeaps ClassicおよびMakeLeaps Lightningの⼆つのアプリケーションが利⽤可能となります。

⼆つの違いはUIの実装⽅法です。

どちらを利⽤する場合も機能やMakeLeaps側のデータは共通です。

MakeLeaps Classicは主にVisualforceキャンバスを利⽤してUIを実装しているのに対し、MakeLeaps Lightningは Lightningコンポーネントを利⽤しています。

お使いの環境がSalesforce Classicをご利⽤の場合、MakeLeaps Classicをご利⽤ください。

これは、Salesforce ClassicではLightning Componentが利⽤できないという制約のためです。

Salesforce Lightning Experienceをご利⽤の場合は、MakeLeaps Classic、MakeLeaps Lightningのどちらもご利⽤いただけます。 

それぞれの設定⽅法はML4SFご利⽤ガイドをご確認ください。

5. オブジェクトの対応

ML4SFが利⽤するSalesforceオブジェクトと、MakeLeapsのオブジェクトの対応関係は以下の通りです。

 

  • Salesforceの取引先(Account) は、MakeLeapsの取引先(Client)に対応します。

  • Salesforceの取引先責任者(Contact)は、MakeLeapsの連絡先(Contact)に対応します。 

  • Salesforceの商談(Opportunity)は、書類作成フォームの初期値として各項⽬が参照されます。MakeLeapsの特定のオブジェクトには対応しません。 

  • Salesforceのリード(Lead)は、MakeLeapsの取引先および連絡先に対応します。リードが変換され、取引先と 取引先責任者となった場合は、それぞれ変換前にMakeLeapsに作られた取引先と連絡先に関連づけられます。

  • Salesforceのユーザ(User)は、MakeLeapsのメンバー(Employee)に対応します。

6. データ同期について

バージョン1.23まで 

バージョン1.23より前のML4SFでは、2種類の⽅法でデータ同期を⾏います。

⼀つは「インライン同期」です。

この⽅法では、Salesforceのオブジェクト詳細ページに統合されているMakeLeapsの書類リストを開いた際、署名付き要求にSalesforceオブジェクトの情報を含めて送信し、MakeLeapsへ同期します。

もう⼀⽅は「バックグラウンド同期」です。

バックグラウンド同期では、特定のデータが変更された場合にSalesforceよりコールアウトを起点に呼び出されます。

 

バージョン1.23以降 

バージョン1.23より、全てのデータ同期はバックグラウンド同期を利⽤しています。インライン同期は、オブジェクト詳細ページの書類リスト閲覧時にリアルタイムでバックグラウンド同期を呼び出す動作に置き換えられました。

 

不要な同期処理を避けるため、MakeLeaps側のデータが古くなっている場合のみデータを再同期する仕組みがあります。Salesforce側、MakeLeaps側それぞれのデータに対してHMACダイジェストを計算、⽐較することで、再同期が必要かどうか判定しています。

 

全バージョン共通 

取引先、取引先責任者、リードの同期がSalesforceから呼び出されると、同期処理時の競合を避けるため、 MakeLeapsは30秒後に同期処理を開始します。この期間に同じオブジェクトに対して複数回バックグラウンド同期処理が呼び出された場合は、⼀度だけ同期が実⾏されます。

 

ユーザーオブジェクトは、Salesforceの詳細ページに書類リストがありません。そのため、ユーザーオブジェクトに 対するインライン同期や、リアルタイムのバックグラウンド同期の呼び出しは起こりません。 

商談オブジェクトはMakeLeapsの特定のオブジェクトには対応しないため、Salesforceよりバックグラウンド同期が呼び出されることはありません。商談詳細画⾯の書類リストを閲覧時に、リアルタイムのバックグラウンド処理呼び出しでのみ同期されます。 

7. 各オブジェクトの振る舞い

取引先(Account) 

Salesforceの取引先は、MakeLeapsの取引先として同期されます。

個⼈取引先は、 MakeLeapsでは会社連絡先を持たない取引先として同期されます。

※Salesforceに個人取引先を保存するには、別途Salesforce上で「個人取引先の有効化」が必要です。詳細はSalesforce社へお問い合わせください。

▼関連するSalesforceヘルプページ

個人取引先: https://help.salesforce.com/articleView?id=account_person.htm&type=0
個人取引先の有効化:https://help.salesforce.com/articleView?id=account_person_enable.htm&type=0

 

  • Salesforceの取引先のうち、「MakeLeapsと同期」チェックボックスがチェック済みのものに対して、 MakeLeapsの取引先が作られます。クライアント数の上限を超えている場合は、取引先は作られません。

  • 「MakeLeapsと同期」チェックボックスがチェック済みの取引先がSalesforce上で更新された場合、 MakeLeaps上の取引先も更新されます。 

  • 「MakeLeapsと同期」チェックボックスがチェックを外されたり、Salesforce上から取引先が削除された場合、 MakeLeapsの取引先は下記の通り処理されます。

    • 取引先がMakeLeaps上の書類などで利⽤されていなかった場合、「削除」されます。

    • 取引先がMakeLeaps上の書類などで利⽤されている場合、「アーカイブ」されます。 

  • Salesforceで取引先を統合すると、MakeLeaps上でも取引先が統合され、関連するデータは統合先の取引先へ引き継がれます。統合時点で、統合先のSalesforce取引先がMakeLeapsへ同期されていなかった場合は、統合先データがMakeLeapsへ初めて同期されるタイミングで、MakeLeaps上での統合が⾏われます。

取引先責任者(Contact) 

Salesforceの取引先責任者は、MakeLeapsの連絡先として同期されます。 

  • Salesforceの取引先責任者のうち、その取引先の「MakeLeapsと同期」チェックボックスがチェック済みのものに対して、MakeLeapsの取引先責任者が作られます。 

  • 「MakeLeapsと同期」チェックボックスがチェック済みの取引先に所属する取引先責任者がSalesforce上で更新された場合、MakeLeaps上の連絡先も更新されます。 

  • Salesforceの取引先の「MakeLeapsと同期」チェックボックスがチェックを外されたり、Salesforce上から取引先責任者が削除された場合、MakeLeapsの連絡先は下記の通り処理されます。 

    • 連絡先がMakeLeaps上の書類などで利⽤されていなかった場合、削除されます 

    • 連絡先がMakeLeaps上の書類などで利⽤されている場合、削除されずにデータが残ります

  • Salesforceで取引先責任者を統合すると、MakeLeapsの連絡先も統合されます。関連するデータは統合先の連 絡先へ引き継がれます。

  • Salesforceである取引先責任者の取引先が別の取引先へ関連づけが変更された場合、MakeLeapsでは、変更先 の取引先に対して新たに連絡先が作られます。関連オブジェクトは新しい連絡先へ引き継がれます。古い連絡先は、書類などで利⽤されていない場合は削除されます 

リード(Lead) 

Salesforceのリードは、MakeLeapsの取引先および連絡先として同期されます。

  • Salesforceのリードのうち、「MakeLeapsと同期」チェックボックスがチェック済みのものに対して、 MakeLeapsの取引先が作られます。クライアント数の上限を超えている場合は、取引先は作られません。

  • 「MakeLeapsと同期」チェックボックスがチェック済みのリードがSalesforce上で更新された場合、 MakeLeaps上の取引先も更新されます。

  • 「MakeLeapsと同期」チェックボックスがチェックを外されたり、Salesforce上からリードが削除された場合、 MakeLeapsの取引先は下記の通り処理されます。 

    • 取引先がMakeLeaps上の書類などで利⽤されていなかった場合、「削除」されます。 

    • 取引先がMakeLeaps上の書類などで利⽤されている場合、「アーカイブ」されます。

  • Salesforceでリードを変換すると、MakeLeaps上では取引先および連絡先が統合され、関連するデータは統合 先の取引先および連絡先へ引き継がれます。

商談(Opportunity) 

MakeLeaps上のオブジェクトに、Salesforceの商談に対応する物はありません。商談の詳細画⾯からMakeLeapsの書類を作成した場合、その商談はMakeLeaps上の書類に関連づけられます。 

  • Salesforceのある商談の取引先が「MakeLeapsと同期」にチェックされている場合、商談情報はMakeLeapsにインポートされます。この情報は、商談の詳細画⾯の書類リストから書類を作成する際、書類作成フォームの初期値を設定するためにのみ使われます。対応オブジェクトが無いため、この情報はMakeLeaps上で確認することはできません。 

  • MakeLeaps上の商談情報は、商談詳細画⾯で書類⼀覧が表⽰された際、もしくはそこから書類作成画⾯を開いた際に更新されます。 

  • 商談がSalesforce上で削除された場合、MakeLeapsに商談データは残ったままになります

ユーザ 

Salesforce上の全ての標準ユーザがMakeLeapsへ同期されます。

現在はML4SFへのアクセス権限が割り当てられていないユーザも同期されていますが、将来変更される可能性があります。 

Salesforce上でユーザが無効化、もしくは削除された場合、MakeLeapsのユーザは無効化されます。

8. Salesforceのトリガー

ML4SFは後述の対象オブジェクトの更新トリガーを利⽤して「バックグラウンド同期」を呼び出します。

トリガーが 直接MakeLeapsへデータを送るのでは無く、トリガーがコールアウトを利⽤してMakeLeapsに同期リクエストを⾏います。

同期リクエストを受けると、MakeLeapsはSalesforceのREST APIを通じて必要なデータを取得し、 MakeLeaps内に保存します。 

⼤まかなフローは、次のようになります:

Salesforce トリガー -- HTTP コールアウト --> MakeLeaps -- HTTP --> Salesforce REST API 

トリガーの対象となるのは下記のオブジェクトです:

  • 取引先 

  • 取引先責任者 

  • リード 

  • ユーザ 

9. 編集に関する制約

通常、ML4SFは取引先と連絡先を⾃動的に管理します。

そのため、取引先、連絡先をMakeLeaps上で編集することはできません。

これはUI、API、CSV/Excelインポート全てにおいて同様です。MakeLeaps内の取引先、連絡先を更新する際は、Salesforce上で更新することで、変更は⾃動的にMakeLeapsへ同期されます。

10. MakeLeapsの書類データをSalesforceへ連携する

※ 書類データのSalesforceへの連携はバージョン1.45より追加されました。

 

ML4SFには、MakeLeapsで作成した書類データを同期するカスタムオブジェクトが含まれています。書類データの同期機能を有効にすることで、MakeLeapsで作成した書類データをSalesforceのレポートなどでご利⽤いただけます。 

これらのカスタムオブジェクトのデータをSalesforce側で変更しても、MakeLeapsの書類データには反映されません。

関連記事

11. SSOモード

標準オブジェクトである取引先、取引先責任者を利⽤していないSalesforce組織等では、上記の同期が動作しません。

その場合、ML4SFの標準のデータ同期を停⽌し、MakeLeapsのAPIを利⽤してMakeLeaps上の取引先、連絡先 の更新を実装することも可能です。「SSOモード」と呼びます。

SSOモードのご利⽤をご希望の場合、MakeLeapsのサポートへその旨をご連絡ください。

SSOモードは、通常のML4SFのデータ同期と併⽤することはできません。 

SSOモードとデフォルトの違い 

  • 取引先、取引先責任者、リード、ユーザの各オブジェクトは、⾃動的にデータ同期されません。

  • MakeLeapsの取引先、連絡先データは、API経由で作成・編集・削除等の操作ができます。

  • 各オブジェクトの詳細ページの書類リストは動作しません。

回答が見つかりましたか?