サービスプロセス定義を作成して有効にする
学習の目的
この単元を完了すると、次のことができるようになります。
- Service Process Studio の基本を説明する。
- Service Process Studio を実行するための権限セットを割り当てる。
- オブジェクト権限を割り当てる。
- サービスプロセス定義を作成する。
- 要求フォームをアクションランチャーのリリースに関連付ける。
サービスプロセス定義を使い始める
Cumulus では、お客様から小切手帳の発行依頼が多数届いています。最初に、お客様の注文を確認して、顧客情報を収集します。問題がなければ、履行に進みます。このプロセス全体が複雑で厄介です。時間もかかります。
このため、銀行はカスタマーエクスペリエンスを懸念しています。この問題解決に取り組むチームの一員である Matt は、Service Process Studio を使用して、小切手帳注文要求を処理するサービス担当者をサポートするサービスプロセスを作成することにしました。
Matt はまず Service Process Studio について調べます。この画面は、サービスプロセス定義の例を示しています。
では、番号を示す部分を見ていきましょう。
番号 |
説明 |
---|---|
1 |
設定するサービスプロセス定義の名前。 |
2 |
サービスプロセス定義の複数のセクション。各セクションを展開して、詳細を指定します。 |
3 |
サービスプロセス定義の詳細を指定して保存したら、定義の概要を表示して確認できます。 |
4 |
サービスプロセス定義を有効にして、アクションランチャーでリリースできるようにします。 |
サービスプロセス定義を作成する
Matt は Service Process Studio でサービスプロセス定義を作成し、サービス担当者がプロセスを起動して、お客様の小切手帳注文要求を履行できるようにします。次に、定義とそれに関連付けられているプロセス属性を使用して、Connect API を呼び出す Apex クラスを作成します。
データ属性を作成する
まず、サービスプロセス用のデータ属性を作成します。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスに
Service Process Studio
と入力し、[Service Process Studio] を選択します。
-
[New Service Process (新規サービスプロセス)] をクリックします。
-
[Create New (新規作成)] をクリックします。
- [Process Name (プロセス名)] と [API Name (API 参照名)] に入力して、[Save & Launch (保存 & 起動)] をクリックします。
-
[Details (詳細)] をクリックします。[Process Name (プロセス名)]、[API Name (API 参照名)]、[Short Description (簡単な説明)] に値が自動的に入力されます。この例の [Process Name (プロセス名)] は
Cheque Book Order
(小切手帳注文) です。
-
[Next (次へ)] をクリックします。[Data Attributes (データ属性)] ページが表示されます。このページで要求属性を定義すると、適切なセクションに分類されます。ケースの作成時、この各セクションに動的ケース情報ウィジェットの要求のデータが表示されます。
- デフォルトでは、タイトル未定のセクションが表示されます。[Untitled Section (タイトル未定のセクション)] の名前を
Cheque Book Details
(小切手帳の詳細) に変更するために、[Edit (編集)] をクリックし、セクション名を入力して Enter キーを押します。
- 上記のステップを繰り返して、[Financial Account (金融口座)] セクションと [Tracking Details (追跡の詳細)] セクションを追加します。
- [Cheque Book Details (小切手帳の詳細)] セクションにデータ属性を追加するには、[New Data Attribute (新規データ属性)] をクリックし、必須項目に入力します。
- [Financial Account (金融口座)]、[Tracking Details (追跡の詳細)]、[No. of Booklets (冊数)]、[Shipping Method (配送方法)]、[Shipping Address (住所(納入先))] 属性を追加するには、上記のステップを繰り返します。
Apex クラスを作成し、Connect API を呼び出してケース/サービス要求を作成する
-
をクリックして、[Developer Console (開発者コンソール)] をクリックします。
- Apex クラスを作成します。この例の Apex クラスは
ChequeBookOrderHelper
です。Apex クラスの作成については、「リソース」セクションを参照してください。
- 次のコードをコピーして貼り付けます。
global with sharing class ChequeBookOrderHelper implements System.Callable { public Object call(String action, Map<String, Object> args) { Map<String, Object> inputMap = (Map<String, Object>)args.get('input'); Map<String, Object> outputMap = (Map<String, Object>)args.get('output'); Map<String, Object> options = (Map<String, Object>)args.get('options'); if(action == 'callCreateCaseApi') { // retrieve the attributes from the request payload String chequeBookType = (String) inputMap.get('ChequeBookType'); String shippingMethod = (String) inputMap.get('ShippingMethod'); String shippingAddress = (String)inputMap.get('ShippingAddress'); String checkingAccount = (String)inputMap.get('Account'); String svcCatalogItemDefApiName = (String)inputMap.get('SvcCatalogItemDefApiName'); String noOfBooklets = String.valueOf(inputMap.get('NoOfBooklets')); // Set the input rep ConnectApi.ServiceProcessRequestInputRepresentation input = new ConnectApi.ServiceProcessRequestInputRepresentation(); input.svcCatalogItemDefApiName = svcCatalogItemDefApiName; input.caseInfo = new Map<String, ConnectApi.GenericObject>(); input.attributes = new Map<String, ConnectApi.GenericObject>(); // set attributes ConnectApi.GenericObject chequeBookTypeObj = new ConnectApi.GenericObject(); chequeBookTypeObj.value = chequeBookType; input.attributes.put('Type_of_Cheque_Book', chequeBookTypeObj); ConnectApi.GenericObject noOfBookletsObj = new ConnectApi.GenericObject(); noOfBookletsObj.value = noOfBooklets; input.attributes.put('No_of_Booklets', noOfBookletsObj); ConnectApi.GenericObject shippingMethodObj = new ConnectApi.GenericObject(); shippingMethodObj.value = shippingMethod; input.attributes.put('Shipping_method', shippingMethodObj); ConnectApi.GenericObject shippingAddressObj = new ConnectApi.GenericObject(); shippingAddressObj.value = shippingAddress; input.attributes.put('Shipping_Address', shippingAddressObj); ConnectApi.GenericObject checkingAccountObj = new ConnectApi.GenericObject(); checkingAccountObj.value = checkingAccount; input.attributes.put('Checking_Account', checkingAccountObj); // Invoke API Map<String, String> responseMap = new Map<String, String>(); ConnectApi.ServiceProcessRepresentation output = ConnectApi.IServiceProcessConnectFamily.createCaseServiceProcess(input); responseMap.put('caseId', output.caseId); responseMap.put('caseNumber', output.caseNumber); responseMap.put('svcCatalogRequestId', output.svcCatalogRequestId); outputMap.put('apiResponse', responseMap); return outputMap; } return null; } }
この Apex クラスは、ケースの作成に使用する Omniscript から呼び出されます。これで、要求の取得に使用する Omniscript からこの Apex クラスを呼び出すことができます。
Omniscript を使用して要求フォームを作成する
Matt は次に要求受入のエクスペリエンスを構築する Omniscript を作成できます。Omniscript 内から前の Apex をコールしてケースを作成できます。
- アプリケーションランチャー (
) で、[Omniscripts (Omniscript)] を見つけて選択します。
-
[New (新規)] をクリックします。
- [New Omniscript (新規 Omniscript)] ダイアログで、次の詳細を入力します。
- Name (名前):
Cheque Book Order
(小切手帳注文)
- Language (言語):
English
(英語)
- Type (種別):
CumulusBank
- SubType (サブ種別):
ChequeBookOrder
- [Description (説明)]:
This is the intake Omniscript for the Cheque Book Order Service Process Definition
(小切手帳注文サービスプロセス定義の受入 Omniscript です)
- Name (名前):
- 作業を保存します。
次に、新しい Omniscript を設定します。
- Omniscript のリストから、[Cheque Book Order (小切手帳注文)] Omniscript を選択します。
- [Properties (プロパティ)] セクションで、デフォルトのステップの名前を
Cheque Details
(小切手の詳細) に変更します。
- 必要な要素を [Cheque Details (小切手の詳細)] ステップにドラッグアンドドロップします。この例では、[Type of Cheque Book (小切手の種別)]、[No of Booklets (冊子数)]、[Shipping Method (配送方法)]、[Shipping Address (住所(納入先))] を追加します。
- 上記のステップを繰り返して、[Financial Account Info (金融口座情報)] をステップ 2 として追加します。
-
[Account (口座)] 要素を [Financial Account Info (金融口座情報)] ステップにドラッグします。
-
[Remote Action (リモートアクション)] 要素をドラッグして、[Properties (プロパティ)] セクションに基本的な詳細を入力します。この例では、[Name (名前)] が「CallCreateCaseAPI」、[Field Label (項目の表示ラベル)] が「Call Create Case API」(Create Case API をコール)、[Invoke Mode (呼び出しモード)] が [Default (デフォルト)] になっています。[Remote Action (リモートアクション)] 要素は、Connect API をコールして [Checkbook Order (小切手帳注文)] 定義のサービスプロセス要求を作成する Apex クラスを呼び出します。
- [Remote Action (リモートアクション)] ステップで、[Remote Properties (リモートプロパティ)] を展開し、次の値を指定します。
- Remote Class (リモートクラス):
ChequeBookOrderHelper
- Remote Method (リモートメソッド):
callCreatecaseApi
- Omniscript 経由で収集したデータを、サービスプロセス定義に設定した属性に対応付けます。[Remote Options (リモートオプション)] セクションで、[Add New Key/Value Pair (新しいキー/値ペアを追加)] を選択し、次の項目をキーと値として入力します。
- [Cheque Details (小切手の詳細)] と [Financial Account Info (金融口座情報)] に追加した要素。
-
SvcCatalogItemDefApiName
(作成したサービスプロセス定義の API 参照名)。Connect API は、この API 参照名を使用して定義の要求を作成します。
この例では、次のキー - 値ペアを使用します。キー
値
ChequeBookType
%ChequeBookType%
NoOfBooklets
%NoOfBooklets%
ShippingMethod
%ShippingMethod%
ShippingAddress
%ShippingAddress%
Account
%Account%
SvcCatalogItemDefApiName
Cheque_Book_Order
-
[Send Only Extra Payload (追加ペイロードのみ送信)] を選択します。
- ステップをキャンバスにドラッグして、
Confirmation
(確認) と名前を付けます。この例では、前のステップでコールした Apex クラスがケース番号を返します。[Confirmation (確認)] ページにこのケース番号が表示されます。
- [Confirmation (確認)] ステップにテキストブロックを追加して、次のテキストを設定します。
Your request is taken. Please save the reference number for future communication %apiResponse.caseNumber%
(お客様の要求を受け付けました。参照番号 %apiResponse.caseNumber% を保存して、お問い合わせの際にお知らせください。)
- Omniscript を表示するには、[Preview (プレビュー)] をクリックします。
- Omniscript を有効化します。
[Cheque Book Order (小切手帳注文)] サービスプロセスの要求受入フォームが有効になりました。次のステップは、この要求の履行に必要な自動化を定義することです。
フローオーケストレーションを作成する
Matt は、ケースの作成後にコールされ、要求の履行を開始して自動化するシンプルなレコードトリガーフローオーケストレーションを作成します。フローオーケストレーションの使用については、「リソース」セクションを参照してください。
最初にフローを作成し、フローオーケストレーションの対話型ステップとして関連付けます。
- アプリケーションランチャー (
) で、
Automation
(自動化) を見つけて選択します。
- [Flows (フロー)] リストで、[New (新規)] をクリックします。
- [Frequently Used (頻繁に使用)] セクションで、[Screen Flow (画面フロー)] を選択します。
- フローを設定します。ここでは詳しい手順を説明しませんが、フローの作成について学習するには、「Flow Builder を使用したフローの作成」トレイルを参照してください。
- フローを保存して有効化します。
次に、フローオーケストレーションを作成し、作成したフローを対話型ステップとして関連付けます。
- アプリケーションランチャー (
) で、
Automation
(自動化) を見つけて選択します。
- [Flows (フロー)] リストで、[New (新規)] をクリックします。
- [Search automations (自動化を検索)] ボックスで [Record-Triggered Orchestration (レコードトリガーオーケストレーション)] を検索して選択します。
- オーケストレーションフローを作成します。
- フローを保存して有効化します。
次に、フローオーケストレーションをサービスプロセス定義に関連付けます。
- [Cheque Book Order (小切手帳注文)] サービス定義に移動して、[Fulfillment Flow (履行フロー)] を選択します。
-
[Add Fulfillment Flow (履行フローを追加)] を選択します。
-
[Cheque Book Order Orchestration (小切手帳注文オーケストレーション)] を選択して、[Add (追加)] を選択します。
フローとフローオーケストレーションの作成についての詳細は、「リソース」セクションを参照してください。
アクションランチャーのリリースに要求フォームを関連付ける
ここで Matt は、有効なサービスプロセス定義に関連付けられた要求フォームを、アクションランチャーコンポーネントにリンクします。要求フォームをリンクすると、担当者がアクションランチャーコンポーネントを使用して、Omniscript を検索して起動できるようになります。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスに
Action Launcher
と入力し、[Action Launcher (アプリケーションランチャー)] を選択します。
-
[New Deployment (新規リリース)] をクリックします。
- [New Deployment (新規リリース)] ダイアログボックスで、[Next (次へ)] をクリックします。
- リリースの概要を入力し、[GUIDANCE TO SHOW (表示する指針)] セクションで [Omniscripts] を選択します。
-
[Next (次へ)] をクリックします。この例の画面では、[Label (表示ラベル)] が「Cheque Book Order」(小切手帳注文)、[API Name (API 参照名)] が [ChequeBookOrder] になっています。
- [Available Objects (利用可能なオブジェクト)] のリストから [Account (取引先)] を選択して、[Next (次へ)] をクリックします。
- リストから [Cheque Book Order (小切手帳注文)] Omniscript を選択して、[Next (次へ)] をクリックします。
- [Cheque Book Order (小切手帳注文)] Omniscript をアクションランチャーに追加して、アクションボタンとして表示するために、プラスアイコンをクリックします。
- 作業を保存します。
権限セットを割り当てる
Matt はここで、Service Process Studio で構築されたサービスプロセスを実行するためのアクセス権をサービス担当者に付与することにします。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに
Users
(ユーザー) と入力し、[Users (ユーザー)] を選択します。
- ユーザーの名前をクリックします。
- [Permission Set Assignments (権限セットの割り当て)] で [Edit Assignments (割り当ての編集)] をクリックします。
- [Industry Service Excellence] 権限セットを追加します。
- 変更内容を保存します。
オブジェクト権限を割り当てる
Matt は、サービスカタログ要求オブジェクトとサービスカタログ要求拡張属性値オブジェクトに対する権限を割り当てて、サービス担当者が小切手帳注文サービスプロセスを実行できるようにします。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスに
Profiles
(プロファイル) と入力し、[Profiles (プロファイル)] を選択します。
- 編集するプロファイルを選択します。
-
[Edit (編集)] を選択します。
- [Standard Object Permissions (標準オブジェクト権限)] で、これらのオブジェクトを見つけて権限を割り当てます。
- サービスカタログ要求 —「参照」「作成」「編集」「削除」
- サービスカタログ要求拡張属性値 —「参照」「作成」「編集」「削除」
- 変更内容を保存します。
上記の権限を有効にすると、サービス担当者に [Checkbook Order (小切手帳注文)] サービスプロセスの実行に必要なアクセス権が付与されます。
ケースレコードページにケースの詳細コンポーネントを追加する
最後のステップでは、詳細を表示するコンポーネントをケースページに追加します。
- ケースレコードページに移動して、[Edit (編集)] をクリックします。
- [Case Details (ケースの詳細)] コンポーネントをページにドラッグします。
-
[Save (保存)] をクリックします。
サービス担当者向けの新しいプロセスの準備が整いました。次の単元では、Matt の努力がどのように実を結び、お客様とサービス担当者の両方に喜ばれるかを見ていきます。
リソース
- Salesforce ヘルプ: Service Process Studio
- Salesforce ヘルプ: Service Process Studio の基本
- Salesforce Help: フローを使用した ToDo の自動化
- Salesforce ヘルプ: フローの作成
- Salesforce ヘルプ: オーケストレーションを使用した複雑なプロセスの自動化
- Salesforce ヘルプ: オーケストレーションの作成
- Salesforce ヘルプ: サービスプロセス定義の作成と有効化
- Salesforce ヘルプ: アクションランチャーのリリースの作成
- Salesforce ヘルプ: ページへのアクションランチャーコンポーネントの追加