先決條件

在您將 Webex Contact Center 與 ServiceNow CRM 主控台整合之前,請確保您具備下列各項:

請遵循以下兩種方法之一:

對於開發人員實例,我們建議按照開發人員實例指南中的步驟操作。

如果您擁有企業許可實例,請遵循企業許可實例的準則。

我們不建議將企業許可的應用與開發人員沙盒實例混合使用。

以下部分介紹了為開發人員實例安裝 ServiceNow 連接器的步驟。

1

登錄到您的 ServiceNow 開發人員門戶帳戶並 打開管理 控制台。

2

在帳戶功能表的我的 實例 區域 中,單擊 開始構建

3

在開發人員實例上,從視窗左上角的 篩選器導航器 欄位中,導航到 外掛程式

4

搜索標題 為 Openframe 的 Openframe 外掛程式。 您可能需要捲動清單。

5

按兩下 安裝 以安裝 Openframe 外掛程式。

6

在“啟動外掛程式 ”對話框中,按兩下 “啟動”。

7

外掛程式啟動完成後,按兩下 外掛程式啟動 對話框中的關閉並重新載入表單

8

要驗證外掛程式啟動,請從視窗左上角的 過濾器導航器 欄位中導航到 OpenFrame

9

單擊 配置 並確保 OpenFrame 外掛程式出現在 OpenFrame 配置 清單中。

1

下載 github 儲存庫上提供的最新系統更新集 XML 檔: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow

檔案名稱:webexcc-servicenow-update-setV (X).xml

2

在 ServiceNow 實例上,從視窗左上角的「 篩選器導航器 」欄位中,導航到 “系統更新集 ”> “要提交的更新集”。

3

按兩下從 XML 導入更新集連結。

4

單擊“ 選擇檔”,選擇“系統更新集”XML 檔,然後按兩下“上傳

更新集將顯示在 「檢索到的更新集 」清單中,並且處於 「已載入」 狀態。
5

從「 檢索到的更新集 」清單中,按兩下更新集檔名 (連結) 以打開更新集。

6

在視窗的右上角,按兩下 預覽更新集 以檢查更新集是否存在問題。

7

預覽完成後,按兩下 更新集預覽對話框中的關閉

8

按兩下 提交更新集”

9

完成更新集提交後,按兩下「 更新集提交 」對話框中的「關閉 」。

1

在視窗左上角的「過濾器導航器 」欄位中,鍵入 sys_properties.list 並按 Enter 鍵。

2

在「 系統屬性 」頁上,按更新日期對屬性進行排序。 確保您可以看到以下 Webex Contact Center 屬性:

3

按兩下 agentdesktop_url 以打開「 系統屬性 agentdesktop_url 」頁。

4

在值 欄位 中,根據營運區域輸入 Webex Contact Center Desktop 的 URL。

5

按一下 「更新」 以儲存變更。

6

(選用)若要更改“活動”表名稱,請根據需要編輯 webexccactivitytable 屬性。

在「系統屬性 」頁上,按一下 webexccactivitytable

視需要變更「 」欄位。

7

(選用)透過以下方式新增使用者群組:

  1. 在視窗左上角的「過濾器導航器 」欄位中,導航到 「系統安全性」下的「組 」。

  2. 建立新的使用者群組或使用現有的使用者群組。

  3. 按一下編輯

  4. 在「集合」 搜索 sn_openframe_user ,並將其移動到您的使用者組。

  5. 按一下儲存

  6. 將使用者新增為群組成員。

1

從過濾器導航器 欄位中,導航到 OpenFrame > Configurations

2

按一下新增

3

輸入 URL 的下列屬性:

  • 名稱:Webex Contact Center Desktop

  • 標題:Webex 聯絡中心

  • 寬度:550 (推薦)

  • 身高:600 (推薦)

4

在 URL 欄位的 右側,點按 鎖定 按鈕,然後添加 agentdesktop.do 作為 URL。 (執行此步驟以將配置指向 UI 頁面)

5

(選用)選取要指定組態的使用者/代理群組。

6

按一下遞交。 URL 即會顯示為連結。

7

在您嘗試使用 OpenFrame 電話之前,請確定您已將 ServiceNow 自訂桌面配置 JSON 檔案上載至 Webex Contact Center Management Portal。 有關詳細資訊,請參閱 在 Webex Contact Center 上設定 ServiceNow 桌面佈局。

1

請從 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 下載 ServiceNow 的桌面版面配置。

2

如果需要,更新桌面佈局檔中的屬性。

3

前往 Webex Contact Center Management Portal。

4

從 Management Portal 導航欄中,選擇 “置備 > 桌面佈局”。

5

按下 新建佈局 並輸入桌面佈局的詳細資訊。

6

上傳 ServiceNow 桌面配置 JSON 檔案。

7

按一下 儲存 ,以儲存組態。

您現在可以在 ServiceNow 控制台中啟動 Webex Contact Center Desktop。

8

從篩選器導航器 欄位中,導航到 服務操作工作區

含有 Webex Contact Center 的 ServiceNow 首頁 Agent Desktop 與 ServiceNow 整合。

以下部分介紹為許可的企業實例安裝 ServiceNow 連接器的步驟。

1

登錄到您的 ServiceNow 開發人員門戶帳戶並 打開管理 控制台。

2

在帳戶功能表的我的 實例 區域 中,單擊 開始構建

3

在開發人員實例上,從視窗左上角的 篩選器導航器 欄位中,導航到 外掛程式

4

搜索標題 為 Openframe 的 Openframe 外掛程式。 您可能需要捲動清單。

5

按兩下 安裝 以安裝 Openframe 外掛程式。

6

在“啟動外掛程式 ”對話框中,按兩下 “啟動”。

7

外掛程式啟動完成後,按兩下 外掛程式啟動 對話框中的關閉並重新載入表單

8

要驗證外掛程式啟動,請從視窗左上角的 過濾器導航器 欄位中導航到 OpenFrame

9

單擊 配置 並確保 OpenFrame 外掛程式出現在 OpenFrame 配置 清單中。

1

在視窗左上角的「過濾器導航器 」欄位中,輸入 sys_properties.list

2

在「 系統屬性 」頁上,按更新日期對屬性進行排序。 確保您可以看到以下 Webex Contact Center 屬性:

3

按兩下 agentdesktop_url 以打開「 系統屬性 agentdesktop_url 」頁。

4

在值 欄位 中,根據營運區域輸入 Webex Contact Center Desktop 的 URL。

5

按一下 「更新」 以儲存變更。

6

(選用)若要更改活動表名稱,請根據需要編輯 x_caci_webexcc.webexccactivitytable 屬性。

  1. 在「 系統屬性 」頁上,按一下 x_caci_webexcc.webexccactivitytable

  2. 視需要變更「 」欄位。

7

(選用)透過以下方式新增使用者群組:

  1. 在視窗左上角的「過濾器導航器 」欄位中,導航到 「系統安全性 」下的 「組」。

  2. 點選 編輯 並新增以下角色:

    • sn_openframe_user

    • x_caci_webexcc.代理

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

從過濾器導航器 欄位中,導航到 OpenFrame > Configurations

2

按一下新增

3

輸入 URL 的下列屬性:

  • 名稱:Webex Contact Center Desktop

  • 標題:Webex 聯絡中心

  • 寬度:550 (推薦)

  • 身高:600 (推薦)

4

在 URL 欄位的 右側,點按鎖定 按鈕並將 x_caci_webexcc_agentdesktop.do 新增 URL。 (執行此步驟以將配置指向 UI 頁面)

5

(選用)選取要指定組態的使用者/代理群組。

6

按一下遞交。 URL 即會顯示為連結。

7

從篩選器導航器 欄位中,導航到 服務操作工作區

含有 Webex Contact Center 的 ServiceNow 首頁 Agent Desktop 與 ServiceNow 整合。

8

(選用)在「 使用者群組 」清單中,將可以存取 Webex Contact Center Desktop 的使用者群組從 「可用 」移至 「已選取」。

9

在您嘗試使用 OpenFrame 電話之前,請確定您已將 ServiceNow 自訂桌面配置 JSON 檔案上載至 Webex Contact Center Management Portal。 有關詳細資訊,請參閱 在 Webex Contact Center 上設定 ServiceNow 桌面佈局。

1

請從 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 下載 ServiceNow 的桌面版面配置。

2

如果需要,更新桌面佈局檔中的屬性。

3

前往 Webex Contact Center Management Portal。

4

從 Management Portal 導航欄中,選擇 “置備 > 桌面佈局”。

5

按下 新建佈局 並輸入桌面佈局的詳細資訊。

6

上傳 ServiceNow 桌面配置 JSON 檔案。

7

按一下 儲存 ,以儲存組態。

您現在可以在 ServiceNow 控制台中啟動 Webex Contact Center Desktop。

8

從篩選器導航器 欄位中,導航到 服務操作工作區

含有 Webex Contact Center 的 ServiceNow 首頁 Agent Desktop 與 ServiceNow 整合。

1

從篩選器導航器 欄位中,導航到 事件 >打開事件。

2

在來電者欄位上按一下滑鼠右鍵,然後按一下「 設定字典」。

3

添加逗號分隔的 屬性“ref_contributions=show_phone,

您現在可以在 ServiceNow 控制台中使用 Webex Contact Center Desktop。

4

從篩選器導航器 欄位中,導航到 服務操作工作區

含有 Webex Contact Center 的 ServiceNow 首頁 Agent Desktop 與 ServiceNow 整合。

Agent Desktop 在 ServiceNow 控制台中

在進行撥出通話之前,請確保執行以下操作:

  • 創建外撥入口點並設置外撥入口點策略。

  • 為代理設定檔啟用撥出 ANI。

  • 將撥出 ANI 設定為撥出號碼到進入點對映。

有關詳細資訊,請參閱 《設置和管理指南》Cisco Webex Contact Center 預配 一章

從篩選器導航器 欄位中,導航到 服務操作工作區

含有 Webex Contact Center 的 ServiceNow 首頁 Agent Desktop 與 ServiceNow 整合。

有關如何使用桌面的資訊,請參閱 Webex 聯繫中心説明中的代理 選項卡。

概覽

本文介紹了為 ServiceNow CRM 連接器自定義業務規則的幾種方法。 它詳細介紹了如何根據特定於 ServiceNow 的業務規則自定義用例。

客戶必須在 ServiceNow 上自行管理這些用例。 該組態特定於 ServiceNow 而非 Webex Contact Center 軟體或專業知識。

這是説明修改業務規則的參考文檔。 ServiceNow 開發人員將創建和管理業務規則,並提供支援。

Cisco 僅提供範例文件。

以下部分提供了有關如何為開發人員和企業實例設置、啟用和管理操作小組件的詳細資訊。

提交操作小組件的更新集

授權的企業實例方面請自 ServiceNow 商店安裝最新的 Webex Contact Center 應用程式。

要為開發人員實例設置操作小組件,請下載 github 儲存庫上提供的最新系統更新集 XML 檔,網址為: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget。 檔案名稱為 webexcc-servicenow-update-setv7-1-ActionsWidget.xml。 要提交操作小組件的更新集,請參閱提交更新集中 的步驟 2 到 9

開啟動作小組件

使用 isWidgetDisplayEnabled 屬性啟用動作 widget。 您不得在自訂桌面佈局的無頭部分中修改此屬性的值。 該屬性在自定義桌面佈局的無外設部分中始終設置為 false。 應僅在自定義桌面佈局的面板部分中更新屬性的值。

在自訂桌面佈局中啟用「操作」小組件後,可以執行以下操作:

  • 管理活動記錄 - 單擊 「查看/編輯活動記錄 」以查看與呼叫者關聯的活動記錄清單。
  • 關聯 CRM 物件 - 單擊「 關聯到活動記錄 」以將 CRM 物件 (如呼叫類型 (入站或出站)、呼叫物件、呼叫記錄等) 添加到活動記錄中。
  • 管理事件 - 按兩下 建立事件。 將創建一個新事件,並預先填充呼叫者詳細資訊。 可以對事件進行所需的更新。 您可以根據需要選擇從事件到案例、HR 模組等修改記錄類型。 要更改記錄類型,請在操作小組件配置中修改 typeOfRecord 屬性的值 。 例如:
    {“comp”:“md-tab-panel”,“attributes”:{“slot”:“panel”,“class”:“widget-pane”},“children”:[ {“comp”:“agentx-custom-desktop”,“script”:“https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js”,“properties”:{“isWidgetDisplayEnabled”:true,“typeOfRecord”:“Create Incident”},“wrapper”:{“title”:“SNOW Actions!”,“maximizeAreaName”:“app-maximize-area”} } ] }
  • 新增即時通話備註 -- 您可以在文字區域中擷取有關通話的其他資訊並整理通話。 您可以在活動記錄中看到這些作為通話筆記添加的註釋。

服務現在的代碼變更

指令檔包含變更
  1. 移至過濾器導航器並搜尋 指令檔包括.

    選擇「系統 UI」 下的 「腳本包括」。

  2. 過濾名稱 然後搜尋 propUtils.

  3. 變更方法 UserGetSysId 在腳本

    目前:

    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(); 傳回 sysid; },

    事件的新範例代碼:

    UserGetSysId:function(){ var opened_for; //Incident related changes 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.short_description='Call Received from '+ 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;返回 JSON.stringify (sysidlist);},

UI 頁面上的方法變更
  1. 轉到篩選器導航器並搜索 UI 頁面

    選擇 「系統 UI」下的 「UI」

  2. 過濾名稱 然後搜尋 代理桌面.

  3. 變更 螢幕彈出 用戶端腳本 中的函數。

    目前功能:

    screen pop 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(); openFrameAPI.openServiceNowForm ({ entity:'interaction',query:'sys_id='+sysid });

    事件的範例代碼:

    screen pop 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(); // For Incident-related change 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 //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

如果 CRM 中存在呼叫者資訊,並且此聯繫人已打開新事件,則應用程式將打開進行中事件

如果 CRM 中不存在呼叫者資訊,則應用程式將打開一個新事件

如果 CRM 中存在呼叫者資訊,則應用程式將打開一個包含預填充詳細資訊的新事件

概覽

此用例詳細介紹了向 ServiceNow 表新增額外欄的過程 - webexcc_imp_activity 在安裝 Webex CC for ServiceNow CRM 連接器時建立 sn_openframe_phone_log。

默認情況下,該表包含某些現成的系統欄位和值。

您可以在 WebexCC Flow 設計器中創建更多業務特定變數 (CAD 變數),並將 CAD 變數新增到 ServiceNow 通話後活動日誌中,並將其保存到通話後活動表資料中。

這隻是一個參考文檔 - 並展示了如何對名為「客戶名稱」的示例 CAD 變數執行此操作,該變數將客戶名稱存儲在 IVR 中並將其發佈到 ServiceNow。

預計合作夥伴 + 客戶 ServiceNow 開發人員將配置和管理此配置,因為它是對現有連接器的自定義。

Cisco 僅提供有關如何自訂和擴展連接器的技術。

截至本文,Cisco 團隊已驗證支援使用下述技術將 CAD 變數添加到活動日誌和活動表:

新增欄至 WebexCC IMP 活動

  1. 在 ServiceNow 的開發人員版本中編輯該表。

  2. 轉到過濾器導航器並搜索工作室。

    選取 Webex Contact Center

  3. 選取 WebexCC IMP 活動 桌子

  4. 新增一欄例如, 客戶名稱

新增欄到電話紀錄

  1. 編輯電話日誌表。

  2. 新增一欄例如, 客戶名稱.

WebexCC 活動轉換對應

新增一欄例如, 客戶名稱 欄位映射。

個人化清單欄

按照「服務立即」的建議,將“選擇”操作從“創建”更改為“忽略”。

設定電話紀錄清單

移至文稿包含

僅新增一行 webexcc.u_customername=actInfo.CustomerName 到道具。

範例文稿

請參閱以下行: webexcc.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;//返回 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();返回 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(); } } }返回 sys_id;},type:'propUtils' });

在 Flow 設計器中建立 CAD 變數

將 CAD 變數新增到桌面佈局

範例

“CadName1:SnowField1,CadName2:SnowField2”CadName1 是 CustomerName SnowField1 也用作 CustomerName,這是“actInfo.CustomerName”上方的示例 scirpt show 的一部分。

簡報截圖

在 WebexCC 活動表格中檢視新新增的 CAD 變數。

為 Flow Designer 建立 CAD 變數

事件緊急性

事件影響

立即服務指令碼更新

對文稿的更新包括

  1. 移至篩選器導航器並搜尋 文稿包含

    選擇「系統 UI」 下的 「腳本包含」選項。

  2. 使用 propUtils 過濾 名稱

  3. 變更方法 UserGetSysId 在「腳本 欄位中。

    目前文稿:

    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(); 傳回 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='Call Received From '+ 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;返回 JSON.stringify (sysidlist);//sysid;},

UI 頁面上的方法變更
  1. 轉到篩選器導航器並搜索 UI 頁面

    選擇「系統 UI」下的 UI 頁面」 選項

  2. 使用名稱過濾 UI 頁面 並搜尋 代理桌面

  3. 變更 螢幕彈出 指令檔欄位中的函數。

    目前功能:

    screen pop 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(); 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 上的代碼

新增欄至 WebexCC IMP 活動 桌子

開啟 WebexCC IMP 活動 桌子

新增欄 - 互動次數

新增欄位 - 事件編號

點擊更新

新增欄至 電話記錄 桌子

開啟 電話記錄 桌子

新增欄 - 互動次數

新增欄位 - 事件編號

WebexCC 活動轉換對應

開啟 轉換地圖 從過濾器導航器

點擊 WebexCC 活動轉換圖

新增 - 用於互動號碼對應

新增 - 用於事件編號圖

按一下更新

對文稿的變更包括

  1. 轉到過濾器導航器並搜索「腳本包含」。

    選擇「系統 UI」 下的 「腳本包括」。

  2. 過濾 名稱propUtils.

  3. 變更方法 設定網路可執行.

    事件的新範例代碼:

    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()){ //Activity on Incident record; //var actInfoString =this.getParameter ('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=“”; var intenum=“”; delete 行為資訊['interaction_sys_id'];刪除行為資訊['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='Update State to closed.'; 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=英寸;sys_id=webexcc.insert();} 傳回 sys_id;},

UI 頁面上的方法變更

  1. 移至過濾器導航器並搜尋 UI 頁面

    選擇「系統 UI」下的 UI 頁面 選項。

  2. 使用 名稱 過濾 UI 頁面並搜尋 代理桌面

  3. 變更 Now 活動與螢幕彈出 腳本中的函數。

    目前功能:

    function 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 ({ entity:'incident',query:'sys_id=-1','interaction_sys_id':sysObj.sysid }); } window.localStorage.setItem (“screenpopinteraction”,JSON.stringify(sysObj));} 

更新後的結果

以下自定義適用於版本 1.0.5 及更低版本。 對於較新版本 1.0.7 及更高版本的自定義,請執行上述步驟。

自訂 # 1 - 為呼叫流用例新增自訂業務規則

為每個呼叫建立新的事件記錄

每當有新通話進入 ServiceNow 中的 WebexCC CRM 連接器時,皆需建立新的事件記錄。

  1. 在篩選器導航器上搜尋業務規則

  2. 點撃新增。

    範例代碼供參考:

    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;返回 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; }

    業務規則的範例配置

  3. 啟用 Client callable

    Computer Telephony Integration (CTI) Processing For Incident (針對事件 的計算機電話集成() 處理被標記為 True

  4. 使用自定義 CTI 規則 cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone=”更新 screenpop url

範例

sysparm_cti_rule=name 其中 'name' 是函數 的名稱 ,用於 CTI Processing 而不是使用預設腳本。

在標記為 client callable 的 sys_script 條目中定義函數。

如果您必須在函數中插入、更新或刪除任何 GlideRecords,請調用單獨的非用戶端可調用函數來執行更新。

要使文稿可用戶端調用,您必須選中顯示 sys_script 條目時顯示的表單上的 client-callable 複選框。

默認情況下,client-callable 複選框不顯示。 要查看,您必須使用齒輪圖示和 slush 儲存桶機制修改表單上顯示的欄位。

參考資料

自訂 # 2 - 在 Contact Center 活動表中添加 CAD 變數 Webex

概覽

本文詳細介紹了向 ServiceNow 表添加附加列的過程,該列是在安裝 Webex CC for ServiceNow CRM 連接器時創建的 webexcc_activity。

默認情況下,該表包含現成的系統欄位和值。

您可以在 WebexCC 流設計器中創建更多業務特定變數 (CAD 變數),並將這些 CAD 變數添加到 ServiceNow 呼叫後活動日誌中,並將其保存到 呼叫後活動表 數據中。

  • 這隻是參考文檔 - 並展示了如何對名為 Customer Name 的示例 CAD 變數執行此操作,該變數將客戶名稱存儲在 IVR 中並將其發佈到 ServiceNow。

  • 合作夥伴 + 客戶服務 ServiceNow 開發人員將配置和管理此配置,因為它是對現有連接器的自定義。

  • Cisco 將僅提供有關如何自定義和擴展連接器的技術。

  • 截至本文,Cisco 團隊已驗證支援使用下述技術將 CAD 變數添加到活動日誌和活動表中。

向 WebexCC 活動添加列
  1. 在 ServiceNow 的開發人員版本中編輯表。

  2. 轉到 Studio > Webex 聯繫中心

  3. 選擇 WebexCC 活動 表。

  4. 例如, CustomerName

  5. 選擇 WebexCC 活動 的清單佈局。

創建新的 Script Includes

如果您使用的是更新集 XML 則不需要此步驟 - 只需將一行“webexcc.u_customername=actInfo.CustomerName”添加到 propUtils。

示例腳本

參見 with: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(); } } }返回 sys_id;},輸入:'propUtils2' });
使用新文稿名稱編輯 UI 頁面

在 Flow Designer 中創建 CAD 變數

將 CAD 變數添加到 Desktop Layout 中

Demo 螢幕截圖

在 WebexCC 活動表中查看新添加的 CAD 變數。