將Webex Contact Center 與 ServiceNow 整合(版本 1 — 舊版)
先決條件
目前,此功能僅適用於客服。
將 Webex Contact Center 與 ServiceNow CRM 主控台整合之前,請確保您具有下列專案:
-
存取 Webex Contact Center。
-
Control Hub 的管理員存取權(位於https://admin.webex.com 和Webex Contact CenterManagement Portal。管理入口網站 URL 特定于您的地區。
-
具有桌面存取權 代理。桌面的 URL 特定于您的地區。
-
在內容安全性原則允許清單中新增的下列網域的代理存取權:
-
*.service-now.com
如需如何定義允許清單的資訊,請參閱 文章 Webex Contact Center 的安全性設定。
-
-
ServiceNow 開發人員入口網站帳戶。若要建立帳戶,請轉至 位於 的 ServiceNow 開發人員 https://developer.servicenow.com/dev.do 入口網站,然後按一下 註冊並開始建築。
-
存取下列檔案: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow 更新集 (XML)
-
ServiceNow Contact Center 桌面配置 (JSON)
-
- Webex Contact Center 支援的 ServiceNow 版本包括 Vancouver、Utah、Tokya、Washington 和 Xanadu。如需相關資訊,請參閱Webex Contact Center 與 ServiceNow 之整合。
請遵循以下兩種方法之一:
對於開發人員實例,我們建議您遵循開發人員實例指南下的步驟。
如果您擁有企業授權實例,請遵循企業授權實例的準則。
我們不建議將企業授權的應用程式與開發人員沙盒實例混合使用。
下列章節描述了為開發人員實例安裝 ServiceNow 連接器的步驟。
1 |
登入 ServiceNow 開發人員入口網站帳戶,並開啟管理 主控台。 |
2 |
從帳戶 功能表的 我的實例 區域 ,按一下 開始建築。 |
3 |
在您的開發人員實例上,從篩選器導覽器 位於視窗左上角的欄位中,請導覽至外掛程式。 |
4 |
搜尋標題為 Openframe 的 Openframe 外掛程式。您可能需要卷起清單。 |
5 |
按一下 安裝 以安裝 Openframe 外掛程式。 |
6 |
在啟動 外掛程式對話方塊 ,按一下 啟動。 |
7 |
當外掛程式啟動完成後,按一下關閉並重新載入表格 在外掛程式啟動 對話方塊。 |
8 |
若要驗證外掛程式啟用,請從 視窗左上角的篩檢程式導覽器欄位導覽至 OpenFrame。 |
9 |
按一下 配置 ,並確保 OpenFrame 外掛程式出現在 OpenFrame 組配置 清單中。 |
1 |
下載最新的系統更新集XML 檔案(位於此位置的 github 儲存庫中):https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 。 檔案名稱:webexcc-servicenow-更新-setV(X).xml |
2 |
在 ServiceNow 實例上,從篩選器導覽器 位於視窗左上角的欄位中,請導覽至 。 |
3 |
按一下從 XML 中輸入更新集連結 。 |
4 |
按一下選擇檔案,選取系統更新集XML 檔案,然後按一下上傳。
更新集出現在已檢索 的更新 集清單中,且狀態 為已載入 。
|
5 |
從擷取的更新集 清單中,按一下更新集檔案名稱(鏈結)以開啟更新集。 |
6 |
在視窗右上角, 按一下預覽 更新設定以檢查更新集的問題。 |
7 |
按一下關閉 完成預覽後,在更新集預覽對話方塊。 |
8 |
按一下 Commit Update Set。 |
9 |
按一下關閉 位於更新集提交 一旦完成更新集的確定,對話方塊。 |
1 |
在篩選器導覽器 在視窗左上角的欄位中,鍵入 |
2 |
在系統 屬性 頁面上,按更新的日期對屬性進行排序。確保您能看到以下 Webex Contact Center 屬性: |
3 |
按一下 agentdesktop_url 以開啟系統 內容 agentdesktop_url 頁面。 |
4 |
在值 欄位,請根據工作區域輸入Webex Contact Center 桌面的URL 。 |
5 |
按一下 更新 以儲存變更。 |
6 |
(可選)若要變更活動表格名稱,請按 需要編輯 webexcc活動 表屬性。 於系統內容 頁面,按一下webexcc活動表格。 變更值 欄位。 |
7 |
(可選)以下列方式新增使用者群組:
|
1 |
從篩檢程式 導覽器欄位中 ,導覽至 |
2 |
按一下新增。 |
3 |
輸入URL的下列屬性:
|
4 |
在的右側URL 欄位,按一下鎖定 按鈕並新增 |
5 |
(可選)選取要指派設定的使用者/代理群組。 |
6 |
按一下提交。URL 顯示為鏈名。 |
7 |
在您嘗試使用 OpenFrame 電話之前,請確保將 ServiceNow 自訂桌面佈局 JSON 檔案上傳至Webex Contact CenterManagement Portal。如需相關資訊,請參閱在Webex Contact Center 上設定 ServiceNow 桌面版面配置。 |
1 |
下載 ServiceNow 的桌面版面配置,https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 。 |
2 |
如有必要,請更新桌面佈局檔案中的屬性。 |
3 |
轉至 Webex Contact Center 管理入口網站。 |
4 |
從Management Portal導覽列列中選擇 |
5 |
按一下 新版面 配置,然後輸入桌面配置的詳細資訊。 |
6 |
上傳 ServiceNow 桌面配置 JSON 檔案。 |
7 |
按一下儲存以儲存設定。 現在,您可以在 ServiceNow 主控台中啟動 Webex Contact Center 桌面。 |
8 |
從篩選器導覽器 欄位,請導覽至 。 |
下列章節描述了為授權企業實例安裝 ServiceNow 連接器的步驟。
1 |
登入 ServiceNow 開發人員入口網站帳戶,並開啟管理 主控台。 |
2 |
從帳戶 功能表的 我的實例 區域 ,按一下 開始建築。 |
3 |
在您的開發人員實例上,從篩選器導覽器 位於視窗左上角的欄位中,請導覽至外掛程式。 |
4 |
搜尋標題為 Openframe 的 Openframe 外掛程式。您可能需要卷起清單。 |
5 |
按一下 安裝 以安裝 Openframe 外掛程式。 |
6 |
在啟動 外掛程式對話方塊 ,按一下 啟動。 |
7 |
當外掛程式啟動完成後,按一下關閉並重新載入表格 在外掛程式啟動 對話方塊。 |
8 |
若要驗證外掛程式啟用,請從 視窗左上角的篩檢程式導覽器欄位導覽至 OpenFrame。 |
9 |
按一下 配置 ,並確保 OpenFrame 外掛程式出現在 OpenFrame 組配置 清單中。 |
具有企業授權的實例可以直接從 ServiceNow 商店安裝Webex Contact Center 應用程式。
從 ServiceNow 商店下載並安裝Webex Contact Center 套件:https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947 。 |
1 |
在視窗 左上角的 篩檢程式導航器欄位中,輸入 |
2 |
在系統 屬性 頁面上,按更新的日期對屬性進行排序。確保您能看到以下 Webex Contact Center 屬性: |
3 |
按一下 agentdesktop_url 以開啟系統 內容 agentdesktop_url 頁面。 |
4 |
在值 欄位,請根據工作區域輸入Webex Contact Center 桌面的URL 。 |
5 |
按一下 更新 以儲存變更。 |
6 |
(可選)若要變更「活動」表格名稱,請編輯x_caci_webexcc.webexcc活動表 屬性。
|
7 |
(可選)以下列方式新增使用者群組:
|
1 |
從篩檢程式 導覽器欄位中 ,導覽至 |
2 |
按一下新增。 |
3 |
輸入URL的下列屬性:
|
4 |
在的右側URL 欄位,按一下鎖定 按鈕並新增 |
5 |
(可選)選取要指派設定的使用者/代理群組。 |
6 |
按一下提交。URL 顯示為鏈名。 |
7 |
從篩選器導覽器 欄位,請導覽至 。 |
8 |
(可選)在使用者群組 清單中,將可以存取Webex Contact Center 桌面的使用者群組從可用 至已選取。 |
9 |
在您嘗試使用 OpenFrame 電話之前,請確保將 ServiceNow 自訂桌面佈局 JSON 檔案上傳至Webex Contact CenterManagement Portal。如需相關資訊,請參閱在Webex Contact Center 上設定 ServiceNow 桌面版面配置。 |
1 |
下載 ServiceNow 的桌面版面配置,https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 。 |
2 |
如有必要,請更新桌面佈局檔案中的屬性。 |
3 |
轉至 Webex Contact Center 管理入口網站。 |
4 |
從Management Portal導覽列列中選擇 |
5 |
按一下 新版面 配置,然後輸入桌面配置的詳細資訊。 |
6 |
上傳 ServiceNow 桌面配置 JSON 檔案。 |
7 |
按一下儲存以儲存設定。 現在,您可以在 ServiceNow 主控台中啟動 Webex Contact Center 桌面。 |
8 |
從篩選器導覽器 欄位,請導覽至 。 |
1 |
從篩選器導覽器欄位,請導覽至突發事件 > 開啟突發事件。 |
2 |
在來電者欄位上按一下滑鼠右鍵,然後按一下配置字典。 |
3 |
新增逗號分隔屬性 您現在可以開始使用 ServiceNow 主控台中的Webex Contact Center 桌面。 |
4 |
從篩選器導覽器 欄位,請導覽至 。 |
目前不支援使用「桌面」選項 (WebRTC) 來登入Agent Desktop 。
ServiceNow 主控台中的Agent Desktop
在撥打外撥電話之前,請確定您執行下列操作:
-
建立外撥進入點,並設定外撥進入點策略。
-
為代理設定檔啟用外撥 ANI。
-
將外撥 ANI 設定為撥號號碼到進入點對撥。
如需相關資訊,請參閱佈建 的章節Cisco Webex Contact Center設定和管理指南。
從篩選器導覽器 欄位,請導覽至 。
有關如何使用 Desktop 的資訊,請參閱代理 Webex Contact Center 說明中的標籤。
概觀
本文涵蓋自訂 ServiceNow CRM 連接器的業務規則的幾種方法。它會詳細說明如何根據特定於 ServiceNow 的業務規則來自訂用例。
客戶必須在 ServiceNow 上自行管理這些使用案例。設定特定於 ServiceNow ,而不是Webex Contact Center 軟體或專業知識。
這是協助修改業務規則的參考文件。ServiceNow 開發人員將建立和管理業務規則,並提供支援。
Cisco僅提供範例文件。
下列章節提供有關如何"安裝;設定"、啟用及管理開發人員實例和企業實例的「動作」widget 的詳細資訊。
「提交動作的更新集」小工具
對於授權的企業實例,請從下列項目安裝最新的Webex Contact Center 應用程式: ServiceNow 商店。
若要為開發人員實例"安裝;設定"「動作」widget,請下載最新的系統更新集XML 檔案(位於 github 儲存庫的此位置):https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget 。檔案名為 webexcc-servicenow-update-setv7-1-Actions widget.xml。若要確定「動作」widget 的更新集,請參閱中的步驟 2 至 9。提交更新集。
啟用動作小工具
使用is小工具顯示已啟用 屬性以啟用「動作」widget。您不能在自訂桌面佈局的無頭部分中修改此屬性的值。在自訂桌面版面配置的無頭部分中,該屬性一律設定為 false。您只應在自訂桌面佈局的面板部分中更新屬性的值。
在自訂桌面佈局中啟用「動作」widget 後,您可以執行下列動作:
- 管理活動記錄 — 按一下檢視/編輯活動記錄 以檢視與呼叫者關聯的活動記錄清單。
- 關聯 CRM 物件 — 按一下與活動記錄關聯 向活動記錄新增 CRM 物件,例如通話類型(對內或對外)、通話物件、通話筆記等。
- 管理突發事件 — 按一下建立突發事件。會建立一個新的事件,並預先填入呼叫者詳細資料。您可以對突發事件進行必要的更新。您可以根據需求,選擇將記錄類型修改為突發事件至案例、人力資源模組等。若要變更記錄類型,請修改記錄類型 屬性。例如:
{ "comp": "md-標籤面板", "屬性": { "槽": "面板", "類別":"widget-窗格" }, "孩子":[ { "comp": "agentx-自訂桌面", "指令檔": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "iswidgetdisplay啟用": true, "typeOfRecord" : "建立突發事件" }, "包裝器": { "title": "SNOW
- 新增實時通話筆記 - 您可以在撥入的其他資訊,並結束通話。您可以在活動記錄中看到這些筆記新增為通話筆記。
ServiceNow 上的代碼變更
指令檔包含變更-
轉至篩選器導覽器並蒐尋
指令檔包括
。選取腳本包含 下系統使用者介面。
-
篩選名稱 並蒐尋
propUtils
。 -
變更方法
使用者GetSysId
在指令檔。當前:
UserGetSysId:功能 () { 變數opened_for; var user = new GlideRecord("sys_user "); user.add查詢(這個.get參數('欄位'),這個.get參數('值')); user.query(); if (user.next())opened_for =使用者。sys_id ; var grInt = new GlideRecord('互動'); grInt.初始化(); grInt。assigned_to = gs.getUserID(); grInt.type= '電話'; grInt。opened_for =opened_for ; var sysid=grInt.insert();傳回 sysid; },
事件的新範例代碼:
UserGetSysId:功能 () { 變數opened_for; //與突發事件相關的變更 var sysidlist ={} ; var user = new GlideRecordSecurity("sys_user "); user.add查詢(這個.get參數('欄位'),這個.get參數('值')); user.query(); if(user.next()) {opened_for =使用者。sys_id ;//返回使用者。sys_id ; var inc = new GlideRecordSecurity('突發事件'); inc.addQuery('caller_id ’,opened_for ); inc.addQuery('狀態','IN','1,2'); inc.orderByDesc('sys_created_on '); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize();股份有限公司caller_id=opened_for ;股份有限公司contact_type='電話';股份有限公司short_description='通話接收自 '+ this.getParameter('value'); sysidlist.incsysid=inc.插入(); } } var grInt = 新的 GlideRecordSecurity('互動'); grInt.初始化(); grInt。assigned_to = gs.getUserID(); grInt.type= '電話'; grInt。opened_for =opened_for ; var sysid=grInt.insert(); sysidlist.sysid=sysid;返回 JSON.stringify(sysidlist); },
-
轉至篩選器導覽器並蒐尋
使用者介面頁面
。選取使用者介面頁面 下系統使用者介面。
-
篩選名稱 並蒐尋
代理桌面
。 -
變更
螢幕彈出
作用於用戶端指令檔。目前功能:
// 螢幕快顯功能} var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'UserGetSysId'); gaout.addParam('欄位', '電話'); gaout.addParam('值', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ 實體:「互動」,查詢:’sys_id ='+sysid });
突發事件的範例代碼:
// 螢幕快顯功能} var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'UserGetSysId'); gaout.addParam('欄位', '電話'); gaout.addParam('值', callerani); gaout.getXMLWait(); // 對於突發事件相關變更 var sysObj = JSON.parse(gaout.getAnswer());如果(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ 實體:「突發事件」,查詢:’sys_id ='+sysObj.incsysid, 'interaction_sys_id ’:sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ 實體: 「突發事件」,查詢:'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
如果來電者資訊存在於 CRM 中,並且已與此聯絡開啟新事件,則應用程式會開啟進行中事件
如果 CRM 中沒有來電者資訊,則應用程式會開啟新事件
如果 CRM 中存在來電者資訊,則應用程式會開啟一個帶有預填詳細資料的新事件
概觀
此用例詳細說明向 ServiceNow 表格新增額外欄位的過程 -webexcc_imp_activity 並建立sn_openframe_phone_log 在安裝Webex CC for ServiceNow CRM 連接器時。
預設情況下,表格包含某些現成的系統欄位和值。
您可以在 WebexCC Flow 設計器中建立更多業務特定變數(CAD 變數),在 ServiceNow通話活動記錄中新增 CAD 變數,以及將此保留至通話活動表格資料中。
這只是一個參考文件 - 並顯示如何對名為客戶名稱的範例 CAD 變數執行此操作,該變數將客戶名稱儲存在IVR中,並將其公佈給 ServiceNow。
預期合作夥伴 + 客戶 ServiceNow 開發人員將配置和管理此設定,因為它是對現有連接器的自訂。
Cisco僅提供有關如何自訂和擴展連接器的技術。
截至本文為止, Cisco團隊已驗證支援使用如下所述的技術將 CAD 變數新增至活動日誌和活動表格:
將欄新增至 WebexCC IMP 活動
-
在開發人員版本的 ServiceNow 中編輯表格。
-
轉至篩選器導覽器並蒐尋 Studio。
選取
Webex Contact Center
或
-
選取
WebexCC IMP 活動
表 -
新增欄,例如,
客戶名稱
向電話記錄新增欄
-
編輯電話記錄表格。
-
新增欄,例如,
客戶名稱
。
WebexCC 活動轉換對應
新增欄,例如,客戶名稱
欄位對映。
個人化清單欄
正如 ServiceNow 所建議的,將選擇動作從建立變更為忽略。
設定電話記錄清單
轉至 指令檔包含
僅新增一行Webexcc。u_customername =actInfo.CustomerName
至propUtils。
範例指令檔
請參閱線路: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 ');返回 JSON.stringify(webexccprop); },UserGetSysId :功能 () { 變數opened_for; var user = new GlideRecord("sys_user "); user.add查詢(這個.get參數('欄位'),這個.get參數('值')); user.query(); if (user.next())opened_for =使用者。sys_id ;//返回使用者。sys_id ; // 否則 // 返回空值; var grInt = new GlideRecord('互動'); grInt.初始化(); grInt。assigned_to = gs.getUserID(); grInt.type= '電話'; grInt。opened_for =opened_for ; var sysid=grInt.insert();傳回 sysid; },setWebexcctable :功能 () { 變數sys_id= 0; varactInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecurity(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.包裝時間 =actInfo.包裝時間; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.響鈴時間; webexcc.活動日期 =actInfo.活動日期; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldislocation=actInfo.CallDislocation; // 已新增此行 - 以便在活動記錄 webexcc 中擷取它。u_customername =actInfo.CustomerName;sys_id =webexcc.插入(); //突發事件記錄上的活動; varactInfoString = this.getParameter('actInfo'); var suser = new GlideRecordSecurity("sys_user "); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('突發'); inc.addQuery ('caller_id ’ ,使用者。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; },鍵入:'propUtils' });
在 Flow 設計器中建立 CAD 變數
將 CAD 變數新增至桌面佈局
範例
「CadName1:SnowField1,CadName2:SnowField2」CadName1 是 CustomerName,SnowField1 也用作 CustomerName,它是「actInfo.CustomerName」上方顯示的範例腳本的一部分。
演示截圖
檢視在 WebexCC 活動表格中新增的 CAD 變數。
為 Flow Designer 建立 CAD 變數
突發事件緊急度突發事件影響
「立即服務」指令檔更新
腳本更新包括
-
轉至篩選器導覽器並蒐尋
指令檔包括
選取腳本包含 選項下系統使用者介面。
-
篩選名稱 與
propUtils
。 -
變更方法
使用者GetSysId
在指令檔 欄位。目前的指令檔:
UserGetSysId:功能 () { 變數opened_for; var user = new GlideRecord("sys_user "); user.add查詢(這個.get參數('欄位'),這個.get參數('值')); user.query(); if (user.next())opened_for =使用者。sys_id ; var grInt = new GlideRecord('互動'); grInt.初始化(); grInt。assigned_to = gs.getUserID(); grInt.type= '電話'; grInt。opened_for =opened_for ; var sysid=grInt.insert();傳回 sysid; },
事件的新範例代碼:
UserGetSysId:功能 () { 變數opened_for; var sysidlist ={} ; var user = new GlideRecordSecurity("sys_user "); user.add查詢(這個.get參數('欄位'),這個.get參數('值')); user.query(); if(user.next()) {opened_for =使用者。sys_id ;//返回使用者。sys_id ; var inc = new GlideRecordSecurity('突發事件'); inc.addQuery('caller_id ’,opened_for ); inc.addQuery('狀態','IN','1,2'); inc.orderByDesc('sys_created_on '); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize();股份有限公司caller_id=opened_for ;股份有限公司contact_type='電話'; inc.urgent=this.getParameter('IncUrgent'); inc.impact=this.getParameter('Impact');股份有限公司short_description='通話接收自 '+ this.getParameter('value'); sysidlist.incsysid=inc.插入(); } } var grInt = 新的 GlideRecordSecurity('互動'); grInt.初始化(); grInt。assigned_to = gs.getUserID(); grInt.type= '電話'; grInt。opened_for =opened_for ; var sysid=grInt.insert(); sysidlist.sysid=sysid;返回 JSON.stringify(sysidlist);//sysid; },
-
轉至篩選器導覽器並蒐尋
使用者介面頁面
。選取UI 頁面 選項下系統使用者介面。
-
篩選 UI 頁面使用名稱 並蒐尋代理桌面 。
-
變更
螢幕彈出
在指令檔欄位中使用功能。目前功能:
// 螢幕快顯功能} var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'UserGetSysId'); gaout.addParam('欄位', '電話'); gaout.addParam('值', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ 實體:「互動」,查詢:’sys_id ='+sysid }); }
突發事件的範例代碼:
// 螢幕快顯功能如果(callSessionInfo.callAssociatedData.Impact != 空值 && callSessionInfo.callAssociatedData.Impact != 未定義) { } var IncUrgency=3;如果(callSessionInfo.callAssociatedData.Urgent != 空值 && callSessionInfo.callAssociatedData.Urgency != 未定義) { } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'UserGetSysId'); gaout.addParam('欄位', '電話'); gaout.addParam('值', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', 影響); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer());如果(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ 實體:「突發事件」,查詢:’sys_id ='+sysObj.incsysid, 'interaction_sys_id ’:sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ 實體: 「突發事件」,查詢:'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("螢幕互動", JSON.stringify(sysObj)); }
如果來電者資訊存在於 CRM 中,並且沒有新的或進行中的事件,則應用程式會開啟新的事件
變更 ServiceNow 上的代碼
將新欄新增至WebexCC IMP 活動
表
開啟WebexCC IMP 活動表 新增欄 - InteractionsNumber 新增欄 - IncidentNumber
按一下更新。
將新欄新增至電話記錄
表
開啟電話記錄
表
WebexCC 活動轉換對應
開啟轉換貼圖
從篩選器導覽器中
按一下WebexCC 活動轉換圖
按一下更新。
對指令檔的變更包含
-
前往篩選器導覽器並蒐尋「指令檔包含」。
選取腳本包含 下系統使用者介面。
-
篩選名稱 與
propUtils
。 -
變更方法
設定Webexcc表格
。突發事件的新範例代碼:
setWebexcc表格:功能 () { 變數sys_id= 0; varactInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecurity(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject ", actInfo.CallObject); webexcc.query();if(!webexcc.next()) { //突發事件記錄上的活動; //varactInfoString = this.getParameter('actInfo'); var var incsysid=actInfo.incident_sys_id ; var proximitysysid=actInfo.interaction_sys_id ; var incnum=""; var intenum="";刪除actInfo['interaction_sys_id '];刪除actInfo['incident_sys_id ']; if(interactionysid!= null && meetingsysid != 未定義){ var inte = new GlideRecordSecure('互動'); //inte.get('sys_id ', 互動sysid ); inte.addQuery('sys_id ', 互動sysid ); inte.query();如果 (inte.next()) { intenum=inte.number; // inte.setValue('狀態', '關閉完成');整合。work_notes ='將狀態更新為關閉。'; inte. update(); } } if( incsysid!= null && incsysid != 未定義){ var inci = new GlideRecordSecurity('突發事件'); inci.addQuery('sys_id ', incsysid ); inci.查詢(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); // JSON.stringify( JSON. 剖析(actInfoString),空值,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('突發'); inc.addQuery ('caller_id ’ ,使用者。sys_id ); inc.addQuery('狀態','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.佇列名稱; Webexcc。u_wrapuptime =actInfo.包裝時間; Webexcc。u_callduration =actInfo.CallDurationInSeconds; Webexcc。u_ringingtime =actInfo.響鈴時間; Webexcc。u_activitydate =actInfo.活動日期; Webexcc。u_callobject =actInfo.CallObject; Webexcc。u_calltype =actInfo.CallType; Webexcc。u_calldisposition =actInfo.Call部署; Webexcc。u_incidentnumber = 增加; Webexcc。u_interactionsnumber =內部;sys_id =webexcc.插入(); } 回報sys_id; },
UI 頁面上的方法變更
-
轉至篩選器導覽器並蒐尋
使用者介面頁面
選取UI 頁面 選項下系統使用者介面。
-
篩選 UI 頁面使用名稱 並蒐尋
代理桌面
。 -
變更
現在活動和螢幕彈出
指令檔中的函式。目前功能:
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("螢幕互動");如果(sysObjstr != 空值 && sysObjstr != 未定義) { var sysObjjson=JSON.parse(sysObjstr);行動資訊。interaction_sys_id =sysObjjson.sysid;行動資訊。incident_sys_id =sysObjjson.incsysid; } var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani',stripPrefixes(ani)); gaout.getXML(SetCCsysId); } 功能螢幕彈出(callerani,callSessionInfo){ 如果(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = 新的 GlideAjax('propUtils'); gaout.addParam('sysparm_name ', 'UserGetSysId'); gaout.addParam('欄位', '電話'); gaout.addParam('值', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer());如果(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ 實體:「突發事件」,查詢:’sys_id ='+sysObj.incsysid, 'interaction_sys_id ’:sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ 實體: 「突發事件」,查詢:'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("螢幕互動", JSON.stringify(sysObj)); }
更新後的結果
以下自訂項目適用於 1.0.5 版及更低版本。對於較新的 1.0.7 版及以上版本的自訂項目,請遵循上述步驟。
自訂 # 1 - 為通話流程用例新增自訂業務規則
為每個通話建立新的事件記錄對於 ServiceNow 中每個進入 WebexCC CRM 連接器的新通話,請建立新的突發事件記錄。
在篩選器導覽器上搜尋業務規則
按一下新建。
範例代碼供參考:
功能 customcti() { var url = null;變數名稱 =sysparm_caller_name ; eid =sysparm_caller_id ; var phone =sysparm_caller_phone ; var 工作 ID =sysparm_task_id ; var f查詢 =sysparm_query ;如果 (fQuery = = 空) f查詢 = ''; var 檢視 =sysparm_view ;如果(檢視 == 空|| view == '') view = "itil"; var 使用者 ID = 空值; 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 !="caller_id =" + 使用者 ID; } 如果 (url == 空值) { url = "事件.do?sys_id =-1"; 如果 (fQuery != null) url += "&sysparm_query =" + fQuery; } answer = url; 返回 url; }sys_user "); user.add查詢(欄位, 值); user.query(); 如果 (user.next()) 返回使用者。sys_id ;否則,返回空值; }
業務規則的設定範例
啟用用戶端可呼叫
突發事件的電腦電話整合 (CTI) 處理 被標記為是。
使用自訂CTI規則更新螢幕快顯 url 「 cti.do?sysparm_cti_rule =建立突發事件&sysparm_caller_phone = 「
的sysparm_cti_rule=名稱 其中 ’名稱’ 是功能 將被用於CTI處理 而不是使用預設指令檔。
在 中定義函式sys_script 進入已標記用戶端可調用。
若您必須在函數中插入、更新或刪除任何 GlideRecord,請調用單獨的非用戶端可調用函數來執行更新。
若要使指令檔可供用戶端調用,您必須勾選當顯示的表格上的用戶端可調用勾選方塊:sys_script 項目時顯示。
預設情況下不會顯示用戶端可呼叫勾選方塊。若要進行檢視,您必須使用齒輪圖示和 Slush 桶機制修改表格上顯示的欄位。
自訂 # 2 - 在Webex Contact Center 活動表格中新增 CAD 變數
概觀此文章詳細說明向 ServiceNow 表格新增欄的過程 -webexcc_activity 該應用程式在安裝Webex CC for ServiceNow CRM 連接器時建立。
依預設,表格包含現成的系統欄位和值。
您可以在 WebexCC Flow 設計器中建立更多業務特定變數(CAD 變數),並在 ServiceNow 中新增那些 CAD 變數。通話活動記錄,並持續到通話活動表格 資料。
-
這只是參考文件 - 並顯示如何對名為客戶姓名的範例 CAD 變數執行此操作,該變數將客戶姓名儲存在IVR中,並將其公佈給 ServiceNow。
-
合作夥伴+客戶 ServiceNow 開發人員將配置和管理此設定,因為它是對現有連接器的自訂。
-
Cisco將僅提供有關如何自訂和擴展連接器的技術。
-
截至本文為止, Cisco團隊已驗證支援使用如下所述的技術將 CAD 變數新增至活動日誌和活動表格。
在開發人員版本的 ServiceNow 中編輯表格。
轉至
。選取WebexCC 活動 表。
譬如,客戶名稱。
為下列項目選取清單版面配置: WebexCC 活動。
如果您使用的是更新集XML ,則不需要此步驟 - 只需要新增一行」 Webexcc。u_customername =actInfo.CustomerName ” 至propUtils。
範例指令檔
請參閱包含以下內容的行:Webexcc。u_customername =actInfo.CustomerName; 並附有支援意見。
var propUtils2 = 類.建立(); 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 ');返回 JSON.stringify(webexccprop); },setWebexcctable :功能 () { 變數sys_id= 0; varactInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecurity(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.包裝時間 =actInfo.包裝時間; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.響鈴時間; webexcc.活動日期 =actInfo.活動日期; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldislocation=actInfo.CallDislocation; // 已新增此行 - 以便在活動記錄 webexcc 中擷取它。u_customername =actInfo.CustomerName;sys_id =webexcc.插入(); // 突發事件記錄上的活動; varactInfoString = this.getParameter('actInfo'); var suser = new GlideRecordSecurity("sys_user "); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('突發'); inc.addQuery ('caller_id ’ ,使用者。sys_id ); inc.orderByDesc('sys_created_on '); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(作用字串),NULL,2); inc.comments = jsonPretty; inc. update(); } } } 回報sys_id; },鍵入:'propUtils2' });
使用新的指令檔名稱編輯 UI 頁面在 Flow 設計器中建立 CAD 變數
將 CAD 變數新增至桌面佈局
演示截圖
檢視在 WebexCC 活動表格中新增的 CAD 變數。