前提条件

現在、この機能はエージェントにのみ適用できます。

Webex Contact Center を ServiceNow CRM コンソールと統合する前に、次のものがあることを確認してください。

以下の 2 つの方法のいずれかに従います。

開発者インスタンスについては、開発者インスタンス ガイドの手順に従うことをおすすめします。

エンタープライズ ライセンスのインスタンスを所有している場合は、エンタープライズ ライセンス インスタンスのガイドラインに従ってください。

エンタープライズ ライセンス アプリと開発者サンドボックス インスタンスを混在させることはお勧めしません。

以下のセクションでは、開発者インスタンス用の ServiceNow コネクタをインストールする手順について説明します。

1

ServiceNow 開発者ポータルアカウントにログインして [ 管理 ] コンソールを開きます。

2

[アカウント] メニューの [マイインスタンス] 領域で、[構築の開始] をクリックします。

「構築を開始」ボタンがハイライトされた ServiceNow 開発者ポータルのスクリーンショット

3

開発者インスタンスで、ウィンドウの左上にある フィルターナビゲーター フィールドから プラグインに移動します。

「プラグイン」フィルター ナビゲーターの検索を表示する ServiceNow 開発者インスタンス。

4

Openframeというタイトルの Openframe プラグインを検索します。 リストのスクロールが必要な場合があります。

[アプリケーション] 画面上の ServiceNow 開発者インスタンス、「OpenFrame」の検索結果と結果を表示しています。

5

[インストール] をクリックして、OpenFrame プラグインをインストールします。

6

[プラグインの有効化] ダイアログボックスで、[有効化] をクリックします。

「アクティベート」ボタンがハイライトされた OpenFrame プラグインのポップアップが表示されている ServiceNow 開発者インスタンス。

7

プラグインのアクティベーションが完了したら、[閉じる &] をクリックします。 [フォーム の再読み込み] を [ プラグインのアクティベーション ] ダイアログボックスで行います。

OpenFrame プラグインのアクティベーションの読み込みを示す ServiceNow 開発者インスタンス。

OpenFrame プラグインのアクティベーション成功ウィンドウを表示している ServiceNow 開発者インスタンスと [閉じる & [フォームの再読み込み] ボタンがハイライトされています。

8

プラグインのアクティベーションを確認するには、ウィンドウの左上部にある [ナビゲーターのフィルタ処理] フィールドで、[OpenFrame] に移動します。

9

[設定] をクリックして、OpenFrame プラグインが [OpenFrame設定] リストに表示されていることを確認します。

フィルター ナビゲーター検索で OpenFrame 構成を表示する ServiceNow 開発者インスタンス。

1

Github リポジトリの最新のシステム更新セット XML ファイルを次の場所にダウンロードします: https://desktop.wxcc-jp1.cisco.com

ファイル名: webexc-servicenow-update-setV(X).xml

Webex コンタクト センター CRM インテグレーション – ServiceNow の Github リポジトリのスクリーンショット。

2

ServiceNow インスタンスで、ウィンドウの左上にある フィルターナビゲーター フィールドから [システム更新セット] </a36] に移動します。>> 確定するためにセットを更新します。

ServiceNow 開発者インスタンスが、[すべて] タブのフィルター ナビゲーターの [セットを更新] の検索を表示し、[更新セットをコミット] オプションをハイライト表示しています。

3

[XML から更新セットをインポート] リンクをクリックします。

更新セットの結果ページに ServiceNow 開発者インスタンスが表示され、「関連リンク: XML から更新セットをインポート」がハイライト表示されている。

4

[ファイルの選択]をクリックし、システム更新セット XML ファイルを選択して、[ アップロード] をクリックします。

ServiceNow 開発者インスタンスのインポート XML 画面。

ServiceNow 開発者ポータルは更新セットのリストを取得しました。

更新セットが [取得した更新セット] リストに表示され、[ロード済み] 状態に表示されます。
5

取得した更新セット リストから、[更新セットファイル名] (リンク) をクリックして更新セットを開きます。

ServiceNow 開発者ポータルは、更新されたファイルの更新セット リストを取得しました。

6

ウィンドウの右上部にある [プレビュー更新セット] をクリックして、問題の更新セットを確認します。

ServiceNow 開発者ポータルは、[更新セットのプレビュー] ボタンがハイライトされた状態で、更新されたファイルの更新セット リストを取得していました。

7

プレビューが完了したら、[更新セットのプレビュー] ダイアログボックスで [ 閉じる ] をクリックします。

ServiceNow 開発者ポータルに更新セットのプレビューの成功通知が表示されます。

8

[更新セットをコミットする] をクリックします。

ServiceNow 開発者ポータルは、「更新セットのコミット」ボタンがハイライトされた状態で、更新されたファイルの更新セット一覧を取得しました。

9

更新セットの確定が完了したら、[ 更新セット確定 ] ダイアログボックスで [ 閉じる ] をクリックします。

ServiceNow 開発者ポータルに更新セットのコミット成功通知が表示されました。

1

ウィンドウ左上の フィルタナビゲータの フィールドに sys_properties.list と入力して Enter を押してください。

「sys_properties.list」の「すべて」タブのフィルター ナビゲーターで検索を表示する ServiceNow 開発者インスタンス

2

[システムプロパティ] ページで、更新された日付でプロパティを並べ替えます。 次の Webex Contact Center のプロパティが表示されていることを確認してください。

ServiceNow 開発者インスタンスのシステム プロパティ ページです。

3

[agentdesktop_url] をクリックして、[システムプロパティの agentdesktop_url] ページを開きます。

4

[ ] フィールドに、運用地域に応じて Webex コンタクトセンターデスクトップの URL を入力します。

Agentdesktop_url の ServiceNow 開発者インスタンス システム プロパティの詳細。

5

[更新(Update)] をクリックして変更を保存します。

6

(オプション)アクティビティテーブル名を変更するには、必要に応じて webexccactivitytable のプロパティを編集します。

システムプロパティ ページで、 webexcactivitytable をクリックします。

必要に応じて フィールドを変更します。

Webexactivitytable の ServiceNow 開発者インスタンス システム プロパティの詳細。

7

(オプション) 以下の方法でユーザグループを追加します。

  1. [ フィルタナビゲータ ウィンドウの左上の フィールドで、次の場所に移動します。 グループ [システムセキュリティ]

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. 新しいユーザグループを作成するか、既存のグループを使用します。

    WebexcAgentsGroup の ServiceNow 開発者インスタンス グループ ページ。

  3. [Edit] をクリックします。

  4. 検索する sn_openframe_user の下で コレクション ユーザグループに移動します。

    コレクションの検索を表示する ServiceNow 開発者インスタンス グループ編集メンバー ページ。

    コレクションを表示する ServiceNow 開発者インスタンス グループ編集メンバー ページがロール リストに移動しました。

  5. [保存] をクリックします。

  6. ユーザをグループメンバーとして追加します。

    ユーザ ロールが割り当てられた ServiceNow 開発者インスタンス グループ ページ。

1

[ナビゲーターのフィルタ処理] フィールドで、[OpenFrame] > [設定] に移動します。

ServiceNow 開発者インスタンスは、検索フィールドの「openframe」と結果でハイライトされた「OpenFrame」の下の「構成」でナビゲーターをフィルタリングします。

2

[新規] をクリックします。

「新規」がハイライトされた ServiceNow 開発者インスタンスの OpenFrame 構成ページ。

3

URL の次のプロパティを入力します:

  • 名前: Webex コンタクト センターのデスクトップ

  • タイトル: Webex コンタクト センター

  • : 550 (推奨)

  • 高さ : 600 (推奨)

4

URL フィールドの右にある ロック ボタンをクリックして追加 agentdesktop.do を URL として入力します。 (この手順を実行して、UI ページの構成を指定します)

ServiceNow 開発者インスタンスの OpenFrame 構成 – 鍵アイコンがハイライトされた新しい記録ページ。

5

(オプション) [ユーザ/エージェントグループ] を選択して構成を指定します。

ServiceNow 開発者インスタンスの OpenFrame 構成 – 新しい記録ユーザ グループの選択。

6

[送信(Submit)] をクリックします。 URL がリンクとして表示されます。

ServiceNow 開発者インスタンスの OpenFrame 構成 – ユーザ グループの選択を送信した後に表示される URL リンクを示す新しい記録ページ。

7

OpenFrame 電話を使用する前に、ServiceNow カスタム デスクトップ レイアウト JSON ファイルを Webex コンタクト センター管理ポータル にアップロードしていることを確認してください。 詳細については、 Webex コンタクトセンターでの ServiceNow デスクトップレイアウトのセットアップを参照してください。

1

https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow から ServiceNow のデスクトップレイアウトをダウンロードしてください。

Webex コンタクト センター CRM インテグレーション – デスクトップ レイアウト – ServiceNow の Github 画面。

2

必要に応じて、デスクトップレイアウトファイルのプロパティを更新します。

3

Webex Contact Center 管理ポータルへ移動します。

4

Management Portal のナビゲーションバーから、 [プロビジョニング] > デスクトップレイアウトを選択します。

左のナビゲーションでハイライトされたデスクトップレイアウトを持つコンタクトセンター Management Portal のプロビジョニングページ

5

[新しいレイアウト] をクリックし、デスクトップレイアウトの詳細を入力します。

6

ServiceNow デスクトップレイアウトの場合は、次のファイルをアップロードします。

7

[Save] をクリックして、設定を保存します。

ServiceNow コンソール内で Webex コンタクト センター デスクトップを開始できるようになりました。

8

フィルターナビゲータの フィールドから サービスオペレーションワークスペースに移動します。

ServiceNow のホームページには、ServiceNow と統合された Webex コンタクトセンター Webex が表示されます。

以下のセクションでは、ライセンスされたエンタープライズ インスタンスに ServiceNow コネクタをインストールする手順について説明します。

1

ServiceNow 開発者ポータルアカウントにログインして 管理 コンソールを開きます。

2

[アカウント] メニューの [マイインスタンス] 領域で、[構築の開始] をクリックします。

「構築を開始」ボタンがハイライトされた ServiceNow 開発者ポータルのスクリーンショット

3

開発者インスタンスで、ウィンドウの左上にある フィルターナビゲーター フィールドから プラグインに移動します。

「プラグイン」フィルター ナビゲーターの検索を表示する ServiceNow 開発者インスタンス。

4

Openframeというタイトルの Openframe プラグインを検索します。 リストのスクロールが必要な場合があります。

[アプリケーション] 画面上の ServiceNow 開発者インスタンス、「OpenFrame」の検索結果と結果を表示しています。

5

[インストール] をクリックして、OpenFrame プラグインをインストールします。

6

[プラグインの有効化] ダイアログボックスで、[有効化] をクリックします。

「アクティベート」ボタンがハイライトされた OpenFrame プラグインのポップアップが表示されている ServiceNow 開発者インスタンス。

7

プラグインのアクティベーションが完了したら、[閉じる &] をクリック [フォーム の再読み込み] を [ プラグインのアクティベーション ] ダイアログボックスに開きます。

OpenFrame プラグインのアクティベーションの読み込みを示す ServiceNow 開発者インスタンス。

OpenFrame プラグインのアクティベーション成功ウィンドウを表示している ServiceNow 開発者インスタンスと [閉じる & [フォームの再読み込み] ボタンがハイライトされています。

8

プラグインのアクティベーションを確認するには、ウィンドウの左上部にある [ナビゲーターのフィルタ処理] フィールドで、[OpenFrame] に移動します。

9

[設定] をクリックして、OpenFrame プラグインが [OpenFrame設定] リストに表示されていることを確認します。

フィルター ナビゲーター検索で OpenFrame 構成を表示する ServiceNow 開発者インスタンス。

1

ウィンドウの左上部にある [ナビゲーターのフィルタ処理] フィールドに、sys_properties.list と入力します。

「sys_properties.list」の「すべて」タブのフィルター ナビゲーターで検索を表示する ServiceNow 開発者インスタンス

2

[システムプロパティ] ページで、更新された日付でプロパティを並べ替えます。 次の Webex Contact Center のプロパティが表示されていることを確認してください。

ServiceNow 開発者インスタンスのシステム プロパティ ページの結果。

3

[agentdesktop_url] をクリックして、[システムプロパティの agentdesktop_url] ページを開きます。

4

[ ] フィールドに、Webex コンタクトセンターデスクトップの運用地域に応じた URL を入力します。

Agentdesktop_url の ServiceNow 開発者インスタンス システム プロパティの詳細ページです。

5

[更新(Update)] をクリックして変更を保存します。

6

(オプション) アクティビティ テーブル名を変更するには、 x_caci_webEXc.webexcactivitytable プロパティを必要に応じて編集します。

  1. システムプロパティ ページで、 x_caci_webEXc.webexcactivitytable をクリックします。

    ServiceNow 開発者インスタンス システム プロパティ ページの x_caci_webexc.webexcactivitytable の結果。

  2. 必要に応じて フィールドを変更します。

    x_caci_webexc.webexcactivitytable の ServiceNow 開発者インスタンス システム プロパティ ページ。

7

(オプション) 以下の方法でユーザグループを追加します。

  1. ウィンドウ左上の フィルターナビゲーター フィールドで [グループ] に移動します。a53>システムセキュリティ

    ServiceNow 開発者インスタンス フィルター ナビゲーターの結果は「グループ」です。

    WebEXCCAgentsgroup のサービスナウ開発者インスタンス グループ ページ。

  2. [編集] をクリックして次の役割を追加します:

    • sn_openframe_user

    • x_caci_webexc.エージェント

    • Agent_workspace_user

    • x_caci_webexc.webexc_imp_activity_user

    • x_caci_webexc.webex_contact_center

    Webexcgentsgroup の [SeviceNow 開発者インスタンス グループ] ページにロールが追加されました。

1

[ナビゲーターのフィルタ処理] フィールドで、[OpenFrame] > [設定] に移動します。

ServiceNow 開発者インスタンスは、検索フィールドの「openframe」と結果でハイライトされた「OpenFrame」の下の「構成」でナビゲーターをフィルタリングします。

2

[新規] をクリックします。

「新規」がハイライトされた ServiceNow 開発者インスタンスの OpenFrame 構成ページ。

3

URL の次のプロパティを入力します:

  • 名前: Webex コンタクト センターのデスクトップ

  • タイトル: Webex コンタクト センター

  • : 550 (推奨)

  • 高さ: 600 (推奨)

4

[ URL ] をクリックします。 ロック ボタンを選択して追加 x_caci_webexpc_agentdesktop.do を URL として入力します。 (この手順を実行して、UI ページの構成を指定します)

ServiceNow 開発者インスタンスの OpenFrame 構成 – 鍵アイコンがハイライトされた新しい記録ページ。

5

(オプション) [ユーザ/エージェントグループ] を選択して構成を指定します。

ServiceNow 開発者インスタンスの OpenFrame 構成 – 新しい記録ユーザ グループの選択。

6

[送信(Submit)] をクリックします。 URL がリンクとして表示されます。

ServiceNow 開発者インスタンスの OpenFrame 構成 – URL が追加された新しいレコード。

7

[ フィルタナビゲータ フィールド、移動先 サービス オペレーション ワークスペース

ServiceNow ホームページには、ServiceNow と統合された Webex コンタクトセンター Agent Desktop が表示されます。

8

(オプション) [ ユーザグループ を追加して、Webex コンタクト センターのデスクトップにアクセスできるユーザ グループを次から移動します。 利用可能選択済み

9

OpenFrame 電話を使用する前に、ServiceNow カスタム デスクトップ レイアウト JSON ファイルを Webex コンタクト センター管理ポータル にアップロードしていることを確認してください。 詳細については、 Webex コンタクトセンターの ServiceNow デスクトップレイアウトをセットアップするを参照してください

1

ServiceNow のデスクトップレイアウトは、 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow からダウンロードします

Webex コンタクト センター CRM インテグレーション – デスクトップ レイアウト – ServiceNow の Github 画面。

2

必要に応じて、デスクトップレイアウトファイルのプロパティを更新します。

3

Webex Contact Center 管理ポータルへ移動します。

4

Management Portal のナビゲーションバーから、[ プロビジョニング ] > [デスクトップレイアウト] を選択します。

左のナビゲーションでハイライトされたデスクトップレイアウトを持つコンタクトセンター Management Portal のプロビジョニングページ

5

[新しいレイアウト] をクリックし、デスクトップレイアウトの詳細を入力します。

6

ServiceNow デスクトップレイアウトの場合は、次のファイルをアップロードします。

7

[Save] をクリックして、設定を保存します。

ServiceNow コンソール内で Webex コンタクト センター デスクトップを開始できるようになりました。

8

フィルターナビゲータの フィールドから サービスオペレーションワークスペースに移動します。

ServiceNow のホームページには、ServiceNow と統合された Webex コンタクトセンター Agent Desktop が表示されます。

1

フィルターナビゲータの フィールドで [ インシデント ] に移動します。未解決の問題。

2

発信者フィールドで右クリックして、[ 辞書の設定] をクリックします。

[ディレクトリの設定] オプションがハイライト表示された ServiceNow 開発者インスタンスの [インシデント] ウィンドウ。

3

カンマ区切りの属性を追加 "ref_contributions=show_phone,.

ディレクトリ エントリの ServiceNow 開発者インスタンス コール インシデント ウィンドウ。

ServiceNow コンソール内で Webex コンタクト センター デスクトップを開始できるようになりました。

4

フィルターナビゲーターの フィールドから サービスオペレーションワークスペースに移動します。

ServiceNow のホームページには、ServiceNow と統合された Webex コンタクトセンター Webex が表示されます。

WebRTC for Salesforce (SFDC) および Microsoft Dynamics (MS Dynamics) コネクタのみを使用した Agent Desktop へのログインをサポートしています。

ServiceNow コンソールで Agent Desktop

発信する前に、次の操作を実行してください。

  • アウトダイヤル エントリポイントを作成し、アウトダイヤルのエントリポイント戦略を設定する。

  • エージェントプロファイルのアウトダイヤル ANI を有効にする。

  • ダイヤル番号からエントリポイントへのマッピングにアウトダイヤル ANI を設定します。

詳細については、『Cisco Webex Contact Center セットアップおよび管理ガイド』の「プロビジョニング」の章を参照してください。

フィルターナビゲータの フィールドから サービスオペレーションワークスペースに移動します。

ServiceNow のホームページには、ServiceNow と統合された Webex コンタクトセンター Agent Desktop が表示されます。

デスクトップの使用方法に関する情報は、Webex コンタクトセンターヘルプの エージェント タブを参照してください。

概要

この記事では、ServiceNow CRM コネクタのビジネス ルールをカスタマイズするいくつかの方法について説明します。 ServiceNow に固有のビジネス ルールに基づいて、ユース ケースをカスタマイズする方法について詳しく説明します。

顧客は ServiceNow でこれらの使用事例を自己管理する必要があります。 設定は ServiceNow に固有のものであり、Webex コンタクトセンターのソフトウェアや専門知識ではありません。

これはビジネスルールの変更を支援するための参照ドキュメントです。 ServiceNow の開発者は、ビジネス ルールを作成および管理し、サポートを提供します。

Cisco はサンプル ドキュメントのみを提供します。

以下のセクションでは、開発者およびエンタープライズ インスタンスのアクション ウィジェットをセットアップ、有効化、および管理する方法の詳細について説明します。

アクション ウィジェットの更新セットを確定

ライセンスを持つエンタープライズ インスタンスの場合は、 ServiceNow ストアから最新の Webex コンタクトセンター アプリをインストールしてください。

開発者インスタンスにアクション ウィジェットをセットアップするには、github リポジトリの次の場所で最新のシステム更新セット XML ファイルをダウンロードします: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget。 ファイル名は webexc-servicenow-update-setv7-1-ActionsWidget.xml です。 アクション ウィジェットの更新セットを確定するには、「更新セットを確定する 」のステップ 2 - 9 を参照してください。

アクション ウィジェットを有効にする

isWidgetDisplayEnabled プロパティを使用してアクションウィジェットを有効にします。 カスタムデスクトップレイアウトのヘッドレスセクションにあるこのプロパティの値を変更してはいけません。 カスタム デスクトップ レイアウトのヘッドレス セクションでは、このプロパティは常に false に設定されます。 カスタム デスクトップ レイアウトのパネル セクションでのみ、プロパティの値を更新する必要があります。

カスタム デスクトップ レイアウトで [アクション] ウィジェットを有効にすると、次のアクションを実行できます。

  • 活動記録の管理—[ 活動記録の表示/編集] をクリックして、発信者に関連する活動記録の一覧を表示します。
  • CRM オブジェクトの関連付け—[ 活動記録に関連付ける ] をクリックして、コールタイプ (着信または発信)、通話オブジェクト、通話メモなどの CRM オブジェクトを活動記録に追加します。。
  • インシデントの管理—[インシデントの作成] をクリックします。 発信者の詳細が事前に入力された状態で、新しいインシデントが作成されます。 インシデントに必要な更新を行うことができます。 要件に基づいて、インシデントごと、人事モジュールなど、レコードタイプを変更することを選択できます。 レコードタイプを変更するには、[アクション] ウィジェット設定の typeOfRecord プロパティの値を変更します。 次に例を示します。
    { "COMP": "md-tab-パネル", "attribute": { "スロット": "パネル", "クラス": "ウィジェットペイン" }, "子供": [ { "コンプ": "エージェント x- Custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "プロパティ": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "インシデントの作成" }, "wrapper": { "title": "Snow アクション !", "maximizeAreaName": "app-maximize-eria" } } ] }
  • ライブ通話メモの追加: テキスト領域に通話に関する追加情報を入力し、通話をまとめます。 活動記録に通話メモとして追加されたメモを確認できます。

ServiceNow でのコードの変更

台本に変更を加える
  1. フィルター ナビゲーターに移動して、 スクリプトのインクルード.

    [ スクリプトのインクルード の下で システム UI

  2. フィルタリングする 名前 に移動し、次を検索します プロパティ ユーティリティ.

  3. 方法の変更 UserGetSysId [ スクリプト

    キュレント:

    UserGetSysId: Function () { varopened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.ext())opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.Initialize(); grInt.aligned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for=opened_for; var sysid=grInt.挿入();システム ID を返します。},

    インシデント用の新しいサンプルコード:

    UserGetSysId: Function () { varopened_for; //インシデント関連の変更 var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.ext()) {opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure(' Incident'); inc.addQuery('caller_id', open_for); inc.addQuery('state','IN','1,2'); inc. orderByDesc('sys_created_on'); inc.query();もし ( Inc.ext()) { sysidlist. Incsysid= Inc.getUniqueValue(); }else{ inc.Initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc. short_description='呼び出し元 '+ this.getParameter('value'); sysidlist. Incsysid= Inc.挿入(); var grInt = new GlideRecordSecure('interaction'); grInt.Initialize(); grInt.aligned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for=opened_for; var sysid=grInt.挿入(); sysidlist.sysid=sysid; JSON.stringify(sysidlist); を返します。},

UI ページでのメソッドの変更
  1. フィルタナビゲータに移動して、 UI ページを検索します。

    [システム UI ] 下の UI ページを選択します。

  2. [ 名前 ] をフィルタリングして次の検索を行います: エージェントデスクトップ.

  3. スクリーンポップ クライアントスクリプト の関数です。

    現在の機能:

    // スクリーンポップ関数 screenpop(callerani,callSessionInfo) {if(callerani===callSessionInfo.phoneNumber){ callerani=s StripPrefixes(callerani); var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', クエリ: 'sys_id='+sysid });

    インシデントのサンプルコード:

    // スクリーンポップ関数 screenpop(callerani,callSessionInfo) {if(callerani===callSessionInfo.phoneNumber){ callerani=s StripPrefixes(callerani); var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // インシデント関連の変更の場合 var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj. Incsysid){ openFrameAPI.openServiceNowForm({ entity: ' Incident', クエリ: 'sys_id='+sysObj. Incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: ' Incident',query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

発信者情報が CRM に存在し、この連絡先との新しいインシデントがすでに開いている場合、アプリケーションは進行中のインシデントを開きます。

発信者情報が CRM に存在しない場合、アプリケーションは新しいインシデントを開きます。

発信者情報が CRM に存在する場合、アプリケーションは事前に入力された詳細で新しいインシデントを開きます

概要

この使用例では、ServiceNow CRM Connector の Webex CC のインストール時に、ServiceNow テーブル webexc_imp_activity に列を追加し、sn_openframe_phone_log を作成するプロセスについて詳しく説明します。

既定では、テーブルにはすぐに使用できる特定のシステムフィールドと値が含まれています。

WebexCC Flow デザイナー内でよりビジネス固有の変数 (CAD 変数) を作成し、ServiceNow 通話後のアクティビティ ログに CAD 変数を追加することができます。これを通話後のアクティビティ テーブル データに永続化することもできます。

これは参照ドキュメントのみです。IVR 内部に顧客名を保存し、これを ServiceNow に投稿する Customer Name というサンプル CAD 変数に対してこれを行う方法を示します。

この構成は既存のコネクタをカスタマイズするものであるため、パートナーと顧客の ServiceNow 開発者が構成および管理を行う必要があります。

Cisco は、コネクタをカスタマイズおよび拡張する方法に関するテクニックのみを提供します。

この記事の時点で、Cisco チームは、以下で説明する手法を使用して、アクティビティ ログとアクティビティ テーブルに CAD 変数を追加できることを確認しました。

WebexCC IMP 活動に列を追加する

  1. 開発者バージョンの ServiceNow でテーブルを編集します。

    ServiceNow 開発者インスタンス WebexCC IMP アクティビティ テーブル。

  2. フィルター ナビゲーターに移動して、stodo を検索します。

    [すべて] タブの ServiceNow 開発者インスタンス フィルター ナビゲーターでは、フィルターに「スタジオ」と入力されています。

    選択 Webex Contact Center

    [アプリケーションの選択] ウィンドウが開いた ServiceNow 用の Studio アプリ。

    または

    [アプリケーションの選択] ウィンドウが開き、[ストアアプリを選択してカスタマイズ] が選択されている ServiceNow 用の Studio アプリ。

    [ストアアプリを選択してカスタマイズ] ウィンドウが開き、[Webex コンタクトセンター] が選択された ServiceNow 用の Studio アプリ。

    ServiceNow 用 Studio アプリ (Webex コンタクト センター アプリケーション ファイルの詳細を含む)。

  3. を選択します。 WebexCC IMP 活動

    ServiceNow 用 Studio アプリ WebexCC IMP 活動表。

  4. 新しい列を追加します。例: CustomerName さん

    ServiceNow 用の Studio アプリ WebexCC IMP 活動表の新しい列の例です。

    ServiceNow 用 Studio アプリ WebexCC IMP 活動表の新しい列の例 新しい列が追加されました。

電話ログに列を追加する

  1. 電話ログテーブルを編集します。

    ServiceNow 開発者インスタンスは電話ログ テーブルを検索します。

    ServiceNow 開発者インスタンスの電話ログ テーブル。

  2. 新しい列を追加します。例: CustomerName さん.

    ServiceNow 開発者インスタンスの電話ログ テーブルの新しい列の例。

    ServiceNow 開発者インスタンスの電話ログ テーブルに新しい列が追加された例です。

WebexCC アクティビティ変換マップ

ServiceNow 用 Studio アプリ WebexCC Activity Transform マップ。

新しい列を追加します。例: CustomerName さん フィールド マッピング。

ServiceNow 用の Studio アプリ WebexCC アクティビティ変換マップ「CustomerName Name」フィールド マッピングの新しい列の例。

ServiceNow 用 Studio アプリ WebexCC アクティビティ変換マップの新しい列の例では、[ターゲット] フィールドで [CustomeName] が選択されています。

リストの列をパーソナライズする

ServiceNow 用 Studio アプリ WebexCC アクティビティ ポップアップ ウィンドウをパーソナライズされたリスト列に変換するマップ。 選択アクションオプションは、[選択済み] 列でハイライトされます。

Service Now が推奨しているように、選択アクションを作成から無視に変更します。

ServiceNow 用 Studio アプリ WebexCC アクティビティ変換マップ アクション列の選択。「無視」または「作成」を選択するドロップダウンを表示。

ServiceNow 用 Studio アプリ WebexCC アクティビティ変換マップ。顧客名のアクション列の選択と顧客名のソース フィールドの「無視」がハイライトされています。

電話ログ リストの設定

ServiceNow 構成用の Studio アプリの電話ログ リストが [選択済み] 列でハイライトされています。

スクリプトインクルードに移動

1 行だけ追加してください webexc.u_customername=actInfo.CustomerName を PropUtils に追加します。

ServiceNow 開発者インスタンス フィルター ナビゲーターは、「スクリプト インクルード」を検索します。

ServiceNow 開発者インスタンスのスクリプト インクルード ページ。

サンプルスクリプト

次の行を参照してください。 webexpc.u_customername=actInfo.CustomerName; サポートのコメント付きです。

var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id;//return user.sys_id; // else // return null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // この行はアクティビティ ログに記録するために追加されます webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // インシデント レコードのアクティビティ; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } return sys_id; }, type: 'propUtils' });

フローデザイナーで CAD 変数を作成する

Webex CustomerName のフロー変数の追加ポップアップを備えたコンタクト センター CAD 変数フロー デザイナー。

CAD 変数をデスクトップレイアウトに追加する

「CadName1:SnowField1、CadName2:SnowField2」CadName1 は CustomerName です。SnowField1 は、上記の「actInfo.CustomerName」に示されているサンプル スクリプトの一部である CustomerName としても使用されます。

CAD 変数をデスクトップ レイアウトに追加するためのサンプル ソース コード。

デモのスクリーンショット

WebexCC アクティビティ テーブルに新しく追加された CAD 変数を表示します。

WebexCC アクティビティ テーブルに新しく追加された CAD 変数の ServiceNow の例。Cisco WebexCC ポップアップに「顧客名」が表示されます。

WebexCC アクティビティ テーブルに新しく追加された CAD 変数の ServiceNow の例。コメント セクションの「アクティビティ」と「システム管理者」に「CustomerName」が表示されています。

WebexCC アクティビティ テーブルに新しく追加された CAD 変数の ServiceNow 開発者インスタンスの例。「CustomerName」列が表示されています。

Flow Designer 用の CAD 変数を作成する

インシデントの緊急度

Webex コンタクト センター フロー デザイナーの CAD 変数作成画面に、インシデント緊急フロー変数のフロー変数編集ポップアップが表示されています。

インシデントの影響

Webex コンタクト センター フロー デザイナーの CAD 変数作成画面に、インシデント緊急フロー変数のフロー変数編集ポップアップが表示されています。

Service Now スクリプトの更新

スクリプトの更新内容

  1. フィルターナビゲータに移動して検索します スクリプトには

    選択してください スクリプトに含まれるもの オプション システム UI

    ServiceNow 開発者インスタンス フィルター ナビゲータで「スクリプト インクルード」を検索

  2. フィルター 名前プロパティユーティリティ

    ServiceNow 開発者インスタンス スクリプトには、「propUtils」による名前フィルターが含まれています

  3. 方法を変える ユーザ取得システム IDスクリプト 分野。

    ServiceNow 開発者インスタンスのスクリプト インクルード – propUtils の詳細ページ。

    現在のスクリプト:

    UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },

    インシデントの新しいサンプルコード:

    UserGetSysId: function () { var opened_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='+ からの通話受信 this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },

UI ページのメソッドの変更
  1. フィルターナビゲータに移動して検索します UI ページ

    選択してください UI ページ オプション システム UI

    ServiceNow 開発者インスタンス フィルター ナビゲータで「Ui ページ」を検索

  2. フィルター UI ページ名前 そして検索 エージェントデスクトップ

    ServiceNow 開発者インスタンス UI ページ名フィルターを使用して「agentdesktop」を検索します

  3. 変更する スクリーンポップ スクリプト フィールドに関数を入力します。

    ServiceNow 開発者インスタンス UI ページ – エージェントデスクトップの詳細ページ。

    現在の機能:

    // スクリーン ポップ関数 screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }

    インシデントのサンプルコード:

    // スクリーン ポップ関数 screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }

発信者情報が CRM に存在し、新規または進行中のインシデントがない場合、アプリケーションは新しいインシデントを開きます。

ServiceNow のインシデントの例。

ServiceNow のインタラクションの例。

ServiceNow のコードを変更する

新しい列を追加する WebexCC IMP アクティビティ

開く WebexCC IMP アクティビティ

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap。

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap の詳細ページ。

新しい列を追加 - InteractionsNumber

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap の新しい列、InteractionNumber。

ServiceNow 開発者インスタンスの WebexCC アクティビティ TransformMap の詳細ページに、新しく追加された「interactionnumber」列が表示されています。

新しい列を追加 - IncidentNumber

ServiceNow 開発者インスタンスの WebexCC アクティビティ TransformMap の詳細ページに、新しい「incidentnumber」列の追加が表示されています。

「更新」をクリックします

ServiceNow 開発者インスタンスの WebexCC アクティビティ TransformMap の詳細ページに、IncidentNumber 列の最大長の編集が表示されています。

ServiceNow 開発者インスタンスの WebexCC アクティビティ TransformMap の詳細ページに、新しく追加された「incidentnumber」列が表示されています。

新しい列を追加する 電話ログ

開く 電話ログ

ServiceNow 開発者インスタンスの電話ログ テーブル。

新しい列を追加 - InteractionsNumber

ServiceNow 開発者インスタンスのディレクトリ エントリ - InteractionsNumber の新しい列を表示する新しいレコード ページ。

InteractionsNumber 列が追加された ServiceNow 開発者インスタンスの電話ログ テーブル。

新しい列を追加 - IncidentNumber

ServiceNow 開発者インスタンスのディレクトリ エントリ - IncidentNumber の新しい列を表示する新しいレコード ページ。

IncidentNumber 列が追加された ServiceNow 開発者インスタンスの電話ログ テーブル。

WebexCC アクティビティ変換マップ

Open 変換マップ フィルターナビゲータから

ServiceNow 開発者インスタンス フィルター ナビゲータで「変換マップ」を検索

結果に WebexCC アクティビティ TransformMap を表示する ServiceNow 開発者インスタンス テーブル変換マップ。

クリック WebexCC アクティビティ トランスフォーム マップ

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap。

インタラクション番号マップに新規追加

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap で、「ターゲット フィールド」に「InteractionNumber」が入力されている

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap に「InteractionNumber」が追加されました。

事件番号マップに新規追加

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap で、「ターゲット フィールド」に「IncidentNumber」が入力されている

[更新(Update)] をクリックします。

ServiceNow 開発者インスタンス WebexCC アクティビティ TransformMap に「IncidentNumber」が追加されました。

スクリプトインクルードの変更

  1. フィルター ナビゲータに移動して、「script include」を検索します。

    システム UI の下にある スクリプト インクルード を選択します

    ServiceNow 開発者インスタンス フィルター ナビゲータで「スクリプト インクルード」を検索

  2. 名前 をフィルター プロパティユーティリティ.

    ServiceNow 開発者インスタンスのスクリプト インクルードには、検索に名前フィルターが適用され、検索フィールドに「propUtils」が入力されています。

  3. 方法を変える Webexcctable を設定する.

    ServiceNow 開発者インスタンス スクリプト インクルード - propUtils ページ

    インシデントの新しいサンプルコード:

    setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //インシデント レコードのアクティビティ; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; delete actInfo['incident_sys_id']; if(interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='状態をクローズに更新します。'; inte.update(); } } if(incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } return sys_id; },

UI ページでのメソッドの変更

  1. フィルターナビゲータに移動して検索 UI ページ

    選択してください UI ページ オプション システム UI

    「Ui ページ」を検索する ServiceNow 開発者インスタンス フィルター ナビゲータ

  2. UI ページをフィルタリングする 名前 そして検索 エージェントデスクトップ

    検索に名前フィルターが適用された ServiceNow 開発者インスタンス UI ページ。

  3. 変更する nowActivities とスクリーンポップ スクリプト内の関数。

    ServiceNow 開発者インスタンス UI ページ – agentdesktop。

    現在の機能:

    関数 nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }

    インシデントのサンプルコード:

    function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ エンティティ: 'incident'、クエリ: 'sys_id=-1'、'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } 

アップデート後の結果

ServiceNow 開発者インスタンスの電話ログ ページ。

次のカスタマイズはバージョン 1.0.5 以下に適用されます。 新しいバージョン 1.0.7 以降のカスタマイズについては、上記の手順に従ってください。

カスタマイズ # 1 - コールフローのユースケースにカスタムビジネスルールを追加する

通話ごとに新しいインシデント記録を作成する

ServiceNow の WebexCC CRM コネクタへの新しい呼び出しごとに、新しいインシデント レコードを作成します。

  1. フィルターナビゲータでビジネスルールを検索する

    ServiceNow developer instance Business Rules page header.
  2. [新規] をクリックします。

    ServiceNow developer instance Business Rule – New Record.

    参考サンプルコード:

    function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("name", name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; return url; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }

    ビジネスルールのサンプル構成

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. クライアント呼び出しを有効にする

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    インシデントのコンピュータ テレフォニー統合 (CTI) 処理は True としてマークされています

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. スクリーンポップ URL をカスタム CTI ルール " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone=" で更新します

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.

sysparm_cti_rule=name ('name' は、デフォルトのスクリプトを使用するのではなく、 CTI 処理 のために呼び出される 関数の名前です。

sys_script エントリで クライアント呼び出し可能としてマークされた関数を定義します。

関数内で GlideRecord を挿入、更新、または削除する必要がある場合は、別の非クライアント呼び出し可能関数を呼び出して更新を実行します。

スクリプトをクライアント呼び出し可能にするには、sys_script エントリが表示されるときに表示されるフォームでクライアント呼び出し可能チェック ボックスをオンにする必要があります。

クライアント呼び出し可能チェック ボックスはデフォルトでは表示されません。 表示するには、歯車アイコンとスラッシュ バケット メカニズムを使用して、フォームに表示されるフィールドを変更する必要があります。

参考資料

カスタマイズ # 2 - Webex コンタクト センター アクティビティ テーブルに CAD 変数を追加する

概要

この記事では、ServiceNow CRM コネクタ用の Webex CC のインストール時に作成される ServiceNow テーブル (webexcc_activity) に追加の列を追加するプロセスについて詳しく説明します。

デフォルトでは、テーブルにはすぐに使用できるシステム フィールドと値が含まれています。

WebexCC フロー デザイナー内でビジネス固有の変数 (CAD 変数) をさらに作成し、それらの CAD 変数を ServiceNow 通話後アクティビティ ログ内に追加し、これを 通話後アクティビティ テーブル データに保持することができます。

  • これは参照ドキュメントのみであり、IVR 内に顧客名を保存し、これを ServiceNow に投稿する Customer Name というサンプル CAD 変数に対してこれを行う方法を示しています。

  • これは既存のコネクタのカスタマイズであるため、パートナー + 顧客の ServiceNow 開発者がこの構成を構成および管理します。

  • Cisco は、コネクタをカスタマイズおよび拡張する方法に関するテクニックのみを提供します。

  • この記事の時点で、シスコ チームは、以下に説明する手法を使用して、アクティビティ ログとアクティビティ テーブルへの CAD 変数の追加のサポートを検証しました。

WebexCC アクティビティに列を追加する
  1. ServiceNow の開発者バージョンでテーブルを編集します。

    ServiceNow developer instance Table – WebexCC Activity page.
  2. スタジオ > Webex コンタクト センターにアクセスしてください。

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. WebexCC アクティビティ テーブルを選択します。

    App Engine Studio WebexCC Activity table.
  4. たとえば、 CustomerName です。

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. WebexCC アクティビティのリスト レイアウトを選択します。

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
新しいスクリプトインクルードを作成する

更新セット XML を使用している場合、この手順は必要ありません - propUtils に「webexcc.u_customername=actInfo.CustomerName」という 1 行のみを追加する必要があります。

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

サンプルスクリプト

次の行を参照してください:webexcc.u_customername=actInfo.CustomerName; サポートコメント付き。

var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // この行はアクティビティ ログに記録するために追加されます webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // インシデント レコードのアクティビティ; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } return sys_id; }, type: 'propUtils2' });
新しいスクリプト名で UI ページを編集するApp Engine Studio agentdesktop UI page with new script name.

フローデザイナーで CAD 変数を作成するWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

CAD 変数をデスクトップレイアウトに追加するWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

デモのスクリーンショット

WebexCC アクティビティ テーブルに新しく追加された CAD 変数を表示します。

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.