機械翻訳について

通話中にテキスト・メッセージを使用してエージェント支援の提案を共有

エージェントは、各提案をクリックして提案の詳細ビューに移動し、提案のリンクをクリックして関連するKM記事を開くことができます。

shareSuggestionsExternally設定が有効な場合、エージェントは提案の詳細ビューでテキスト・メッセージ・ボタンを使用して共有を表示できます。 通話のIVRデータにSRが関連付けられている場合、エージェントは提案の詳細ビューにEメール・ボタンを使用して共有を表示できます。

前提条件を完了し、提案を外部で共有するためのコードを追加したと想定しています。

コールが進行中になると、Fusionアプリケーションにエージェント支援の提案が表示されます。 提案をクリックして、「テキスト・メッセージで共有」アイコンが表示される提案の詳細ビューに移動できます。

次のフロー図は、エージェントがスニペット提案の「テキスト・メッセージを介して共有」ボタンをクリックしたときに実行される操作の順序を示しています。

onSuggestionSharedイベントの図。

  1. shareSuggestionsExternallyパラメータがtrueに設定されている場合、エージェントはスニペットのドリルダウン・ビューに「テキスト・メッセージを介して共有」ボタンを表示できます。 エージェントがボタンをクリックすると、提案がテキスト・メッセージとして顧客に送信されます。
  2. メディア・ツールバー・アプリケーションのonToolbarInteractionCommandイベント・リスナーは、onSuggestionSharedコマンドを使用して実行されます。 イベント・ペイロードには、externalUrl、提案テキストなどの提案情報が含まれます。 このeventlistenerから、 onSuggestionSharedコマンドの場合は、サプライヤまたはSMSプロバイダAPIをコールしてテキスト・メッセージを送信する必要があります。
  3. SMSサプライヤがSMSを送信し、ステータスが成功か失敗かに応答します。 SMS共有ステータスが成功の場合、commandObject.result='success'を使用してonToolbarInteractionCommandイベント・リスナーから解決済のpromiseが返され、SMS共有ステータスが失敗の場合、commandObject.result='failure'を使用してonToolbarInteractionCommandイベント・リスナーから解決済のpromiseが返されます。

    commandObject.resultが成功として設定されている場合、次のメッセージが表示されます: The article titled {ARTICLETITLE} has been shared with the customer through SMSは、エージェントへのメッセージとしてコール・トランスクリプトに表示されます。

    commandObject.resultが失敗として設定されている場合、Failed to share the article titled {ARTICLETITLE} with the customer through SMSというメッセージがコール・トランスクリプトにエージェントへのメッセージとして表示されます。

CTIサプライヤーを通じてSMSとして提案を送信する方法

  1. ICtiVendorHandler.tsファイルで、sendTextMessage関数のshareSuggestionExternally宣言を追加します。
    export interface ICtiVendorHandler {
        //...
        sendTextMessage(suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function): Promise<void>;
        //...
    }
  2. fusionHandler.tsファイルのsubscribeToToolbarInteractionCommandsFromFusionshareSuggestionExternallyで更新します。
    public static subscribeToToolbarInteractionCommandsFromFusion(callback: Function): void {
            const request: IMcaEventRequest = FusionHandler.frameworkProvider.requestHelper.createSubscriptionRequest('onToolbarInteractionCommand') as IMcaEventRequest;
            FusionHandler.phoneContext.subscribe(request, (eventResponse: IEventResponse) => {
                return new Promise((resolve, reject) => {
                    const eventResponseDetails: IMcaOnToolbarInteractionCommandDataResponse = (eventResponse as IMcaOnToolbarInteractionCommandEventResponse).getResponseData();
                    callback(eventResponseDetails.getCommand(), eventResponseDetails.getData(), resolve);
                })
     
            });
        }
  3. 次の例に示すように、integrationEventsHandler.tsファイルのmakeAgentAvailable関数からsubscribeToToolbarInteractionCommandsFromFusion関数コールを更新して、新しいパラメータを処理します。
    public async makeAgentAvailable(): Promise<void> {
        try {
            //...
                FusionHandler.subscribeToToolbarInteractionCommandsFromFusion((command: string, suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function) => { this.listenToToolbarInteractionCommandsFromFusion(command, suggestionData, resolveRef); });
            //...
        } catch (err) {
            //...
        }
    }
  4. listenToToolbarInteractionCommandsFromFusionファンクションのシグネチャを更新して、新しいパラメータを処理し、onSuggestionSharedコマンドの大/小文字を追加します。次に例を示します。
    public listenToToolbarInteractionCommandsFromFusion(command: string, suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function): void {
        switch (command) {
            //...
            case "onSuggestionShared":
                    this.ctiAppViewModel.shareSuggestionExternally(suggestionData, resolveRef);
            //...
        }
    }
  5. 次の例に示すように、appController.tsファイルでfunctionshareSuggestionExternallyを定義します。
    public shareSuggestionExternally: (suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function) => void = (suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function): void => {
        this.integrationActionHandler.shareSuggestionExternally(suggestionData, resolveRef).then(() => {
          console.log("Requested to send message")
        }).catch(() => {
          console.log("Error: Unable to accept the call.")
        });
      }
  6. 次の例に示すように、関数shareSuggestionExternallyintegrationActionHandler.tsファイルに定義します。
    public async shareSuggestionExternally(suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function): Promise<void> {
            await this.vendor.sendTextMessage(suggestionData, resolveRef);
        }
  7. 次の例に示すように、CTIサプライヤを使用してメッセージをvendorHandler.tsファイルに送信するロジックを実装します。
    export class VendorHandler implements ICtiVendorHandler {
    //...
    public async sendTextMessage(suggestionData: IMcaOnToolbarInteractionCommandData, resolveRef: Function): Promise<void> {
            // TODO: call the vendor specific api to send text message
            // if(SMS SHARE STATUS FROM API RESPONSE IS 200 OR SUCCESS)
                suggestionData.result = 'success';
            //  else
                suggestionData.result = 'failure';
            resolveRef(suggestionData);
        }
    //...
    }

進捗の確認

これらのステップを完了したら、OJET serveを使用してアプリケーションを起動し、Fusionアプリケーションにサインインします。 メディア・ツールバーを開き、エージェントの空き状況ボタンをクリックして、エージェントを呼び出せるようにします。 このコールは、メディア・ツールバー・アプリケーションまたはFusionアプリケーションから受け入れることができます。 会話が開始されると、リアルタイム・トランスクリプトがFusionエンゲージメント・パネルにレンダリングされます。 また、提案に基づいてエージェント支援の提案が表示されます。 特定の提案のドリルダウン・ビューに移動すると、「テキスト・メッセージで共有」ボタンが表示されます。 また、ボタンをクリックすると、提案が顧客へのテキスト・メッセージとして共有されます。