サービス・センターのスクリーン・ポップ・ルールの構成
次に、スクリーン・ポップがサービス・センター・コンソール・モードで機能するように構成します。
アプリケーションには、すぐに使用できるスクリーン・ポップ・ルールが用意されています。 ビジネス要件に基づいてスクリーン・ポップ・ルールを構成することを選択できます。
Service Centerアプリケーションのすぐに使用できるスクリーン・ポップ構成ルールの概要
このフレームワークでは、Service Centerアプリケーションに次のすぐに使用できるスクリーン・ポップ構成ルールが提供されます:
- IVRデータまたはチャット・ペイロードが着信コールまたはチャットのサービス・リクエスト番号などのSR詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「SR詳細」タブにポップします。
コミュニケーション・パネルがSRの側面に表示され、簡単にやり取りできます。
- IVRデータまたはチャット・ペイロードが、着信コールまたはチャットの担当者名やEメールなど、既知の担当者の担当者詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「担当者詳細」タブにポップします。
- IVRデータまたはチャット・ペイロードが着信コールまたはチャットの不明な担当者の担当者詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「担当者の作成」フォームにポップします。
Service Centerアプリケーションのスクリーン・ポップ・ルールの構成
サービス・センター・コンソールのスクリーン・ポップ構成を構成するには、顧客がサブスクライブできる外部イベントcxSvcNavigation
が公開され、顧客はビジネス・ロジックを追加してスクリーン・ポップ・ルールを実行できます。
イベントはアプリケーション・レベルで定義され、MSIモードでサービス・センターで発生するすべてのナビゲーションで起動されます。 イベントは次のペイロードで起動され、顧客がディシジョンするのに役立ちます:
{
"extraAttributes": {
"svcNavigateEvent": {
"application": "",
"flow": "",
"tabInfo": ""
},
},
"navigationType": "SCREENPOP|DRILLDOWN",
"engagmentData": {
"inData": "object",
"SVCMCA_INTERACTION_ID": "string",
"engagementType": "PHONE|CHAT",
"engagementId": "string",
"multiMatches": boolean
}
}
svcNavigateEvent
は元のイベントですnavigationType
は、SCREENPOP
またはDRILLDOWN
のいずれかです。 チャットまたはコールの開始時のナビゲーションは、SCREENPOP
になります。 他のすべての種類のナビゲーションについては、DRILLDOWN
になります。engagmentData
: チャットまたは通話のIVRまたはエンゲージメント・データは、顧客がビジネス・ロジックを追加できるデータに基づいています。Return Type
は、次の戻り型を持つアクション・チェーンを参照します。 これにより、デフォルトのアクションも実行、スキップまたは停止する必要があるかどうかが決まります。 Trueに設定すると、アクションはデフォルトの動作を実行しません。
スクリーン・ポップの前提条件およびプロジェクトの設定
- VB StudioにアクセスできるエージェントとしてService Centerにサインインします。
- 「設定およびアクション」メニューから、「Visual Builderのページの編集」を選択します。
- 既存のプロジェクトを選択するか、新しいプロジェクトを作成します。
エージェント・コンソールでスクリーン・ポップを有効または無効にするには、サービス・アプリケーションを変更します。
- プロジェクトが開いたら、「アプリケーションUI」メニューから「Oracle CX Service UI拡張アプリケーション」>「サービス」を選択します。
- メイン・ワークスペースで、「変数」タブをクリックします。
- 「定数」リストから、enableScreenPopsを選択します。
「プロパティ」ペインで、Trueを選択してスクリーン・ポップを有効にし、Falseを選択して機能を無効にし、ビューアを「担当者」ページに移動します。
独自のスクリーン・ポップアップ・ルールの作成
- スクリーン・ポップ・ルールを追加するには、VB Studioの
cxSvcNavigation
オブジェクトにイベント・リスナーを追加する必要があります。 - 「イベント・リスナー」タブを選択します。
- 「+イベント・リスナー」ボタンをクリックします。
- リストから
cxSvcNavigation
を選択し、「次」をクリックします。 - 「+イベント・リスナー」ボタンをクリックします。
聞くことができるすべてのイベントが一覧表示されます。
聞くことができるすべてのイベントがリストされ、cxSvcNavigation
を検索して選択し、「次」をクリックします。 cxSvcNavigation
を選択し、「次」をクリックします。イベントにアクション・チェーンを追加します。 既存のものを使用することも、新しいものを作成することもできます。ノート: 新規プロジェクトを作成する場合、既存のアクション・チェーンは存在しません。アクション・チェーンを作成したら、
cxSvcNavigation
イベントに追加します。- リストでアクション・チェーンを検索し、「アクション・チェーンへジャンプ」をクリックして開いて編集します。
エクスプローラにリストされているチェーンに追加できるアクションのリストに注意してください。
If
アクションをドラッグして、SCREENPOP
ナビゲーション・タイプに対してのみアクション・チェーンが実行されるようにします。アクション・チェーンにアクションが追加されると、ビジネス・ユース・ケースに合わせて条件を追加できます。 このシナリオでは、
event.navigationType === 'SCREENPOP'
のプロパティ・ペインから条件を追加します。If
アクション内では、ユースケースに合わせて別のIf
アクションをドラッグできます。 最初のケースでは、caseオブジェクトをレンダリング:if caseId is present in engagementData
.これで、ケース・オブジェクトをスクリーン・ポップするイベントをトリガーする準備ができました。そのために、
.次のステップでは、プロパティ・ペインから実行するFireEventAction
を内部If
アクション内にドロップして使用FireEvent
を定義します。 イベントに必要なプロパティは次のとおりです:-
- application =
service
(ルート・アプリケーション名)。 - containerPath =
ec
. - flow =
case
(開く必要があるオブジェクトまたはフロー)。 - tabInfo =
originalEvent
からコピーされ、tab-title
またはtab-icon
イベントが含まれます。extraAttributes.svcNavigateEvent.tabInfo
。 - key =
interactionId
は、engagementData event.engagementData.inData.SVCMCA_INTERACTION_ID
から取得できます。 - ページ・パラメータ: ケース・ページをレンダリングする必要があるページで必要なオブジェクトには、
caseNumber
が必要です。
- application =
-
- 様々なビジネス・ユース・ケースをサポートするために他のブロックを追加できますが、この例では、さらに
If
アクションを追加します。これにより、エンゲージメント・データworkOrder
ページにワーク・オーダーif
が存在するようにレンダリングされます。これにはWoNumber
が必要です。 - 結果のアクション・チェーンの例を次に示します:
define([ 'vb/action/actionChain', 'vb/action/actions', 'vb/action/actionUtils', ], ( ActionChain, Actions, ActionUtils ) => { 'use strict'; class cxSvcNavigationListener extends ActionChain { /** * @param {Object} context * @param {Object} params * @param {{application:string,navigationType:string,flow:string,page:string,pageParams:object,engagementData:object,extraAttributes:object,sourcePageInfo:object}} params.event * @return {{stopPropagation:boolean}} */ async run(context, { event }) { const { $application, $base, $extension, $constants, $variables, $modules } = context; if (event.navigationType === 'SCREENPOP') { if (event.engagementData.inData.caseId) { await Actions.fireEvent(context, { event: 'oracle_cx_serviceUI/application:svcNavigate', payload: { application: 'service', flow: 'case', key: event.engagementData.inData.SVCMCA_INTERACTION_ID, page: 'edit', pageParams: { caseNumber: event.engagementData.inData.caseId }, tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo }, }); return {stopPropagation: true}; } else if (event.engagementData.inData.workOrderNumber) { await Actions.fireEvent(context, { event: 'oracle_cx_serviceUI/application:svcNavigate', payload: { application: 'service', flow: 'fieldsvc', key: event.engagementData.inData.SVCMCA_INTERACTION_ID, page: 'detail', pageParams: { WoNumber: event.engagementData.inData.workOrderNumber }, tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo }, }); return {stopPropagation: true}; } } } } return cxSvcNavigationListener; });
担当者複数一致シナリオの場合のスクリーン・ポップの追加
チャットまたは通話に対して複数の担当者が一致する場合は、担当者検索エンジンによって検索結果が提供され、engagementData.multiMatches
に渡されます。
engagementData.multiMatches
を使用してcxSVCNavigation
リスナーを変更し、目的のオブジェクトに移動できます。 担当者の作成をビューとしてsvc-contact
ページにリダイレクトできるステップを次に示します
アクション・チェーンの同じコードは次のとおりです:
define([
'vb/action/actionChain',
'vb/action/actions',
'vb/action/actionUtils',
], (
ActionChain,
Actions,
ActionUtils
) => {
'use strict';
class cxSvcNavigationListener extends ActionChain {
/**
* @param {Object} context
* @param {Object} params
* @param {{application:string,navigationType:string,flow:string,page:string,pageParams:object,engagementData:object,extraAttributes:object,sourcePageInfo:object}} params.event
* @return {{stopPropagation:boolean}}
*/
async run(context, { event }) {
const { $application, $base, $extension, $constants, $variables, $modules } = context;
if (event.navigationType === 'SCREENPOP') {
if (event.engagementData.multiMatches) {
await Actions.fireEvent(context, {
event: 'oracle_cx_serviceUI/application:svcNavigate',
payload: {
application: 'service',
flow: 'sr',
key: event.engagementData.inData.SVCMCA_INTERACTION_ID,
page: 'svc-contact',
pageParams: {
...event.extraAttributes.svcNavigateEvent.pageParams,
selectedView: 'createContact'
},
tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo
},
});
return { stopPropagation: true };
}
}
}
}
return cxSvcNavigationListener;
});
オブジェクトの必須ページ・パラメータ
svcNavigate
イベントのコール時に必要なパラメータをページに渡す必要があります。 各オブジェクトには、その入力プロパティがあります。 渡す必要があるパラメータを確認するには、ステップに従います: API UI > Service Center > Service
を開きます。- 入力変数を取得するページを見つけます。 たとえば、
SR Details Service > ec > sr > edit
です。 - VBデザイナにページがロードされると、「変数」タブに切り替えることができます。
- 型でフィルタできる変数の数はn個です。
- フィルタを
Input parameter
として適用します。