シンプルな OmniScript を作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- OmniScript の一意性について説明する。
- OmniScript に Step と Inputs を追加する。
- 要素プロパティを設定する。
- OmniScript のデータの入出力の流れについて説明する。
- OmniScript Action 要素を設定する。
OmniScript の一意性について
OmniScript の一意性は、Type (種別)、Subtype (サブタイプ)、Language (言語) で確定します。同じ種別、サブタイプ、言語を使用する OmniScript を複数有効にすることはできません。必須事項ではありませんが、OmniScript の種別は小文字で始めることをお勧めします。
この例では、OmniScript の [Type (種別)] は team (1)、[SubType (サブタイプ)] は editAccount (2)、[Language (言語)] は English (3) になっています。OmniScript の名前は組織内で一意である必要はありません。この例では、OmniScript の [Name (名前)] は Edit Account (4) になっています。
OmniScript のバージョンは一度に 1 つのみ有効にできます。有効な OmniScript に変更を加える必要がある場合は、新しいバージョンを作成します。本番ですでに有効になっている OmniScript のバージョンは有効なままで、新しいバージョンで作業を行うことができます。
この例では Team Edit Account OmniScript のバージョン 2 が有効になっています。この情報は OmniScript ヘッダーに表示されます。
OmniScript に Step と Inputs を追加する
Step はページを構成する方法です。OmniScript を作成したら、Step を設定します。
Step と Inputs を OmniScript に追加するにはどうしたらよいのでしょうか? まず、前の単元の Edit Account OmniScript を見てみましょう。
これはシンプルな 1 ステップの OmniScript です。OmniScript を作成するとき、最初に 1 つの Step 要素とその入力項目を設定し、次に Actions 要素を追加します。
- [Build (作成)] パネルから、キャンバスに Step 要素をドラッグします。
- Step に Text (1)、Phone (2)、URL (3) という Inputs 要素をドラッグし、エンドユーザーに表示され、データを編集できる項目を作成します。
- URL 要素を選択し、[Properties (プロパティ)] タブの [Name (名前)] と [Field Label (項目表示ラベル)] に Website (Web サイト) と入力します。
これで OmniScript に Step と Inputs が追加されました。次にプロパティの設定に進むことができます。
要素プロパティを設定する
多くの要素では同じ種別のプロパティが使用されています。たとえば、各要素には名前が必要です。
要素名は OmniScript 内で一意にする必要があります。その他に次のようなガイドラインがあります。
- 要素名にはパスカルケースを使用し、空白を入れません (StepAccount など)。
- 明確にするためにオブジェクト名と項目名を使用します (AccoutName など)。
- ID を表すオブジェクトを指定します (AccountId など)。
Display または Inputs 要素の場合、要素の表示ラベルはエンドユーザーの画面に表示されます。Actions 要素の場合、要素の表示ラベルは [Action Debugger (アクションデバッガー)] に表示されます。表示ラベルは一意にする必要はありません。
では Edit Account OmniScript でこれらの機能を設定するために使用された要素プロパティを見てみましょう。
- [Name (名前)] 項目 (1) はユーザーが Salesforce の取引先レコード以外で取引先名を変更できないように参照のみ項目になっています。
- [Phone (電話)] 項目 (2) は必須項目で、赤のアスタリスクでマークされています。
- [Name (名前)]、[Phone (電話)]、[Website (Web サイト)] の各項目は行幅いっぱいには表示されません。
以上の動作を設定するにはどうすればよいのでしょうか?
プロパティ |
有効化方法 |
動作 |
---|---|---|
Read Only (参照のみ) |
チェックボックスを選択する。 |
ユーザーが項目を変更できないようにします。 |
Required? (必須?) |
チェックボックスを選択する。 |
エンドユーザーがこの項目にデータを入力しなければ先に進めないようにします。 |
Width Settings (幅設定) |
キャンバスで、反応型コントロール幅グリッドをドラッグする。 |
HTML Web 標準 (ダイナミックコントロール) を使用して項目のサイズを調整します。 |
Inputs 要素の設定を終えたら、Actions 要素の追加に進むことができますが、その前に OmniScript にデータがどのように入出力されるかを説明します。
OmniScript のデータの入出力の流れ
OmniScript へのデータ入力には複数のオプションがあります。ベストプラクティスは Integration Procedure を使用することです。その理由は「OmniStudio Integration Procedure」モジュールで詳しく説明していますが、Integration Procedure を使用すると、データ設定を OmniScript 設定から切り離すことができます。
その他のデータ入力オプションを使用するシナリオは次のとおりです。
データ入力ソースの種類 |
使用する OmniScript 要素 |
---|---|
Salesforce 組織 — 1 つの項目のみ |
参照。Inputs セクションにあり、Omnistudio Data Mapper 抽出サービスを使用 |
Salesforce 組織 — 1 つのオブジェクトのみからの項目 |
Omnistudio Data Mapper Turbo Action |
Salesforce 組織 — 1 つ以上の関連オブジェクトからの項目 |
Omnistudio Data Mapper Extract Action |
API |
HTTP Action |
Apex がアクセスできるデータ |
Remote Action |
ユーザー |
任意の Inputs 要素。Inputs セクションにあり、ユーザーによるデータ入力可 |
では Integration Procedure を使用して Salesforce から OmniScript にデータを移動するにはどうしたらよいのでしょうか? OmniScript が FlexCard のアクションから起動されると、ノードの JSON と共に RecordId (この例では「AccountId」) が渡されます。RecordId は、OmniScript の ContextId という変数に保存されます。
変数が OmniScript に保存されたら、AccountId という変数を介して、使用するデータツールに RecordId を渡します。ベストプラクティスに従い、Integration Procedure を選択して AccountId を Omnistudio Data Mapper Extract に渡します。「AccountId」は任意の名前ですが、要素と Salesforce の間で適切にデータが流れるようにするには、各要素で同じ名前を使用する必要があります。
Omnistudio Data Mapper Extract は Salesforce Object Query Language (SOQL) クエリで AccountId を使用して Salesforce からデータを取得します。これには、AccountId と取引先レコードのデータが含まれます。Omnistudio Data Mapper Extract はこのデータをデータ JSON に対応付けます。このデータ JSON が Integration Procedure に送信され、さらに OmniScript に送信されます。OmniScript はパーサーを使用して、要素名に基づいて Integration Procedure から取得した JSON と OmniScript の入力項目を照合します。JSON が要素名と一致しない場合、項目には空白が表示されます。
データフローは次のようになります。
OmniScript の実行中にユーザーと他の OmniScript アクションによってデータが操作されます。
AccountId を含む更新されたデータ JSON が Integration Procedure に渡され、Integration Procedure から Omnistudio Data Mapper Load に AccountId を含む JSON が渡されます。Omnistudio Data Mapper Load は AccountId を使用して元の取引先レコードを識別し、Salesforce 内のデータを更新します。
ユーザーが行うのは、FlexCard から OmniScript へ、OmniScript から Salesforce へとデータが適切に流れるように Action 要素を設定することです。
OmniScript Action 要素を設定する
OmniScript Action 要素を設定するために、キャンバスに戻ります。しくみを理解するために、2 つの Integration Procedure Action が設定されている例を見てみましょう。
- [Build (作成)] パネルからキャンバスに Integration Procedure Action (1) をドラッグします。この Integration Procedure Action で、データを取得する Integration Procedure がコールされます。Step 要素の上に Integration Procedure Action (2) を配置します。
- データを保存する Integration Procedure をコールするために、[Build (作成)] パネルからキャンバスに Integration Procedure Action (3) をドラッグします。これを Step 要素の下に配置します。
Step の外部に配置すると、Action は表示されている順番で自動的に実行されます。Step の内部に配置すると、Action はボタンとして表示され、実行するにはクリックする必要があります。
Action には独自の命名規則があります。要素種別のプレフィックス (Omnistudio Data Mapper の DR、Integration Procedure の IP など) を使用します。そして VerbObjectDetail を使用します。Edit Account OmniScript の場合、IPGetAccountDetails が Step の上の Integration Procedure Action (2) の名前で、IPSaveAccountDetails が Step の下の Integration Procedure Action (3) の名前です。
各 Integration Procedure Action にはドロップダウンリストがあり、OmniScript からコールする Integration Procedure を選択できます。Integration Procedure を OmniScript にリンクすると、デフォルトで OmniScript から Integration Procedure に JSON 全体が送信されます。
Edit Account OmniScript のように JSON が小さければ、トリミングや再定義は必要ありません。ただし、ContextID がその JSON に含まれていることを確認する必要があります。たとえば、Edit Account OmniScript の場合、ContextId が AccountId であることを Integration Procedure に指定する必要があります。
「AccountId」は任意の名前ではないかと疑問に思っている方もいらっしゃるかもしれません。確かにそのとおりです。その場合でも、Integration Procedure にどのような RecordeId を送信するかを明示的に指定するというベストプラクティスに従うことが重要です。
エンドユーザーが OmniScript に入力すると、Navigate Action はエンドユーザーの移動先を OmniScript に指示します。エージェントがコンソールの FlexCard から OmniScript を開く場合、エージェントをコンソールに戻すように Navigate Action を設定できます。
Navigate Action を追加し、OmniScript をプレビューしたら、OmniScript を有効にしてください。これで完了です。エンドユーザーのプロセスをガイドする OmniScript の機能だけでなく、シンプルな 1 ステップ OmniScript 作成する方法も学習しました。
リソース