フローを設計する
学習の目的
この単元を完了すると、次のことができるようになります。
- フローの設計の準備をする。
- NetSuite の新規顧客を Salesforce の取引先と自動的に同期するフローを設計する。
フローの設計の準備をする
「MuleSoft Composer の基本」で説明したように、フローはシステムとデータを統合するために組み合わせて設定する一連のステップです。フローを設計する前に、フローで実行する必要があるタスクを、フローコンポーネント形式にした適切なステップにマップする必要があります。一連の流れを紙に描き出すと、どのようなフローになるか把握しやすくなります。
このフローの設計での最大の課題は、NetSuite の顧客エンティティにはシンプル項目とリスト項目の組み合わせ含まれているのに対し、Salesforce の取引先オブジェクトに含まれているのはシンプル項目だけであるということです。
具体的には、NetSuite の顧客エンティティには [addressBookList] 項目が含まれています。このリスト項目は、町名・番地、市区郡、都道府県、郵便番号、国などの項目で構成されています。これにより、各顧客に複数の住所を入力できます。これらの項目は顧客エンティティの UI の [Address (住所)] タブにすべてマップされています。
ただし、Salesforce の取引先オブジェクトでは、シンプル項目の 2 つの論理グループを使用して、各取引先の複数のアドレスが処理されます。請求先住所の場合、項目は町名・番地(請求先)、市区郡(請求先)、都道府県(請求先)、郵便番号(請求先)、国(請求先) となります。納入先住所の場合、項目は町名・番地(納入先)、市区郡(納入先)、都道府県(納入先)、郵便番号(納入先)、国(納入先) となります。
NetSuite のリスト項目を Salesforce のシンプル項目のグループにマップする課題に取り組むには、フローで For Each ブロックを使用して、NetSuite 顧客の各住所を反復処理します。次に、アクションステップを使用して Salesforce 取引先を作成し、顧客の住所の各項目を取引先の住所の対応する項目にマップします。
以下は、前の単元で説明した NTO のユースケースのマッピングの一例です。
タスク | フローコンポーネント |
---|---|
NetSuite で新規作成された顧客を見つける。 |
顧客の新規作成時に NetSuite から実行されるトリガー |
Sales Cloud に対応する取引先が存在するかどうかを判断する。 |
顧客の会社名と同じ名前の取引先をすべて取得するアクションステップ |
対応する取引先が存在しない場合 |
取引先のリストが空 (つまり Sales Cloud に取引先が存在しない) かどうかをチェックする If/Else ブロック |
顧客の住所を反復処理する。 |
If/Else ブロック内で、For Each ブロックを使用して顧客の [addressBookList] 項目を反復処理する。 |
住所がデフォルトの請求先住所であるかどうかを判断する。 |
For Each ブロック内で、2 つ目の If/Else ブロックを使用して住所がデフォルトの請求先住所であるかどうかをチェックし、次に以下のステップを実行する。
|
住所がデフォルトの納入先住所であるかどうかを判断する。 |
2 つ目の If/Else ブロック内に、住所がデフォルトの納入先住所であるかどうかをチェックする 2 つ目の If ブランチを追加し、次にアクションステップを使用して Sales Cloud の対応する取引先を納入先住所で更新する。 |
MuleSoft Composer ではデフォルトで作業が検証され、手順の各ステップにアプリケーション内コンテキストヘルプが表示されます。たとえば、システムに接続を追加すると、MuleSoft Composer で接続がテストされるため、正常に機能することを確認したうえで次のステップに進むことができます。また、各ステップ内の必須項目を入力するように MuleSoft Composer から求められます。これでフローのビルドが簡単になります。
フローの作成のベストプラクティスは、数ステップごとにテストを繰り返しながらフローを完成させることです。
次のデモ動画で、MuleSoft Composer を使用して NetSuite を Salesforce、Slack の順に接続する方法をご覧ください。
フローを設計する
NetSuite の新規顧客を Salesforce の取引先と同期するインテグレーションフローを設計する準備が整いました。
次の手順に従ってフローを設計します。
NTO 組織から MuleSoft Composer を起動します。
- ユーザー名とパスワードを使用して NTO 組織にログインします。
- アプリケーションランチャーに
Composer
と入力して [MuleSoft Composer] を選択します。
新しいフローを作成します。
- [Create New Flow (新規フローの作成)] をクリックします。
- デフォルトのフロー名の横にある鉛筆アイコンをクリックします。
- フローに
Sync New NetSuite Customers to Salesforce Accounts
(NetSuite の新規顧客を Salesforce の取引先に同期) と名前を付け、[Save (保存)] をクリックします。
NetSuite 接続を使用してフローのトリガーを作成します。
- [NetSuite] をクリックします。
-
[Add new NetSuite connection (新規 NetSuite 接続を追加)] をクリックします。
メモ: これが初めての NetSuite 接続である場合、このオプションは表示されません。次のステップに進みます。 - NetSuite 接続パラメーターの値を含むテキストファイルを使用して、
NTO NetSuite
を接続表示名として必要な値を入力し、[Create (作成)] をクリックします。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されていない場合は接続が確立され、フローの最初のステップ (トリガー) が表示されます。
NetSuite で顧客が新規作成されるたびにフローを開始するトリガーを設定します。
- [Choose an event that starts this flow (このフローを開始するイベントを選択)] 項目をクリックして、[New Record (レコードの新規作成)] を選択します。
- [Type of Record (レコードタイプ)] 項目に、
CUSTOMER
(顧客) と入力します。 - [Save (保存)] をクリックしてフローを保存します。
フローに、トリガーとなる顧客と一致する Salesforce の全取引先を取得する 2 つ目のステップを作成します。
- プラスアイコンをクリックしてステップを追加します。
- [Salesforce] をクリックします。
-
[Add new Salesforce connection (新しい Salesforce 接続を追加)] をクリックし、NTO Sandbox 組織への接続を作成します。
メモ: 初めての Salesforce 接続の場合、このオプションは表示されません。次のステップに進みます。 - この接続に
NTO sandbox org
(NTO Sandbox 組織) と名前を付けます。 -
[This is a sandbox organization (これは Sandbox 組織です)] チェックボックスをオンにして、[Create (作成)] をクリックします。
メモ: 開発者組織を使用する場合は、このチェックボックスの選択をスキップして [Create (作成)] をクリックします。 - NTO Sandbox 組織のユーザー名とパスワードを入力して、[Log In to Sandbox (Sandbox にログイン)] をクリックします。
- [Allow (許可)] をクリックして、MuleSoft Composer に「ID URL サービスにアクセス」、「API を使用してユーザーデータを管理」、「いつでも要求を実行」権限を付与します。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されていない場合は接続が確立され、フローの 2 番目のステップが表示されます。
顧客と一致する全取引先を取得する 2 つ目のステップを設定します。
- [Action (アクション)] 項目をクリックして、[Get records (レコードを取得)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Account
(取引先) と入力します。 - [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
- 項目として [Account Name (取引先名)]、演算子として [Equals (次の文字列と一致する)]、フローのステップ 1 の [Company Name (会社名)] を選択します。
顧客に対応する取引先があるかどうかを判断する If/Else ブロックを作成して設定します。
- プラスアイコンをクリックしてステップを追加します。
- スクロールダウンして [If/Else Block (If/Else ブロック)] をクリックします。デフォルトで [All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] が選択されています。
- 項目にフローのステップ 2 の [List of Account (取引先のリスト)]、演算子に [Is empty (空)] を選択します。この条件を満たした場合は、Sales Cloud にこの顧客に対応する取引先がないことになります。
顧客の各住所を反復処理する For Each ブロックを作成して設定します。
- プラスアイコンをクリックして [For Each] を選択します。
- [Input list (入力リスト)] 項目で、フローのステップ 1 の [Record (レコード)] > [Addressbook List (アドレスブックリスト)] > [Addressbook (アドレスブック)] を選択します。
顧客の住所がデフォルトの請求先住所であるかどうかをチェックする 2 つ目の If/Else ブロックを For Each ブロック内に作成して設定します。
- For Each ブロック内のプラスアイコンをクリックしてステップを追加します。
- スクロールダウンして [If/Else Block (If/Else ブロック)] をクリックします。デフォルトで [All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] が選択されています。
-
default
(デフォルト) と入力し、項目にフローのステップ 1 の [Record (レコード)] > [Addressbook List (アドレスブックリスト)] > [Addressbook (アドレスブック)] > [Default Billing (デフォルトの請求先)]、演算子に [Is true (true)] を選択します。この条件を満たしている場合、住所がデフォルトの請求先住所であることになります。その場合、2 つ目の If/Else ブロックの後続の 2 つのステップ (Salesforce での取引先の作成、NetSuite での顧客の更新) が実行されます。
Sales Cloud で取引先を新規作成するフローの 3 つ目のステップを 2 つ目の If/Else ブロック内に作成します。
- プラスアイコンをクリックして 2 つ目の If/Else ブロック内にステップを追加します。
- [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。
Sales Cloud で顧客の請求先住所と内部 ID が設定された取引先を新規作成する 3 つ目のステップを設定します。
- [Action (アクション)] 項目をクリックして、[Create new record (新しいレコードの作成)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Account
(取引先) と入力します。[Account Name (取引先名)] は必須項目であるため自動的に選択されます。 - [Select Optional Fields (省略可能な項目を選択)] をクリックします。
- 検索ツールを使用して、[Account Phone (取引先 電話)]、[Billing Street (町名・番地(請求先))]、[Billing City (市区郡(請求先))]、[Billing State/Province (都道府県(請求先))]、[Billing Zip/Postal Code (郵便番号(請求先))]、[Billing Country (国(請求先))]、[Website (Web サイト)]、[NetSuite Customer ID (NetSuite 顧客 ID)] を選択します。
ヒント: 検索する項目のキーワードを入力し、表示された項目の中から適切なものを選択します。キーワードをクリアして、次の項目でこのプロセスを繰り返します。すべての項目を選択したら、[Apply (適用)] をクリックします。 - [Apply (適用)] をクリックします。
- Sales Cloud の取引先の項目を、フローのステップ 1 で取得したNetSuite の対応する顧客の項目に次のようにマップします。
- Account Name (取引先名) = Record (レコード) > Company Name (会社名)
- Account Phone (取引先 電話) = Record (レコード) > Phone (電話)
- Billing Street (町名・番地(請求先)) = Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > Addr1 (住所 1)
- Billing City (市区郡(請求先)) = Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > City (市区郡)
- Billing State/Province (都道府県(請求先)) = Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > State (都道府県)
- Billing Country (国(請求先)) = Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > Country (国)
- Website (Web サイト) = Record (レコード) > URL
- NetSuite Customer ID (NetSuite 顧客 ID) = Record (レコード) > InternalID (内部 ID)
関連付けられた取引先 ID を使用して顧客を更新するフローの 4 つ目のステップを 2 つ目の If/Else ブロック内に作成します。
- プラスアイコンをクリックして 2 つ目の If/Else ブロックにステップを追加します。
- [NetSuite] をクリックして、[NTO NetSuite] をクリックします。
関連付けられた取引先 ID を使用して顧客を更新する 4 つ目のステップを設定します。
- [Action (アクション)] 項目をクリックして、[Update Record (レコードを更新)] を選択します。
- [Type of Record (レコードタイプ)] 項目に、
CUSTOMER
(顧客) と入力します。 - [ID Type (ID 種別)] 項目で、[INTERNAL (内部)] を選択します。[Record Id (レコード ID)] は必須項目のため、自動的に選択されます。
- [Select Optional Fields (省略可能な項目を選択)] をクリックします。
- 検索項目に
salesforce
と入力し、[Salesforce Account ID (Salesforce 取引先 ID)] を選択して [Apply (適用)] をクリックします。 - NetSuite の顧客の項目をフローの先行ステップに次のようにマップします。
- Record Id (レコード ID) = ステップ 1 の [Record (レコード)] > [InternalId]
- Salesforce Account ID (Salesforce 取引先 ID) = ステップ 3 の [Id (ID)]
顧客の住所がデフォルトの納入先住所であるかどうかをチェックする 2 つ目の If ブランチを 2 つ目の If/Else ブロック内に作成して設定します。
- スクロールダウンして、2 つ目の If/Else ブロック内で [Add If (If を追加)] をクリックします。デフォルトで [All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] が選択されています。
-
default
(デフォルト) と入力し、項目にフローのステップ 1 の [Record (レコード)] > [Addressbook List (アドレスブックリスト)] > [Addressbook (アドレスブック)] > [Default Shipping (デフォルトの納入先)]、演算子に [Is true (true)] を選択します。この条件を満たしている場合、住所がデフォルトの納入先住所であることになります。その場合は、2 つ目の If/Else ブロックの 2 つ目の If ブランチの後続のステップ (Salesforce での取引先の更新) が実行されます。
Sales Cloud の対応する取引先を更新するフローの 5 つ目のステップを 2 つ目の If/Else ブロックの 2 つ目の If ブランチ内に作成します。
- プラスアイコンをクリックして 2 つ目の If/Else ブロックの 2 つ目の If ブランチにステップを追加します。
- [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。
Sales Cloud の対応する取引先を顧客の納入先住所で更新する 5 つ目のステップを設定します。
- [Action (アクション)] 項目をクリックして、[Update record (レコードを更新)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Account
(取引先) と入力します。[Account ID (取引先 ID)] は必須項目であるため自動的に選択されます。 - [Select Optional Fields (省略可能な項目を選択)] をクリックします。
- 検索ツールに
shipping
と入力し、[Shipping Street (町名・番地(納入先))]、[Shipping City (市区郡(納入先))]、[Shipping State/Province (都道府県(納入先))]、[Shipping Zip/Postal Code (郵便番号 (納入先))]、[Shipping Country (国(納入先))] を選択します。 - [Apply (適用)] をクリックします。
- Sales Cloud の取引先の項目をフローの先行ステップに次のようにマップします。
- Account ID (取引先 ID) = ステップ 3 の ID
- Shipping Street (町名・番地(納入先)) = ステップ 1 の Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > Addr1 (住所 1)
- Shipping City (市区郡(納入先)) = ステップ 1 の Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > City (市区郡)
- Shipping State/Province (都道府県(納入先)) = ステップ 1 の Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > State (都道府県)
- Shipping Country (国(納入先)) = ステップ 1 の Record (レコード) > Addressbook List (アドレスブックリスト) > Addressbook (アドレスブック) > Addressbook Address (アドレスブックの住所) > Country (国)
- フローを保存します。フロー全体は次のようになります。
お疲れさまでした。次の単元では、フローをテストして正常に機能することを確認する方法を学習します。