スクリーン・ポップの拡張
チャットまたはコール・パネルが受け入れられると、エージェントの画面上に表示され、チャットまたは通話中にエージェントが顧客を支援するための詳細情報および機会が提供されます。 このスクリーン・ポップ・ダイアログは、ビジネス・ニーズにあわせて拡張できます。
デフォルトのルールと動作は次のとおりです:
ルール優先度 | ルール | 画面ポップアップ | 動作 |
---|---|---|---|
1 | チャット、SR情報との通話 | 「SR詳細」ページ | サービス・センターの設定に基づく - SR詳細またはSR折りたたみビューの表示 |
2 | SR詳細のある不明な担当者 | 「SR詳細」ページ | サービス・センターの設定に基づく - SR詳細またはSR折りたたみビューの表示 |
3 | SR詳細のない不明な担当者 | SVC-担当者作成ページ |
別の担当者を検索するためのオプション 担当者フォームの作成 フィールドは自動入力する必要があります |
4 | SRなしの既知の担当者 | 「SVC-Contact」ページ | チャット / コール・パネルでの担当者の詳細 |
チャットまたはコール・パネルが受け入れられると、エージェントの画面上に表示され、チャットまたは通話中にエージェントが顧客を支援するための詳細情報および機会が提供されます。 このスクリーン・ポップ・ダイアログは、ビジネス・ニーズにあわせて拡張できます。
イベントはアプリケーション・レベルで定義され、サービス内のナビゲーションが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
を指定できます。 これはSCREENPO
Pで、その他のすべての種類のナビゲーションではDRILLDOWN
になります。-
engagmentData
: 追加するビジネス・ロジックに基づくチャットまたは通話のIVRまたはエンゲージメント・データ。
アクション・チェーンには、デフォルトのアクションも実行またはスキップする必要があるかどうかを決定する次の戻り型が含まれています。 この動作を有効にするには、stopPropagation
プロパティをTrueに設定します。
{
"stopPropagation": true,
}
stopPropagation
がFalseに設定されている場合、アクションは顧客リスナーを最初に実行してから、デフォルトの動作を実行します。 オブジェクトの必須ページ・パラメータ
ページまたはオブジェクトをスクリーン・ポップするには、svcNavigate
イベントの呼出し時に必要なパラメータをページに渡す必要があり、各オブジェクトを独自の入力プロパティとして渡す必要のあるパラメータを特定するステップに従う必要があります。
- 「API UI」>「Oracle CX Service UI拡張アプリ」>「サービス」を開きます。
- VB Studioで、入力変数を取得するページを見つけます。 次に例を示します: 「SR詳細サービス」> ec > sr > edit.
- ページがVB Studio Designerにロードされたら、「変数」タブをクリックします。
型でフィルタできる変数の数があります
- フィルタを「入力パラメータ」として適用します。
独自のスクリーン・ポップを追加する方法
- 開始前フォームで
caseNumber
が提供されているケース・ページに移動します。 - 開始前フォームで
WorkOrder
番号が指定されている「作業オーダー」ページに移動 multiMatches
の場合にsvc-contact
にナビゲートします(担当者検索がmultiMatches
を返す場合)
スクリーン・ポップ・カスタム・ルールを追加するには、イベント・リスナーをcxSvcNavigation
に追加する必要があります。
- VB StudioでAPP UIを選択し、「Oracle CX Service UI拡張アプリケーション」>「サービス」を選択します。
- 「イベント・リスナー」タブをクリックします。
- 「+イベント・リスナー」をクリックします。
待機できるすべてのイベントが表示されます。
- cxSvcNavigationを選択し、「次」をクリックします。
- アクション・チェーンを追加するか、既存のアクション・チェーンを使用します。
- アクション・チェーンを作成すると、cxSvcNavigationイベントに追加されます
- 「もし」アクションをドラッグします。これは、アクション・チェーンが
SCREENPOP
ナビゲーション・タイプに対してのみ実行されることを意味します。 - これで、ビジネス・ユース・ケースに一致する条件を追加できます。 この例では、
event.navigationType = 'SCREENPOP'
を追加します。 - 「もし」アクション内で、
engagementData
にcaseId
が存在する場合は、別の「もし」アクションをドラッグしてケース・オブジェクトをレンダリングできるようになりました。これで、ケース・オブジェクトをスクリーン・ポップするイベントをトリガーする準備ができました。
- 内部「もし」アクション内のFireEventActionを削除します。
- プロパティ・パネルから
FireEvent
を定義します。 必須プロパティは次のとおりです:application
: サービス(ルート・アプリケーション名)。containerPath
: ecflow
: case (開く必要があるオブジェクトまたはフロー)tabInfo
: originalEventからコピーします。 タブ・タイトル、タブ・アイコンevent.extraAttributes.svcNavigateEvent.tabInfoが含まれますkey
:interactionId
は、engagementData event.engagementData.inData.SVCMCA_INTERACTION_ID
から取得できます。Page Params
: ケース・ページをレンダリングする必要があるページに必要なオブジェクト(caseNumber
)。
- デフォルトの動作を実行しないように、returnブロックを追加します。 この例では、
workorder
がエンゲージメント・データに存在し、作業オーダー・ページで作業オーダー番号を要求した場合にworkorder
をレンダリングする「もし」アクションをもう1つ追加します。次に、アクション・チェーンの例を示します:
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; });